time limit: 10 sec memory limit: 128 mb
submit: 505 solved: 287
[submit][status]
《集合論與圖論》這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集:若 x 在該子集中,則 2x 和 3x 不能在該子集中。同學們不喜歡這種具有列舉性 質的題目,於是把它變成了以下問題:對於任意乙個正整數 n≤100000,如何求出 的滿足上述約束條件的子集的個數(只需輸出對 1,000,000,001 取模的結果),現在這個問題就 交給你了。
只有一行,其中有乙個正整數 n,30%的資料滿足 n≤20。
僅包含乙個正整數,表示有多少個滿足上述約束條件 的子集。 4 8
【樣例解釋】
有8 個集合滿足要求,分別是空集,,,,,,,。
day2
題解:不能再神的做法。。。
1 3 9
2 6 18
。。。。
然後就轉化成了不能選兩個相鄰的數的方案數了。。。狀壓搞定
**:
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #includeview code10 #include11 #include
12#define inf 1000000000
13#define maxn 100000+100
14#define maxm 500+100
15#define eps 1e-10
16#define ll long long
17#define pa pair18
#define mod 1000000001
19using
namespace
std;
20 inline int
read()
2124
while(ch>='
0'&&ch<='9')
25return x*f;26}
27int n,num[20
];28 ll f[20][1
<<12
];29
bool
v[maxn];
30 ll get(int
x)31
44for(int i=0;i<1
4551 x*=2;52
}53 ll t=0;54
for(int i=0;i<1
55return
t;56}57
intmain()
58
upd:我說我的程式怎麼跑得賊慢。。。就因為我每次就memset嗎?。。。
還有乙個就是判斷 i 中是否有兩個連續的1,只要判斷 i&(i<<1)是否為0即可
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...