http://www.lydsy.com/JudgeOnline/problem.php?id=3916

#include <bits/stdc++.h>
using namespace std;
int n, ans[3]; char s[2000005];
void work(int now) {
int l=1, r=n-(n>>1); if(now<2) ++r; int flag=0; //printf("%d\n", now);
for(int i=0, tot=n>>1; i<tot; ++i) {
if(s[l]!=s[r]) { //printf("%d %d\n", l, r);
if(now==0 || flag) { ans[now]=0; return; }
if(now==1) ans[now]=l, ++l;
if(now==2) ans[now]=r, ++r;
flag=1;
--i; continue;
}
++l; ++r;
}
if(!flag) ans[now]=n-(n>>1);
}
bool check(int x, int y) { if(ans[x]==0 || ans[y]==0 || ans[x]==ans[y]) return 1; return 0; }
int main() {
scanf("%d%s", &n, s+1);
if((n&1)==0) { puts("NOT POSSIBLE"); return 0; }
for(int i=0; i<3; ++i) work(i);
if(!ans[0] && !ans[1] && !ans[2]) { puts("NOT POSSIBLE"); return 0; }
for(int i=0; i<3; ++i) for(int j=0; j<3; ++j) if(i!=j && !check(i, j)) { puts("NOT UNIQUE"); return 0; }
int pos=0;
for(int i=0; i<3; ++i) if(ans[i]) pos=ans[i]; //for(int i=0; i<3; ++i) printf("%d\n", ans[i]);
for(int i=1, cnt=0; i<=n; ++i) {
if(i==pos) continue;
putchar(s[i]);
if(++cnt==(n>>1)) break;
}
return 0;
}

  

显然能枚举这个点然后左右hash吧= =

可是这样可能会被卡+常数大..

我们考虑3种情况= =这个点在中点左边、在中点上、中点右边。

然后计算这三种情况的答案= =然后就行辣= =(比如如果在左边,那么我们在扫的时候允许左边错一个字符

【BZOJ】3916: [Baltic2014]friends的更多相关文章

  1. 【BZOJ】3052: [wc2013]糖果公园

    http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]} ...

  2. 【BZOJ】3319: 黑白树

    http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种: ...

  3. 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后n ...

  4. 【BZOJ】1013: [JSOI2008]球形空间产生器sphere

    [BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...

  5. 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)

    Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图 ...

  6. 【BZOJ】【3083】遥远的国度

    树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果roo ...

  7. 【BZOJ】【2434】【NOI2011】阿狸的打字机

    AC自动机+DFS序+BIT 好题啊……orz PoPoQQQ 大爷 一道相似的题目:[BZOJ][3172][TJOI2013]单词 那道题也是在fail树上数有多少个点,只不过这题是在x的fail ...

  8. 【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法

    整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就 ...

  9. 【BZOJ】【3170】【TJOI2103】松鼠聚会

    切比雪夫距离+曼哈顿距离 题解:http://www.cnblogs.com/zyfzyf/p/4105456.html 其实应该先做这题再做[BZOJ][3210]花神的浇花集会的吧…… 我们发现d ...

随机推荐

  1. APP消息推送:通知和透传

    目前市场上的消息推送方式有两种:通知和透传.什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...

  2. 在多台服务器上简单实现Redis的数据主从复制(3)(转载)

    转载地址:http://www.cnblogs.com/liping13599168/archive/2011/04/14/2016226.html Redis的主从复制功能非常强大,一个master ...

  3. Delphi版本顺序

    1.02.03.04.05.06.07.08.0200520062007 现在应该又出新的版本了

  4. Spell checker

     Spell checker Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  5. slf4i + logback 配置

    一.所需jar包: slf4j-api-1.6.1.jar logback-classic-0.9.24.jar logback-core-0.9.24.jar 二.logback.xml配置示例: ...

  6. .NET NLog 详解(二)

    Git是个很好的源码管理系统,你可以瞬间切换为任何历史版本.为了更好的解析NLog这个组件,我们将时钟倒拨回2004年.(注意:NLog v0.9 has been released 是在2005-0 ...

  7. jquery中ajax的简单使用

    一.load() 这是最简单的一个函数,传入一个url他会异步加载该url的内容,然后将内容插入每一个选中的元素中,替换掉其中已经存在的内容. 所以最简单的用法是: $("#myDiv&qu ...

  8. C#分布式缓存Couchbase使用

    目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis. 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择. 一.简介 目前C#业界使用得最多的 ...

  9. supervisor(一)基础篇

    这两天干的活,是让楼主写一个supervisor的listener,用来监控supervisor所管理子进程的状态,当子进程异常退出时,楼主写的这个listener将会触发报警.在这里总结下super ...

  10. Hibernate的核心API

    Configuration:负责管理Hibernate的配置信息 1.加载核心配置文件 核心配置有两种: hibernate.properties 加载:Configuration configura ...