博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
p2150 [NOI2015]寿司晚宴
阅读量:7040 次
发布时间:2019-06-28

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

分析

我们发现对于大于$\sqrt(n)$的数每个数最多只会包含一个

所以我们把每个数按照大质数的大小从小到大排序

我们知道对于一种大质数只能被同一个人取

所以f1表示被A取,f2表示被B取

最终答案就是这两个的答案减去啥都不去的答案

因为啥都不去会被重复记录两次

对于小质数则直接状压转移即可

代码

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define int long longconst int p1[] = { 0,2,3,5,7,11,13,17,19};const int cnt1 = 8;int dp[500][500],n,mod,f1[500][500],f2[500][500];struct node { int msk,ano;};node d[1100];inline void init(int x){ int res=x+1; for(int i=1;i<=cnt1;i++){ if(res==1)break; if(res%p1[i]==0)d[x].msk|=(1<<(i-1)); while(res%p1[i]==0)res/=p1[i]; } d[x].ano=res;}inline bool cmp(const node x,const node y){ return x.ano
=0;j--) for(k=(1<<8)-1;k>=0;k--)if(!(j&k)){ int msk1=j|d[i].msk,msk2=k|d[i].msk; if(!(msk1&k))f1[msk1][k]=(f1[msk1][k]+f1[j][k])%mod; if(!(msk2&j))f2[j][msk2]=(f2[j][msk2]+f2[j][k])%mod; } if(d[i].ano==1||d[i].ano!=d[i+1].ano||i==n){ for(j=(1<<8)-1;j>=0;j--) for(k=(1<<8)-1;k>=0;k--)if(!(j&k)){ dp[j][k]=(-dp[j][k]+mod)%mod; dp[j][k]=(dp[j][k]+f1[j][k])%mod; dp[j][k]=(dp[j][k]+f2[j][k])%mod; } } } int Ans=0; for(j=0;j<(1<<8);j++) for(k=0;k<(1<<8);k++) if(!(j&k))Ans=(Ans+dp[j][k])%mod; cout<

转载于:https://www.cnblogs.com/yzxverygood/p/10439144.html

你可能感兴趣的文章
安捷伦2016 Q2收入较去年增长6% 调升全年收入指导范围
查看>>
最新 Chrome 可让本地文件在网页应用中打开
查看>>
《Python地理空间分析指南(第2版)》——1.10 GIS中矢量数据的基本概念
查看>>
MySQL自动化运维工具 Inception
查看>>
QGraphicsItem如何使用信号/槽
查看>>
《计算机科学导论》一第2章
查看>>
分布式列式数据库 IndexR 开源啦!
查看>>
微软被评为全球第二大影响力公司
查看>>
《Web前端工程师修炼之道(原书第4版)》——我需要学习哪些语言
查看>>
《计算机视觉:模型、学习和推理》——3.5 一元正态分布
查看>>
Uncode-DAL 1.0.18 发布,Java 通用数据访问层
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 8 招 怎样在多张工作表录入相同的数据——创建工作组...
查看>>
《机器人操作系统ROS原理与应用》——第1章 企业大数据战略定位
查看>>
《深入理解Android:卷III A》一一1.2Android的编译
查看>>
《CCNA ICND2(200-101)认证考试指南(第4版)》——1.1节“我已经知道了吗?”小测试...
查看>>
FireFox 增加新侧栏 方便用户查看已同步标签
查看>>
《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.2节简单数据的存储——Preferences...
查看>>
在 NewLisp 实现匿名函数的递归
查看>>
《R语言数据分析与挖掘实战》——第2章 R语言简介 2.1 R安装
查看>>
2016 年 Win 10 市场份额增加14%,win7 仍居首
查看>>