CF Round #354 Div.2
http://codeforces.com/contest/676
A. Nicholas and Permutation
题意:有一个从1到n的数列,可以任意对调两个数字一次,问数字1和n所在位置之间的最大距离是多少?
思路:可以选择把数字1和开头的数字对调,或者1和末尾的数字对调,或者n和开头的数字对调,或者n和末尾的数字对调,一共四种对调方法,只需要比较对调之后的下标差的绝对值,取最大的即可。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std; int main()
{
int n,a,maxa=0,mina=105,maxid=0,minid=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
if(a>maxa)
{
maxa=a;
maxid=i;
}
if(a<mina)
{
mina=a;
minid=i;
}
}
int res=max(abs(n-minid),abs(minid-1));
res=max(res,max(abs(n-maxid),abs(maxid-1)));
printf("%d\n",res);
return 0;
}
B. Pyramid of Glasses
题意:如下图,倒酒,共有n层,在时间t秒后,问有几个酒杯是满的?
思路:每秒每个满的酒杯都能分别流下一半到下一层的对应左右两个酒杯中,那么可以开一个二维数组a[i][j],初始化为0,a[1][1]=t; 然后遍历每个酒杯,如果a[i][j]>=1,即是满的酒杯,那么ans++,然后把剩下的酒(其实就是时间t)分给下一层对应的两个酒杯a[i+1][j],a[i+1][j+1]。
注意:数组a必须是double类型的
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std; int main()
{
int n,t;
double a[15][15];
memset(a,0,sizeof(a));
scanf("%d %d",&n,&t);
a[1][1]=t;
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(a[i][j]>=1)
{
ans++;
a[i+1][j]+=(a[i][j]-1)/2;
a[i+1][j+1]+=(a[i][j]-1)/2;
}
}
}
printf("%d\n",ans);
return 0;
}
C. Vasya and String
借鉴:http://www.voidcn.com/blog/tc_to_top/article/p-5986745.html
题意:一个字符串只包含a和b,可以改变其中k个,求最大的美丽值,美丽值定义为子串中所含字符均相同的的最长子串的长度。
思路:对于k次操作,要么全换a要么全换b,对这两种情况取最大即可,算的时候用两点法,r向右直到k用完,然后l从左开始加,不断还原k值。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std; char s[100005];
int n,k; int op(char c)
{
int l=0,r=0;
int ans=0,cnt=0;
while(l<n&&r<n)
{
while(((s[r]==c)||cnt<k)&&r<n)
{
if(s[r]!=c) cnt++;
r++;
}
ans=max(ans,r-l);
while(s[l]==c&&l<=r)
l++;
l++;
cnt--;
}
return ans;
} int main()
{
scanf("%d %d",&n,&k);
scanf("%s",s);
printf("%d\n",max(op('a'),op('b')));
return 0;
}
CF Round #354 Div.2的更多相关文章
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- CF Round #551 (Div. 2) D
CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\ ...
- CF Round #510 (Div. 2)
前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\) ...
- 竞赛题解 - CF Round #524 Div.2
CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...
- CF Round #600 (Div 2) 解题报告(A~E)
CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...
- cf Round#273 Div.2
题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...
- Codeforces Round #354 (Div. 2)-C. Vasya and String,区间dp问题,好几次cf都有这种题,看来的好好学学;
C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...
- CF Round #509 (Div. 2)
前言:第一次打\(CF\),因为经验不足以及英语水平很烂,即便在机房大佬的带领下也是花了好久才读懂题目..\(A\)题直到\(11\)分钟才\(A\),题目一共才做了\(4\)题,太菜了.. A. H ...
随机推荐
- Quartz表达式生成器
Java版的Quartz表达式生成器,同时适用于Quartz.net(免费下载) Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2 ...
- ios学习笔记之UIViewControl生命周期
提到UIViewcontrol,每个人都不会陌生吧!平时实际开发中,每天的实际开发应该都少不了它.学过android的各位亲,也对生命周期这四个字并不陌生,无论是activity,还是service, ...
- Ruby编码
目录 背景字符串可以使用不同的编码编码转换编码强制不同编码的字符串相加后是啥结果?一直没使用过的\u和\x使用Sublime开发Ruby时,输出到控制台的字符串为啥不能使用多种编码?备注 背景返回目录 ...
- Go Revel 学习指南
Go Revel 学习指南 CONTROLLERS(控制器) Routing(路由)http://www.cnblogs.com/hangxin1940/p/3267065.html Paramete ...
- C#山寨版本拨号客户端
C#山寨版本[天翼拨号客户端]---内含详细抓包,模拟数据---万事俱备,只欠东风. 本帖子本来最初是发在CSDN上的,回复的也有十几个,但没有一个有技术含量的回复....特来此讨论,请教,请各位 ...
- ASP.NET MVC2.0学习笔记:路由设置
Route设置 在 <Professional in ASP.NET MVC2.0>一书的第四章,主要讲述了Route的简单设置.格式化设置.约束设置.区域路由.匹配文件.路由调试以及对R ...
- 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...
- HDU 2040 亲和数
Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. ...
- 命令版本git 分支篇-----不断更新中
最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--命令版本 开发中想看看过去某个版本的代码,我们先查看log git log commit f224a720b8192165a4e70f2 ...
- mabatis传入参数
1.传入一个list,遍历时collection默认是list,如果在参数前面使用@Param,则list里面应该换成相应的value. 2.传入一个array,遍历时collection默认是arr ...