AtCoder AGC037E Reversing and Concatenating
题目链接
https://atcoder.jp/contests/agc037/tasks/agc037_e
题解
天哪,这场题目难度大概真的是乱序吧。。。。A<C<E<D<B<F? 后悔考场上没看看这题= =
首先在一般情况下,不妨设串中出现过的最小字符为\(a\), 最长连续的\(a\)的长度是\(l\), 那么显然答案的前至少\(2^{k-1}\times l\)位都是\(a\).
然后发现,假设确定了第一步的操作,那么后面的操作都是唯一确定的,且可以在\(O(n)\)时间内得到。
于是枚举一下第一步操作
然后。。就做完了啊。。。
时间复杂度\(O(N^2)\).
但是有个比较恶心的细节:如果这个字符串末尾有若干个字符\(a\)要特殊处理(具体见代码)。并且即便末尾\(a\)的长度不足\(l\)也有可能成为最优解(因为相当于省去了一次操作,应该是达到\(\frac{l}{2}\)就有可能)。
例如以下数据:
8 1
baaacbaa
因此WA了4发。
代码
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cassert>
using namespace std;void read(int &x)
{int f=1;x=0;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}x*=f;
}const int N = 5000;
char a[N+3];
char ans[N+3][N+3];
char mnc;
int n,m,num;bool cmp(int x,int y)
{for(int i=1; i<=n; i++){if(ans[x][i]<ans[y][i]) return true;if(ans[x][i]>ans[y][i]) return false;}return false;
}int main()
{scanf("%d%d",&n,&m);scanf("%s",a+1);mnc = 'z'; for(int i=1; i<=n; i++) mnc = min(mnc,a[i]);if(m>=14) {for(int i=1; i<=n; i++) printf("%c",mnc); return 0;}int len = 0,mxl = 0;for(int i=1; i<=n; i++){if(a[i]!=mnc) len = 0;else len++;if(len>mxl) {mxl = len;}}len = 0; num = 0;for(int i=1; i<=n; i++){if(a[i]!=mnc) len = 0;else len++;if(i==n){num++;int tmp = min(n,len*(1<<m));for(int j=1; j<=tmp; j++) ans[num][j] = mnc;for(int j=tmp+1,k=n-len; j<=n; j++,k--) ans[num][j] = a[k];}if(len==mxl){num++;int tmp = min(n,len*(1<<m-1));for(int j=1; j<=tmp; j++) ans[num][j] = mnc;for(int j=tmp+1,k=i+1; j<=n; j++,k++){ans[num][j] = a[k<=n?k:2*n+1-k];}}}
// for(int i=1; i<=num; i++) {for(int j=1; j<=n; j++) printf("%c",ans[i][j]); puts("");}int fans = 1;for(int i=1; i<=num; i++){if(cmp(i,fans)){fans = i;}}for(int j=1; j<=n; j++) printf("%c",ans[fans][j]); puts("");return 0;
}
AtCoder AGC037E Reversing and Concatenating相关推荐
- 【做题记录】AtCoder AGC做题记录
做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 127 总共题数: 269 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: ...
- AtCoder Grand Contest 021完整题解
提示:如果公式挂了请多刷新几次,MathJex的公式渲染速度并不是那么理想. 总的来说,还是自己太弱了啊.只做了T1,还WA了两发.今天还有一场CodeForces,晚上0点qwq... 题解还是要好 ...
- PAT 1074 Reversing Linked List
1074 Reversing Linked List (25point(s)) Given a constant K and a singly linked list L, you are suppo ...
- ICPC / CCPC / Codeforces / AtCoder 单词本
过不了六级的小菜鸡呜呜呜,好久没有背过单词了,都忘完了 放一些写ICPC真题 / CCPC真题 / Codeforces / AtCoder 的时候不能立刻反应过来的单词每天背一下 四舍五入 roun ...
- 【每日亿题#12】AtCoder Grand Contest 021 (A ~ F)全部题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 AtCoder Grand Contest 021 题解 A. Digit Sum 2 B. ...
- AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...
- AtCoder Beginner Contest 197 题解(A ~ F)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...
- AtCoder Beginner Contest 198 (A ~ F)题解
目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...
- 目标检测--Enhancement of SSD by concatenating feature maps for object detection
Enhancement of SSD by concatenating feature maps for object detection BMVC 2017 本文是对SSD 的改进,通过牺牲一点速度 ...
最新文章
- 华为服务器内存条在主板位置,服务器主板内存
- Java程序员从笨鸟到菜鸟之(八十八)跟我学jquery(四)JQuery框架操作元素的属性与样式
- 微软面试题及答案 (很需要开放性思维啊)
- java 类无法实例_Java无法从类实例访问类方法
- GDOI2021划水记
- Hive找出所有科目成绩都大于某一学科平均成绩的学生
- ai的利与弊 辩论_为什么AI辩论失败了
- Qt程序的国际化支持【收藏】
- 安利App介绍及下载(含二维码)
- 爬虫_抓取猫眼电影TOP100
- OGG/OGV文件格式解析
- C4D学习笔记3-动画-动画渲染流程案例
- 数学建模养老保险问题matlab,全国大学生数学建模竞赛C题 企业退休职工养老金制度的改革...
- 51单片机检测温湿度并且上传到阿里云
- 对Redis中主从复制、哨兵模式和集群进行部署
- 小米游戏本 linux 编程键,小米笔记本安装Ubuntu后特殊键终于可用了
- 国标解读:关于超温保护部分(GB 4793.6-2008 测量、控制和实验室用电气设备的安全要求)
- 去除小数点后的.或多余的0(多个方法参考)
- zz国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
- 站长说说之 seo中蜘蛛是否能抓住网站的动态页面
热门文章
- 【休闲游戏 实战1】推箱子PC端小游戏(附源码)
- Ubuntu通过windows代理上网
- 多次Jquery引发head.insertBefore( script, head.firstChild );
- 实验一 线性表、堆栈和队列的操作与实现
- C语言中size_t的陷阱
- 过滤器、拦截器、监听器的区别与使用
- STM32开发 -- 外部中断详解
- Java开发:(执行系统(例cmd)命令)Runtime.getRuntime().exec()参数解释
- 反卷积在神经网络可视化上的成功应用
- Android面试题详细整理系列(二)