「NOI2015」寿司晚宴 解题报告
发布日期:2021-08-18 00:51:41 浏览次数:2 分类:技术文章

本文共 865 字,大约阅读时间需要 2 分钟。

这个题思路其实挺自然的,但是我太傻了...最开始想着钦定一些,结果发现假了..

首先一个比较套路的事情是状压前8个质数,后面的只会在一个数出现一次的再想办法就好。

然后发现有个重要的事情是后面每个质因子\(x\)做统计的时候都是独立的,那么单独做就好了

显然要压两个人的前面质因子集合\(f_{i,j}\)代表两个人分别是\(i,j\)集合的答案,然后一块一块的加后面的质因子就好

加每一块时,我们显然需要处理谁选择了这一块或者都没选,再搞个\(dp_{0/1,i,j}\)钦定一下谁选,随便转移一下就好了


Code:

#include 
#include
#include
#include
template
void read(T &x){ x=0;char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) x=x*10+c-'0',c=getchar();}const int N=510;const int pri[9]={0,2,3,5,7,11,13,17,19};int n,m,p,dp[2][1<<8][1<<8],f[1<<8][1<<8];inline int add(int a,int b){return a+b>=p?a+b-p:a+b;}inline int mul(int a,int b){return 1ll*a*b%p;}struct num{ int s,pri; bool friend operator <(num a,num b){return a.pri

2019.3.4

转载于:https://www.cnblogs.com/butterflydew/p/10472085.html

转载地址:https://blog.csdn.net/weixin_30872733/article/details/99305118 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:XNU内核案例(一)BSD系统调用fork的详细分析
下一篇:day11 Python 迭代器

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月18日 11时07分22秒