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