bzoj1692
题解:
二分最近的不相同
然后hash判断是否相同
然后贪心
代码:
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
const int N=;
int n;
char s[N],s1[],ans[N];
ull h1[N],h2[N],pw[N];
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)scanf("%s",s1+),s[i]=s1[];
pw[]=;
for (int i=;i<=n;i++)pw[i]=pw[i-]*;
for (int i=;i<=n;i++)h1[i]=h1[i-]*+s[i];
for (int i=n;i>=;i--)h2[i]=h2[i+]*+s[i];
for (int i=,l1=,r1=n;i<=n;i++)
{
int l=,r=r1-l1+;
while (l<=r)
{
int mid=(l+r)>>;
if (h1[l1+mid-]-h1[l1-]*pw[mid]==h2[r1-mid+]-h2[r1+]*pw[mid])l=mid+;
else r=mid-;
}
if (l>r1-l1+)l=;
if (s[l1+l-]>s[r1-l+])ans[i]=s[r1],r1--;
else ans[i]=s[l1],l1++;
}
for (int i=;i<=n;i++)
{
putchar(ans[i]);
if (i%==)puts("");
}
return ;
}
bzoj1692的更多相关文章
- 【BZOJ1692】[Usaco2007 Dec]队列变换 后缀数组+贪心
[BZOJ1692][Usaco2007 Dec]队列变换 Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比 ...
- bzoj4278[ONTAK2015]Tasowanie & bzoj1692[USACO 2007Dec]队列变换(Best Cow Line) 贪心正确性证明
做法网上到处都有就不说了. 这题其实是之前做的….不过由于人太傻现在才想明白比较字典序进行贪心的正确性…. 方便起见,在两个串的最右端都加上很大但不相同的字符,避免第lcp+1个字符不存在的边界. 如 ...
- [bzoj1692][Usaco2007 Dec]队列变换_后缀数组_贪心
队列变换 bzoj-1692 Usaco-2007 Dec 题目大意:给定一个长度为$n$的字符串.每次从头或尾取出一个字符加到另一个字符串里.要求变换后生成的字符串字典序最小,求字典序最小的字符串. ...
- bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换*&&bzoj1692[Usaco2007 Dec]队列变换*
bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换 bzoj1692[Usaco2007 Dec]队列变换 题意: 有一个奶牛队列.每次可以在原来队列的首端或是尾端牵出 ...
- 【BZOJ-1692&1640】队列变换 后缀数组 + 贪心
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1153 Solved: 482[Submit][St ...
- BZOJ1692: [Usaco2007 Dec]队列变换
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 594 Solved: 246[Submit][Sta ...
- [bzoj1692] [Usaco2007 Dec]队列变换 (hash||暴力)
本题同bzoj1640...双倍经验双倍幸福 虽然数据范围n=3w然而O(n²)毫无压力= = http://blog.csdn.net/xueyifan1993/article/details/77 ...
- [bzoj1692][队列变换]
题目链接 思路 首先肯定想到贪心,从队尾和队首取更小的那个. 但是如果遇到队尾和队首一样大的情况呢,总不能再挨个往前比较.所以就把整个字符串倒过来再挂到现在字符串的后面,也就是把当前字符串对称过去.然 ...
- 【bzoj1692】[Usaco2007 Dec]队列变换 贪心+后缀数组
题目描述 FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席前依次走过. ...
随机推荐
- MySQL根据when-else条件批量更新
#类型 0:默认 1:黑(0302) 2:白(0110) SELECT * FROM t_power_plat WHERE plat_type=1; UPDATE t_power_plat SET p ...
- vue element-ui 日期选择器组件 日期时间格式化
vue element-ui 组件开发大大提高了我们的效率,但有时候并不能满足我们的需求,例如时间,日期组件: element-ui 日期返回的格式是这样的,看下图: 但我们要的是另一个格式 , 如下 ...
- word2010怎么把白色方框变成黑色方框?
word2010怎么把白色方框变成黑色方框? 打开Word 2010文档,选中第四个白色方框. 切换到“插入”功能区,在符号选项组单击“符号”按钮,出来的窗口单击“其他符号”. 在“符号”选项卡单 ...
- HTML如何实现滚动文字
HTML如何实现滚动文字 一.总结 一句话总结:marquee标签,也可以用js和css来实现 marquee标签 也可jss和css <marquee><span style=&q ...
- 【错误】IntelliJ IDEA使用Gradle编译报错
一.异常如下: No signature of method: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.Def ...
- innerHTML用法及错误:无法设置未定义或null引用的属性“innerHTML”解决
在使用ActionCable时, app/assets/javascripts/channels/calladdresses.coffee: App.calladdress = App.cable.s ...
- caffe-ssd
1.安装依赖 1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-ser ...
- 轮播,试用与微信公众号,apicloud苹果安卓
<head> <script type="text/javascript" src="script/jquery.min.js">< ...
- pytorch backward问题
pytorch中关于backward的很有意思的一个问题 <https://blog.csdn.net/shiheyingzhe/article/details/83054238> 但是我 ...
- python and or的理解规则
>>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c’ 解释:在布尔上 ...