[CTSC2017]密钥
“无论哪场比赛,都要相信题目是水的”
这不仅是HNOI2018D2T3的教训,也是这题的教训,思维定势真的很可怕。
普及组水题,真是愧对CTSC的头衔。
A当作1,B当作-1,开个桶计数即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rep(i,l,r) for (int i=(l); i<=(r); i++)
using namespace std; const int M=;
bool p[M];
int cnt[M],A[M],B[M],seed,n,k,T,S,ans1,ans2,ans3; int getrand(){
seed = ((seed * ) ^ ) % ;
return seed;
} void generateData(){
scanf("%d%d%d",&k,&seed,&S);
int t = ;
n = k * + ;
memset(p, , sizeof(p));
for (int i = ; i <= n; i++)
{
p[i] = (getrand() / ) % ;
t += p[i];
}
int i = ;
while (t > k)
{
while (p[i] == )
i++;
p[i] = ;
t--;
}
while (t < k)
{
while (p[i] == )
i++;
p[i] = ;
t++;
}
} int main(){
freopen("cipher.in","r",stdin);
freopen("cipher.out","w",stdout);
generateData();
rep(i,,n) p[i+n]=p[i];
A[]=n+; rep(i,,n<<) A[i]=A[i-]+(p[i]?:-);
rep(i,,n) if(p[i]) cnt[A[i]]++,T+=A[i]>A[];
rep(i,,n){
if(p[i]) T-=cnt[A[i]],cnt[A[i]]--; else T+=cnt[A[i]+];
if(!p[i]){
if(T==) ans1=i;
if(T==S) ans2=i;
if(T==k-S) ans3=i;
}
if (p[i]) cnt[A[i+n]]++,T+=A[i+n]>A[i];
}
printf("%d\n%d\n%d\n",ans1,ans2,ans3);
return ;
}
[CTSC2017]密钥的更多相关文章
- bzoj 4900 [CTSC2017]密钥 模拟+乱搞
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4900 #include<cstring> #include<cmath&g ...
- CTSC2017密钥、吉夫特
自己是有多么sb. 密钥 大家都说这是一道普及-的题,一年前我做不起,我可以说我太弱啦,我就普及组水平,今年我还是做不起…… 看大佬题解都是:开个桶就好啦! 我:你在说什么…… 首先把环拉成链,倍长. ...
- bzoj4900 [CTSC2017]密钥
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4900 [题解] 恭喜bzoj达到40页 考场由于傻逼基数排序写挂了而gg. 竟然忘了考试前一 ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
- uoj #297. 【CTSC2017】密钥
#297. [CTSC2017]密钥 一个密钥是一个长度为 n=2k+1n=2k+1 的字符串,它包含 11 个字母X.kk 个字母 A 和 kk 个字母 B.例如 k=3k=3 时,BAXABAB ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- VS2013 密钥 – 所有版本
Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥) ...
- 利用密钥通过ssh互访
dir(192.168.131.132):作为client rs1(192.168.131.110)和 rs2(192.168.131.131):作为server端 1.dir 运行命令: ...
- RSA密钥之C#格式与Java格式转换
前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转 ...
随机推荐
- HTML5用canvas绘制五星红旗
在HTML5一览中,我们提到html 5被冠以很多高帽,其中最高的一顶.备受争议的就是"Flash杀手".IT评论界老喜欢用这个词了,杀手无处不在.不管是不是杀手,HTML 5引进 ...
- Codeforces Round #350 (Div. 2) B
B. Game of Robots time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- 第九届蓝桥杯C/C++B组题解附代码
1.标题:第几天 2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 125天 打开日历就ok 2. 标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库 ...
- Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
Spring 中有两种类型的 bean , 一种是普通的 bean , 另一种是工厂 bean , 即 FactroyBean. 工厂 bean 跟普通 bean 不同 , 其返回的对象不是指定类的一 ...
- xml数据格式
<?xml version="1.0" encoding="utf-8"?> <country> <name>中国</ ...
- CodeForces - 682B 题意水题
CodeForces - 682B Input The first line of the input contains a single integer n (1 ≤ n ≤ 100 000) — ...
- 如何打开小米,oppo,华为等手机的系统应用的指定页面
如题,拿Oppo 手机做个示例,小米 华为也是如此. 在编写Android应用的时候,我们经常会有这样的需求,我们想直接打开系统应用的某个页面.比如在Oppo R9 手机上我们想打开某个应用的通知管理 ...
- 智能合约安全-parity多重签名钱包安全漏洞
漏洞原因: 因为initWallet函数是公开函数( public function) , 攻击者调用initWallet,重新初始化钱包会把之前合约钱包所有者覆盖, 即可改变钱包所有者. 漏洞代码: ...
- [Leetcode Week8]Edit Distance
Edit Distance 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/edit-distance/description/ Description ...
- 搭建 Linux 下 GitLab 服务器【转】
转自:http://blog.csdn.net/passion_wu128/article/details/8216086 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 平台 ...