题面

这道题竟然是E?还是洛谷中的黑题?

wow~!!

于是就做了一下;

然后一下就A了;(这并不代表想的容易,而是写的容易)

这道题就是骗人的!!

什么manacher,什么回文自动机,去靠一边站着,看我的无敌大模拟!

可以设定l,r两个点,初始时分别指向1和n;

如果是s[l]==s[r],那么答案就更新(ans+=2,但当l==r时,ans仅加1就够了);

如果不等,那么就回文自动......诶?等等,题目说只有a,b,c?而且相邻的两位不等?蛤?这是什么情况?

如果s[i]!=s[j],因为s[j-1]!=s[j],s[i+1]!=s[i],所以至少就是以下几种情况中的一种,s[i+1]==s[j],s[i]==s[j-1],s[i+1]==s[j-1];

然后对其模拟,然后就轻松愉快的A啦~

#include <bits/stdc++.h>
using namespace std;
int n;
char s[];
bool bo[];
int cnt;
int main() {
scanf("%s", s + );
int l=,r=;
n=r=strlen(s + );
while(l <= r){
if(s[l] == s[r]){
bo[l] = bo[r] = ;
cnt+=;
if(l==r){
--cnt;
}
++l;
--r;
}
else if(l+<=r&&s[l+]==s[r]){
bo[l+]=bo[r]=;
cnt+=+(l+!=r);
l+=, --r;
}
else if (l<=r-&&s[l]==s[r-]){
bo[l]=bo[r-]=;
cnt+=+(l!=r-);
++l, r-=;
}
else{
++l, --r;
}
}
if(cnt>=n/){
for(int i=;i<=n;i++){
if(bo[i]){
printf("%c",s[i]);
}
}
puts("");
}
else{
puts("IMPOSSIBLE");
}
return ;
}

CF 1178E Archaeology 题解的更多相关文章

  1. CF 1400G.Mercenaries 题解【SOSDP 组合数学】

    CF 1400G.Mercenaries 题意: 有\(n\)个佣兵,问雇佣至少一名雇佣兵且满足下述条件的方案数 如果雇佣第\(i\)个佣兵必须要求最终雇佣的总人数\(x\)满足\(l_i\le x\ ...

  2. CF#581 (div2)题解

    CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...

  3. CF Round#240题解

    第一次参加CF的比赛,MSK19.30,四个小时的时差真心累,第一次CODE到这么夜-- 一开始做了A,C两题,后来做B题的时候我体力和精神集中度就很低了,导致一直WA在4-- 今天起床后再刷B,终于 ...

  4. CF Round #808 题解 (Div. 2 ABCD)

    后面题太难搞不动 . ABCD 的题解写的好水啊,感觉在写闲话,,, A 若 \(\forall i, a_1\mid a_i\),则可以 . 注意判 \(0\) 的情况 . 提交记录 . B 显而易 ...

  5. Codeforces 1178E. Archaeology

    传送门 首先一定有解,考虑归纳法证明 首先 $n<=3$ 时显然 考虑 $n=4$ 时,那么因为 $s[1]!=s[2],s[3]!=s[4]$ ,并且 $s[i] \in {a,b,c}$ 由 ...

  6. Codeforces 1178E Archaeology (鸽巢原理)

    题意: 给你1e6的字符串,保证只含'a''b''c'三种字符,且相邻两个字符一定不一样 求一个大于等于n/2的回文子序列 思路: 朴素的最长回文子序列是n方的区间dp,这题显然不行,要充分利用题中所 ...

  7. CF 1394 简要题解

    最近都会做一些 \(\rm Div1\) 套题中 \(3000\) 分以下的题目. A 直接枚举贪心即可. B 首先不难发现总共可能的 \(c\) 序列只有 \(k!\) 种,很明显要暴力枚举所有情况 ...

  8. CF Round #829 题解 (Div. 2)

    F 没看所以摆了 . 看拜月教教主 LHQ 在群里代打恰钱 /bx 目录 A. Technical Support (*800) B. Kevin and Permutation (*800) C. ...

  9. CF 484E - Sign on Fence

    E. Sign on Fence time limit per test 4 seconds memory limit per test 256 megabytes input standard in ...

随机推荐

  1. ASP net 上传整个文件夹

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  2. Linux下不同组件运行命令

    Spark优化配置 添加外包路径 1.1 vim $SPARK_HOME/conf/spark-defaults.conf spark.executor.extraClassPath file:/// ...

  3. SQL中模糊查询的模式匹配

    SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...

  4. akka 的集群访问方式

    akka  中采用startProxy分区代理 访问 ,跟使用shardRegion 来访问的区别 这两种访问方式是不是重了呢. 而另外这是一个单例代理 private fun startUniver ...

  5. 【转】jQuery - 同时添加click和dblclick事件

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  6. 网络1911、1912 C语言第1次作业批改总结

    一.评分规则 重点检查大家代码规范,变量名.大括号换行.缩进等发现不规范倒扣3分. 助教会进PTA查看大家代码的提交列表,发现不规范或抄袭,均扣分 每次作业完成后,至少邀请3个同学点评. 原作业地址: ...

  7. Laravel框架之获取URL地址

    1. 使用 Request 类: $url = Request::getRequestUri(); 2. 使用 $request 对象: public function show(Request $r ...

  8. SHELL中执行Oracle SQL语句查询性能视图

    数据库日志是否报错信息 vi check_log.sh #!/bin/bash # Created : 2019.10.10 # Updated : # Author : # Description ...

  9. leetcode 658找到k个最接近的元素

    class Solution { public: vector<int> findClosestElements(vector<int>& arr, int k, in ...

  10. Jquery退出循环

    返回falsh即可 return false; 如果return true; 则进入下一次循环