洛谷 P3750 [六省联考2017]分手是祝愿
传送门
题解
//Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<vector> #include<cstdio> #include<queue> #include<cmath> const int N=100000,mod=100003; #define For(i,a,b) for(int i=(a);i<=(b);i++) #define Rep(i,a,b) for(int i=(a);i>=(b);i--) typedef long long LL; typedef double db; using namespace std; int n,k,a[N],cnt; LL rs,f[N],inv[N]; vector<int>vc[N];template<typename T>void read(T &x) {char ch=getchar(); x=0; T f=1;while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();if(ch=='-') f=-1,ch=getchar();for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0'; x*=f; }void solve() {For(i,1,n) For(j,1,n/i) vc[i*j].push_back(i); Rep(i,n,1) if(a[i]) {int up=vc[i].size();For(j,0,up-1) a[vc[i][j]]^=1;cnt++;}rs=cnt;if(cnt>k) {rs=k;f[n]=1; inv[1]=inv[0]=1;For(i,2,n) inv[i]=(mod-mod/i*inv[mod%i]%mod)%mod;Rep(i,n-1,k) f[i]=(((LL)n-i)*inv[i]%mod*(f[i+1]+1)%mod+1)%mod;For(i,k+1,cnt) rs=(rs+f[i])%mod;}For(i,1,n) rs=rs*i%mod;printf("%lld\n",rs); }int main() {read(n); read(k);For(i,1,n) read(a[i]);solve();return 0; }
View Code
转载于:https://www.cnblogs.com/Achenchen/p/8604385.html
洛谷 P3750 [六省联考2017]分手是祝愿相关推荐
- BZOJ 4872 luogu P3750 [六省联考2017]分手是祝愿
4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MB [Submit][Status][Discuss] Description ...
- luogu P3750 [六省联考 2017]分手是祝愿
https://www.luogu.com.cn/problem/P3750 k=nk=nk=n给了808080分可还行 首先考虑k=nk=nk=n,不难想到一个贪心,从大到小枚举每个开关,如果为11 ...
- P3750 [六省联考2017]分手是祝愿(期望概率,返祖模型)
题意:给n个灯,初始化下给出每个灯的状态,给n个开关,操作开关i会使得编号是i的约数的灯的状态翻转一次,现在有一个种算法,如果当前状态下可以操作k次及以下就能使所有灯熄灭,直接操作这个次数,游戏结束, ...
- 洛谷 P3745 [六省联考2017]期末考试
题目描述 有 nnn 位同学,每位同学都参加了全部的 mmm 门课程的期末考试,都在焦急的等待成绩的公布. 第 iii 位同学希望在第 tit_iti 天或之前得知所有课程的成绩.如果在第 tit_ ...
- [六省联考2017]分手是祝愿(期望+DP)
题解 很容易想出来最优策略是什么. 就是从n到1看到开着的灯就把它关了 我们预处理出当前状态把灯全部关闭后的最少步数cnt 然后我们的主人公就要瞎按... 设dp[i]代表当前状态最优解为i步时走到d ...
- [六省联考2017]分手是祝愿 题解
题目传送门 题目大意: 给出一排灯泡的状态,每次修改一个灯泡时会将它编号的约数的灯泡的状态同时修改,现在随机修改灯泡,当按照最优策略还有 kkk 次操作就能全灭时就按最优策略,问期望操作次数. 题解 ...
- BZOJ 4872 六省联考2017 分手是祝愿
Problem BZOJ Solution 感觉dp状态的设置好巧妙啊 首先要明确的是怎么计算最小步数.就是直接从n到1扫,如果有亮着的,就按这个开关,模拟一下是O(nlnn)O(nlnn)O(n\ ...
- [六省联考2017]分手是祝愿 - 题解
题目链接 做法: 首先预处理出每个数的约数,用 $ vector $ 存,时间是调和级数 $ O(n \log n) $ . 部分分:当 $ n = k $ 时,每次操作最优,然后从右往左枚举,若果当 ...
- 2017 [六省联考] T5 分手是祝愿
4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 458 Solved: 299 [Submit][Sta ...
最新文章
- 【制作镜像】BCEC制作镜像
- oracle导入java包时出错,Oracle导入导出的常见错误
- linux shell之$?和得到联合使用命令的结果
- js Ajax跨域访问
- Linux学习笔记019---Centos7下安装Maven
- 如何应用Matlab plot画点
- BZOJ3557: [Ctsc2014]随机数
- 神经网络多分类的实现总结
- object sender,EventArgs e
- 从事Web前端相关的工作应该掌握哪些职业技能?
- 什么才是市场急需的前端工程师?【零基础web前端入门视频教程】
- vue项目push 遇到send-pack: unexpected disconnect while reading sideband packetclient_loop: send disconn
- 109 个实用 Shell 脚本实例,代码清晰拿来就能用!(附pdf)
- '/',‘\\’与‘\’的区别
- 关于K倍区间问题的神仙做法所记的笔记
- wamp 不起启动一直是黄的
- 中国铜带行业市场供需与战略研究报告
- 最基础的远程控制来了,教你如何跨客户端连接服务器,7*24工作不是梦!
- 首师大计算机科学与技术专业如何,首都师范大学计算机科学与技术
- Spark SQL too many elements for tuple: 25 (scala tuple超过默认22个元素)