Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection
来源:互联网 发布:mac 搜狗输入法设置 编辑:程序博客网 时间:2024/05/22 01:49
这题题目有点歧义,garland 意思是花圈,于是,把题意理解成了在环上找最长同一字母序列。而实际上,题目意思,仍是一个串。
这题显然可以预处理答案,实际上,对于每种询问(m,c),可以简单贪心一下,最佳策略肯定是去连接某些不连续的段(只包含字符c),而连接的最低要求是起始和结尾都是一个c字符。于是我们可以假设,最佳答案都是以一个字符c开头(这里说法并不对,可以以非c字符开始,将其染成c字符,但为了表述方便,先这样描述),那么对于以某个字符开头,经过最多m次染色可以得到的最长c字符序列可以求出。向右贪心,尽可能延伸c字符串的长度。求出这个结果并不是答案,因为实际上,字符串还可以向左扩展,但是我们只关心最长长度,所以只有当右边全部变成c字符后,我们可以用多余的染色机会去染左边的位置。对答案来说,直接加上剩余的染色次数,与n取小即可。
上述操作,两个循环就可以完成,因此复杂度位O(N^2)
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<map>#include<string>#include<queue>#include<vector>#include<list>#include<bitset>//#pragma comment(linker,"/STACK:1024000000,1024000000")using namespace std;typedef long long ll;#define INF 0x3f3f3f3fint n,m;char str[1502];int dp[50][1505];int main(){ while(~scanf("%d",&n)) { getchar(); memset(dp,0,sizeof dp); gets(str); for(int i=0;i<26;i++) for(int j=0;j<=n;j++) dp[i][j]=j; for(int i=0;i<n;i++) { int p=str[i]-'a'; dp[p][0]=1; int tmp=1,pp=i+1; for(int j=0;j<=n;) { if(pp>=n||str[i]!=str[pp]) j++; tmp++; tmp=min(tmp,n); dp[p][j]=max(dp[p][j],tmp); pp++; } } scanf("%d",&m); int cnt; char arg[5]; for(int i=1;i<=m;i++) { scanf("%d %s",&cnt,arg); char ch=arg[0]; printf("%d\n",dp[ch-'a'][cnt]); } } return 0;}
阅读全文
0 0
- Codeforces Round #418 (Div. 2) 814 C. An impassioned circulation of affection
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection(尺取)
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection
- Codeforces Round #418 (Div. 2) -- C. An impassioned circulation of affection(DP预处理)
- Codeforces Round #418 (Div. 2)C.An impassioned circulation of affection(暴力枚举)
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection 预处理
- CF-Codeforces Round #418 (Div. 2)-C-An impassioned circulation of affection
- Codeforces Round #418 C--An impassioned circulation of affection
- codeforces C. An impassioned circulation of affection
- Codeforces#418 An impassioned circulation of affection
- Codeforces#418C An impassioned circulation of affection
- CF Round #418( Div.2) An impassioned circulation of affection
- 【Codeforces 814 C. An impassioned circulation of affection】+ 尺取法
- codeforces 814C An impassioned circulation of affection
- codeforces 814C An impassioned circulation of affection
- codeforces 814 C An impassioned circulation of affection
- Codeforces 814C-An impassioned circulation of affection
- bzoj2818 gcd 欧拉函数(前缀和)
- vs中自动生成时序图
- day07 面向对象(构造方法、static类变量)
- task_struct(进程描述符)
- caffe 分类任务中训练与测试网络命令格式
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection
- 关于卡通渲染的一些思考
- HOJ 2634 网络流最小割 解题报告
- 关于KMP和exKMP
- 74、75、76
- uefi+gpt+centos7探索历程之一:win10下安装centos7
- Python资料
- MessagePack二进制序列化动态库的使用
- 中位数