CF 1178E Archaeology 题解
这道题竟然是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 题解的更多相关文章
- CF 1400G.Mercenaries 题解【SOSDP 组合数学】
CF 1400G.Mercenaries 题意: 有\(n\)个佣兵,问雇佣至少一名雇佣兵且满足下述条件的方案数 如果雇佣第\(i\)个佣兵必须要求最终雇佣的总人数\(x\)满足\(l_i\le x\ ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- CF Round#240题解
第一次参加CF的比赛,MSK19.30,四个小时的时差真心累,第一次CODE到这么夜-- 一开始做了A,C两题,后来做B题的时候我体力和精神集中度就很低了,导致一直WA在4-- 今天起床后再刷B,终于 ...
- CF Round #808 题解 (Div. 2 ABCD)
后面题太难搞不动 . ABCD 的题解写的好水啊,感觉在写闲话,,, A 若 \(\forall i, a_1\mid a_i\),则可以 . 注意判 \(0\) 的情况 . 提交记录 . B 显而易 ...
- Codeforces 1178E. Archaeology
传送门 首先一定有解,考虑归纳法证明 首先 $n<=3$ 时显然 考虑 $n=4$ 时,那么因为 $s[1]!=s[2],s[3]!=s[4]$ ,并且 $s[i] \in {a,b,c}$ 由 ...
- Codeforces 1178E Archaeology (鸽巢原理)
题意: 给你1e6的字符串,保证只含'a''b''c'三种字符,且相邻两个字符一定不一样 求一个大于等于n/2的回文子序列 思路: 朴素的最长回文子序列是n方的区间dp,这题显然不行,要充分利用题中所 ...
- CF 1394 简要题解
最近都会做一些 \(\rm Div1\) 套题中 \(3000\) 分以下的题目. A 直接枚举贪心即可. B 首先不难发现总共可能的 \(c\) 序列只有 \(k!\) 种,很明显要暴力枚举所有情况 ...
- CF Round #829 题解 (Div. 2)
F 没看所以摆了 . 看拜月教教主 LHQ 在群里代打恰钱 /bx 目录 A. Technical Support (*800) B. Kevin and Permutation (*800) C. ...
- CF 484E - Sign on Fence
E. Sign on Fence time limit per test 4 seconds memory limit per test 256 megabytes input standard in ...
随机推荐
- Nowcoder 挑战赛23 B 游戏 ( NIM博弈、SG函数打表 )
题目链接 题意 : 中文题.点链接 分析 : 前置技能是 SG 函数.NIM博弈变形 每次可取石子是约数的情况下.那么就要打出 SG 函数 才可以去通过异或操作判断一个局面的胜负 打 SG 函数的时候 ...
- maven安装问题解决
出现: The JAVA_HOME environment variable is not defined correctly This environment variable is needed ...
- python生成手机号
""" 电信号段:133/153/180/181/189/177; 联通号段:130/131/132/155/156/185/186/145/175; 移动号段:134/ ...
- tomcat 散点杂记
tomcat有很多细碎的知识点和一些坑点,我将再次记录 域名直指项目 我们经常访问项目都要带上项目目录 eg: http://xwiki.test.com/xwiki or http://jenkin ...
- SQLMAP自注入--INJECTION TECGBUQUES FINGERPRINT
-p参数 指定扫描的参数 ,使--level失效 -p“user-agent,refer”这些参数也可以通过-p来指定 sqlmap.py -u "http://127.0.0.1/muti ...
- 并发量,tps,qps
QPS/TPS/并发量/系统吞吐量的概念 2017年08月13日 17:24:47 阅读数:10682 我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大.这个 ...
- C++入门经典-例3.9-使用嵌套表达式判断一个数是否是3和5的整数倍
1:代码如下: // 3.9.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...
- 6张图解释IO流
1.字节流InputStream 2.字节流OutputStream 3.字符流Reader 4.字符流Writer 5.节点流 6.处理流 总结: 节点流可以直接连接在数据源上,处理流不可以:节点流 ...
- 硬盘类型和Linux分区
1. 硬盘类型和Linux分区 分类: Linux系统与应用 2011-11-22 20:54 1404人阅读 评论(0) 收藏 举报 linuxide扩展ftp服务器服务器redhat 真怪自己知识 ...
- 【Spark机器学习速成宝典】模型篇02逻辑斯谛回归【Logistic回归】(Python版)
目录 Logistic回归原理 Logistic回归代码(Spark Python) Logistic回归原理 详见博文:http://www.cnblogs.com/itmorn/p/7890468 ...