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 可以發現,滿足要求的子集...