bzoj2734 HNOI2012 集合選數

2021-07-10 04:23:47 字數 1127 閱讀 6516

time limit: 10 sec  

memory limit: 128 mb

submit: 831  

solved: 487 [

submit][

status][

discuss]

《集合論與圖論》這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集:若 x 在該子集中,則 2x 和 3x 不能在該子集中。同學們不喜歡這種具有列舉性 質的題目,於是把它變成了以下問題:對於任意乙個正整數 n≤100000,如何求出 的滿足上述約束條件的子集的個數(只需輸出對 1,000,000,001 取模的結果),現在這個問題就 交給你了。 

只有一行,其中有乙個正整數 n,30%的資料滿足 n≤20。 

僅包含乙個正整數,表示有多少個滿足上述約束條件 的子集。  4

8【樣例解釋】

有8 個集合滿足要求,分別是空集,,,,,,,。

day2

狀壓dp思路好題

寫出這樣乙個矩陣

1 3 9 27 …

2 6 18 54 …

4 12 36 108 … …

可以發現最多有12行。

這樣我們只要列舉左上角的數x,就可以得到乙個不同的矩陣,對於每乙個矩陣需要選一些數,但不能選相鄰的數,狀壓dp解決。

對於每乙個矩陣,把方案數相乘即為答案。

#include#include#include#include#include#include#define f(i,j,n) for(int i=j;i<=n;i++)

#define d(i,j,n) for(int i=j;i>=n;i--)

#define ll long long

#define maxn 100005

#define mod 1000000001

using namespace std;

int n;

ll ans=1,f[20][4100],num[20];

bool vst[maxn];

inline int read()

while (ch>='0'&&ch<='9')

return x*f;

}inline ll calc(int x)

f(i,0,(1<

bzoj2734 HNOI2012 集合選數

time limit 10 sec memory limit 128 mb submit 889 solved 523 submit status discuss description 集合論與圖論 這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集 若 x 在該子集中,則 2x 和 ...

bzoj2734 HNOI2012 集合選數

題目鏈結 集合論與圖論 這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集 若 x 在該子集中,則 2x 和 3x 不能在該子集中。同學們不喜歡這種具有列舉性 質的題目,於是把它變成了以下問題 對於任意乙個正整數 n 100000,如何求出 的滿足上述約束條件的子集的個數 只需輸出對 1...

BZOJ2734 HNOI2012 集合選數

description 求出集合中,滿足 諾x在該集合中,2x與3x不在集合。的所有子集的個數。對答案mod 1000000001。題解這個題目很要思維了,反正我沒想出來,但看了題解十分佩服。我們構造乙個矩陣,x3x 9x.3j x 2x6x 18x.2i x 2i 3jx 可以發現,滿足要求的子集...