【SHOI&SXOI2017】bzoj4872 分手是祝愿
来源:互联网 发布:vue index.html引入js 编辑:程序博客网 时间:2024/04/30 06:06
不难从大到小贪心求出对于当前状态,最优解需要几步。
记
这样是不能直接求的,不妨记
又因为
#include<cstdio>#include<vector>#include<algorithm>using namespace std;#define LL long longconst int maxn=100010,p=100003;vector<int> v[maxn];vector<int>::iterator it;int a[maxn],f[maxn],g[maxn],inv[maxn],prm[maxn],n,m,k,tot;int pow(int base,int k){ int ret=1; for (;k;k>>=1,base=(LL)base*base%p) if (k&1) ret=(LL)ret*base%p; return ret;}int main(){ int ans; scanf("%d%d",&n,&k); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) { if (!inv[i]) { inv[i]=pow(i,p-2); prm[++tot]=i; } for (int j=1;j<=tot&&(LL)i*prm[j]<=n;j++) { inv[i*prm[j]]=inv[i]*inv[prm[j]]; if (i%prm[j]==0) break; } } for (int i=1;i<=n;i++) for (int j=i;j<=n;j+=i) v[j].push_back(i); for (int i=n;i;i--) if (a[i]) { m++; for (it=v[i].begin();it!=v[i].end();++it) a[*it]^=1; } g[n]=1; for (int i=1;i<=k;i++) g[i]=1; for (int i=n-1;i>k;i--) g[i]=((LL)g[i+1]*(n-i)%p*inv[i]+(LL)n*inv[i])%p; for (int i=1;i<=k;i++) f[i]=i; for (int i=k+1;i<=m;i++) f[i]=f[i-1]+g[i]; ans=f[m]; for (int i=1;i<=n;i++) ans=(LL)ans*i%p; printf("%d\n",ans);}
0 0
- 【SHOI&SXOI2017】bzoj4872 分手是祝愿
- BZOJ4872 [Shoi2017]分手是祝愿
- [bzoj4872] [Shoi2017]分手是祝愿
- BZOJ4872 [SHOI2017]分手是祝愿
- 洛谷3750暨bzoj4872,分手是祝愿
- [BZOJ4872][Shoi2017]分手是祝愿 数学期望
- 【BZOJ4872】【SHOI2017】分手是祝愿 期望DP
- 【动态规划01】bzoj4872分手是祝愿(期望)
- 【bzoj4872】[Shoi2017]分手是祝愿 数论+期望dp
- [BZOJ4872]-[Shoi2017]分手是祝愿-期望DP+画柿子
- bzoj4872 [Shoi2017]分手是祝愿 (期望概率DP)
- 4872: [Shoi2017]分手是祝愿
- 【SHOI&SXOI2017】bzoj4868 期末考试
- bzoj 4872 [Shoi2017]分手是祝愿
- BZOJ 4872 [Shoi2017] 分手是祝愿
- 2017.8.14 分手是祝愿 失败总结
- bzoj 4872: [Shoi2017]分手是祝愿
- 【SHOI&SXOI2017】bzoj4873 寿司餐厅
- ExpandableListView再学习(未完待续)
- Android开发代码规范
- 降维:主成分分析(PCA)
- 高分子材料成型(八)
- 笔试面试算法经典--最长回文子串
- 【SHOI&SXOI2017】bzoj4872 分手是祝愿
- NYOJ 2
- MySQL各种引擎特点简述
- linux下删除指定文件之外的其他文件
- cocos2dx--定时器封装
- 【Unity&独立游戏】默默奋斗的独立游戏制作者们
- Android拨号盘T9搜索号码中有空格就没有匹配结果的问题
- Redis持久化
- Git工作空间地址切换方法