蒻得不行的我覺得這是一道比較難的題,以至於我卡了很久
可以看出,所有會互相直接造成影響的數之間構成一張\(dag\),邊就是\(i->i*2,i->i*3\)
取出每乙個連通塊之後,連了邊的點不能同時選,就是乙個獨立集個數的問題
\(dag\)還可以求獨立集?
我們其實可以驚人得發現,這張\(dag\)過於整齊,每個點都是至多兩條出邊,就是乙個網格圖,轉化成一張網格圖上相鄰的點不能取的問題
這個,狀壓矩陣即可\(dp[i][s]\)
const int n=1e5+10,p=1e9+1;
int n;
ll dp[20][1<<11];
int a[20];
ll solve(int i)
(dp[t][s2]+=dp[t-1][s1])%=p;
if(!s2) break;}}
}ll res=0;
rep(i,0,a[t]) res+=dp[t][i];
res%=p;
return res;}
int main()
printf("%lld\n",ans);
}
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...