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的更多相关文章

  1. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  2. CF Round #551 (Div. 2) D

    CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\ ...

  3. CF Round #510 (Div. 2)

    前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\) ...

  4. 竞赛题解 - CF Round #524 Div.2

    CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...

  5. CF Round #600 (Div 2) 解题报告(A~E)

    CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...

  6. cf Round#273 Div.2

    题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...

  7. 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 ...

  8. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  9. CF Round #509 (Div. 2)

    前言:第一次打\(CF\),因为经验不足以及英语水平很烂,即便在机房大佬的带领下也是花了好久才读懂题目..\(A\)题直到\(11\)分钟才\(A\),题目一共才做了\(4\)题,太菜了.. A. H ...

随机推荐

  1. DateDiff函数

    在MySQL中可以使用DATEDIFF()函数计算两个日期之间的天数 语法: datediff(date1,date2) 注:date1和date2需是合法的日期或日期/时间表达式 例1 SELECT ...

  2. Makefile常用信息查询页

    这是博主第一次尝试在博客中使用markdown来写博文,目前感觉还不错.大家也可以尝试尝试. 符号说明 符号 作用   换行符 @ 放在命令前面隐藏命令输出 - 放在命令前面忽略命令错误 : 以来规则 ...

  3. GC算法精解(五分钟让你彻底明白标记/清除算法)

    GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...

  4. 如何优化运行在webkit上的web app

    如何优化运行在webkit上的web app 近来公司有个web app 项目运行在移动版android系统上,发现在电脑上跑的很流畅的web页面在移动版webkit上非常不流畅.根本无法和nativ ...

  5. JavaEE:response响应和request请求

    Web服务器接收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象既然代表请求和响应,那么我 ...

  6. C语言的变量的内存分配

    今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了... 先看一下两段代码: char* toStr() { char *s = "abcdefghijkl&q ...

  7. NSLocalizedString不起作用

    程序TESTAPP 环境:XCODE 4.6 OSX  10.8.4 MAC BOOK AIR 2011年版 代码 [doneButton setTitle:NSLocalizedString(@&q ...

  8. sphinx2.8.8的配置文件

    # # Sphinx configuration file sample # # WARNING! While this sample file mentions all available opti ...

  9. Android 经验: 5555 端口会被 adb 误认为 emulator

    在本机启动 Android, 再用本机的的 adb 去连接 adb connect 127.0.0.1:5555 而后 adb devices 查看 user@ubuntu:~$ adb device ...

  10. 初窥Linux 之 数据流重定向

    一.什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧.数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr). 简单来说,标准输出指的是命令执行 ...