《集合論與圖論》這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集:若 x 在該子集中,則 2x 和 3x 不能在該子集中。同學們不喜歡這種具有列舉性 質的題目,於是把它變成了以下問題:對於任意乙個正整數 n≤100000,如何求出 的滿足上述約束條件的子集的個數(只需輸出對 1,000,000,001 取模的結果),現在這個問題就 交給你了。
只有一行,其中有乙個正整數 n,30%的資料滿足 n≤20。
僅包含乙個正整數,表示有多少個滿足上述約束條件 的子集。
4
8【樣例解釋】
有8 個集合滿足要求,分別是空集,,,,,,,。
題解:orz hzwer
code:
1 #include2 #include3 #include4 #include5 #include6#define maxn 100005
7#define mod 1000000001
8using
namespace
std;
9 typedef long
long
int64;
10char
ch;11
bool
ok;12
void read(int &x)
17int n,m,list[12],cnt,sta[2050
];18
bool
bo[maxn];
19 int64 f[20][2050
],ans;
20bool check(int
s)24
else last=0;25
return
true;26
}27void
prepare()
31 int64 calc(int
st)41 last=lim;
42for (lim=0;1ll*list[lim]*2
<=n&&list[lim];lim++) list[lim]*=2,bo[list[lim]]=1;43
for (dep=0
;lim;)54}
55 last=lim;
56for (lim=0;1ll*list[lim]*2
<=n&&list[lim];lim++) list[lim]*=2,bo[list[lim]]=1;57
}58 int64 ans=0;59
for (int i=0;i<(1
60return
ans;61}
62int
main()
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...