bzoj4197 Noi2015 壽司晚宴

2022-05-19 05:27:54 字數 828 閱讀 9009

又做一次題解的搬運工,神仙題

分解質因數很顯然是能想到的,不過純粹的分解質因數只能得到可惜的30分

可以發現乙個小於\(500\)的數,大於\(22\)的質因數最多只有\(1\)個

所以我們就可以將小於\(22\)的質數狀壓起來

然後對於大於\(22\)的質數進行討論

可以知道對於一段大於\(22\)的質數相同的情況,他們都只能給其中的乙個人,然後前面的可以刷表法轉移

然後空間開不下,需要滾動陣列,

具體的狀態轉移可以看**

**:

#include#include#include#include#includeusing namespace std;

void read(int &x)

#define rg register

const int maxn=510,maxm=(1<<8)+10;

int n,mx=1<<8,d[8]=;

long long ans,p,f1[maxm][maxm],f2[maxm][maxm],g[maxm][maxm];

struct ooa[maxn];

void prepare(int x)

if(i==n-1||a[i].y!=a[i+1].y||a[i].y==-1)

}for(rg int j=mx-1;j>=0;j--)

for(rg int k=mx-1;k>=0;k--)

if(!(j&k))ans=ans+g[j][k]>=p?ans+g[j][k]-p:ans+g[j][k];

printf("%lld\n",ans);

}

BZOJ 4197 Noi2015 壽司晚宴

為了慶祝 noi 的成功開幕,主辦方為大家準備了一場壽司晚宴。小 g 和小 w 作為參加 noi 的選手,也被邀請參加了壽司晚宴。在晚宴上,主辦方為大家提供了 n 1 種不同的壽司,編號 1,2,3,n 1,其中第 i 種壽司的美味度為 i 1 即壽司的美味度為從 2 到 n 現在小 g 和小 w ...

bzoj4197 NOI2015 壽司晚宴

題意 有n 1 個數從 2 n 從中選出兩個集合 s 和 u 可以為 要求對於 x s,y u,都有gc d x,y 1 求方案總數 n 500 解法 狀壓dp 首先看到互質這一條件,可以想到利用質因子來判斷 很同意證明,對於乙個數 x 大於x 的質因子至多有乙個。假設存在兩個及兩個以上大於x 的質...

BZOJ4197 NOI2015 壽司晚宴

bzoj luogu 從 2 到 n 中選出兩個不相交子集使得這兩個集合中的任一對元素互質。問總方案數模 mod 的結果。n le500 首先有 30 的部分分是 n le30 考慮到 30 以內的質因數只有 10 個,因此可以狀壓 dp 即設 f s 1 s 2 表示第乙個人選出的質因數集合為 s...