CodeForces 820C
题意略。
这道题目的出题者竟然被hack了!?
我的思路是:在游戏开始时,为了尽量少地用字母,我应该尽量选取计算机输出的前a个字母中已经使用过的字母。但是为了使电脑也尽量少用字母,我添加的这b个字母应该是一样的,
这样我才能给电脑留出更多的使用已经出现过的字母的空间。
假设现在计算机已经走完了它的一步,现在轮到我了,现在字符串总长度为i。
当a > b时,我添加字母的范围是[i - (a - b) + 1,i]这(a - b)个字母(连续添加b个一样的),这样可以发现出现了长度为2 * (a + b)的循环节,我们把这(a - b)种循环节构造出来,储存在数组中。
当a > b时,我只用添加b个str[i]这个字符就行了。这样它的循环节也是2 * (a + b)的。
详见代码:
#include<bits/stdc++.h>
#define maxn 100
using namespace std; char str[][maxn];
int visit[maxn];
int len,tot,kind,a,b,l,r; void prepare(){
tot = (a <= b ? a + : * a - b);
len = ((a + b)<<);
if(b >= a){
kind = ;
for(int i = ;i <= a;++i) str[][i] = 'a' + i - ;
for(int i = a + ;i <= a + b;++i) str[][i] = str[][a];
for(int i = a + b;i > b;--i) visit[str[][i] - 'a'] = ;
for(int i = a + b + ,j = ;i <= * a + b;++i){
while(visit[j]) ++j;
str[][i] = 'a' + j;
visit[j] = ;
}
for(int i = a + b + a + ;i <= a + b + a + b;++i)
str[][i] = str[][a + b + a];
for(int i = * (a + b) + ;i <= * (a + b);++i)
str[][i] = str[][i - * (a + b)];
str[][ * (a + b) + ] = '\0';
}
else{
kind = a - b;
for(int k = ;k <= a - b;++k){
memset(visit,,sizeof(visit));
for(int i = ;i <= a;++i) str[k][i] = 'a' + i - ;
for(int i = a + ;i <= a + b;++i) str[k][i] = str[k][k + b];
for(int i = a + b;i > b;--i) visit[str[k][i] - 'a'] = ;
for(int i = a + b + ,j = ;i <= * a + b;++i){
while(visit[j]) ++j;
str[k][i] = 'a' + j;
visit[j] = ;
}
for(int i = a + b + a + ;i <= a + b + a + b;++i)
str[k][i] = str[k][a + b + a];
for(int i = * (a + b) + ;i <= * (a + b);++i)
str[k][i] = str[k][i - * (a + b)];
str[k][ * (a + b) + ] = '\0';
}
}
} int main(){
scanf("%d%d%d%d",&a,&b,&l,&r);
prepare();
if(r - l >= len) printf("%d\n",tot);
else{
r = (r - ) % len + ;
l = (l - ) % len + ;
if(r < l) r += len;
int ans = maxn;
memset(visit,,sizeof(visit));
for(int k = ;k <= kind;++k){
int temp = ;
memset(visit,,sizeof(visit));
for(int i = l;i <= r;++i){
if(visit[str[k][i] - 'a'] == ){
++temp;
visit[str[k][i] - 'a'] = ;
}
}
ans = min(temp,ans);
}
printf("%d\n",ans);
}
return ;
}
CodeForces 820C的更多相关文章
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
- CodeForces - 261B Maxim and Restaurant
http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...
- CodeForces - 696B Puzzles
http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...
- CodeForces - 148D Bag of mice
http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...
随机推荐
- intern
java.lang.String的intern()方法"abc".intern()方法的返回值还是字符串"abc",表面上看起来好像这个方 法没什么用处.但实际 ...
- 怎样用PS对照片进行美白?
摘录自:http://product.pconline.com.cn/itbk/software/ps/1408/5336118.html 步骤1.打开需要美白肤色的照片.本教程为防止侵犯他人肖像权, ...
- es6重点笔记:数值,函数和数组
本篇全是重点,捡常用的怼,数值的扩展比较少,所以和函数放一起: 一,数值 1,Number.EPSILON:用来检测浮点数的计算,如果误差小于这个,就无误 2,Math.trunc():取整,去除小数 ...
- Hyperledger Fabric Transaction Flow——事务处理流程
Transaction Flow 本文概述了在标准资产交换过程中发生的事务机制.这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品).他们每个人在网络上都有一个peer,通过这个网络,他们发送自 ...
- 《JavaScript权威指南》读书笔记——JavaScript核心
前言 这本由David Flanagan著作,并由淘宝前端团队译的<JavaScript权威指南>,也就是我们俗称的“犀牛书”,算是JS界公认的“圣经”了.本书较厚(有1004页),读起来 ...
- VisionPro笔记:色彩区分
VisionPro:色彩区分 来自:blog.sina.com.cn/yangchao168 利用色彩来区分物体这类的项目没做过,总觉得很难,尤其是涉及到RGB和HSI等.看到VisionPro中有这 ...
- 02_HTML5+CSS详解第一天
视频来源:麦子学院 讲师:朱朝兵 HTML5概念:HTML即超文本标记语言(HyperText Makeup Language),是一种语法简单,结构清晰的解释型文档,不同于其他编程语言. HTML5 ...
- wampserver 的Apache启动错误提示:The requested URL / was not found on this server.
打开localhost显示以下错误 原因:之前我配置了虚拟主机,所以服务器是从虚拟环境访问的,localhost也就访问不到 解决方法:打开httpd.conf配置文件,将Include conf/e ...
- ( ! ) Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\demo\code\yolo\index\index.php on li
sql语句为:$sql="select count(*) from com where a_id=$v['id']"; 出现以下错误: 原因: 变量没有用花括号引起来 改为: $ ...
- python爬虫之小说爬取
废话不多说,直接进入正题. 今天我要爬取的网站是起点中文网,内容是一部小说. 首先是引入库 from urllib.request import urlopen from bs4 import Bea ...