bzoj2734 HNOI2012 集合選數

2021-09-07 12:28:56 字數 1142 閱讀 6374

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 831 solved 487 submit status discuss 集合論與圖論 這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集 若 x 在該子集中,則 2x 和 3x 不能在該子集中。同...

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...