贪心: Problem - C - Codeforces

思维: Problem - D - Codeforces

这两个题不错, 第一个需要考虑后面,就先标记完, 从前遍历挨个除去标记

第二个需要考虑前面, 就开始初始化为0, 从前遍历挨个标记

C. Meximum Array

题意: 给出n个数, 把n个数分成任意份, 使得每一段mex结果尽量的大, 其次连起来数尽量的长

mex = 一组数最小且不存在于序列中的数, 包括0

题解:  既然要每段的mex尽量大, 那么后面加再多数  mex都不会变, 那么后面都是小于或大于mex, 即这一段序列后面没有mex

#include <bits/stdc++.h>

using namespace std;

const int N = 2e5+10;
int a[N], cnt[N];
bool st[N];
int main()
{
int t;
cin >> t;
while(t --)
{
vector<int> res;
int n;
cin >> n;
for(int i = 0; i < n; i ++)cnt[i]=0;
for(int i = 0; i < n; i ++)cin >> a[i], cnt[a[i]]++, st[i]=0;

/*
cnt //后面的所有数的次数, 用于判断后面还有没有更大的数
st //当前一小段序列谁出现过
*/

int mex = 0;//当前一小段序列的mex
for(int i = 0; i < n; i ++)
{
st[a[i]]=1;
while(st[mex])mex++;//找到从前到后第一个没有的数, 求mex
cnt[a[i]]--;//后面还有几个这个数
if(cnt[mex]<=0)//后面也没有这个数,那么再往后也没用了
{
res.push_back(mex);
for(int j = mex-1; j >= 0; j --)//为下一段序列初始化
{
st[j]=0;
}
mex=0;
}
}
cout << res.size() << endl;
for(int i = 0; i < res.size(); i ++)cout << res[i] << ' ';
cout << endl;
}
return 0;
}

D. Peculiar Movie Preferences

题意: 米海计划看一部电影。他只喜欢回文电影,所以他想跳过一些(可能零)场景,使电影的其余部分回文, 每个场景长度不超过三。

题解: 无非两种情况1.本身是回文2.遍历时前面有一串可以和他构成回文(从前往后遍历)

所以从前往后遍历的话, 只看它是否能够成为后缀


/*
做后缀:
倒过来加一个数
倒过来去一个数
倒过来 */
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int tx[4] = {-1,0,1,0}, ty[4] = {0,1,0,-1}; typedef pair<int,int> PII; const int N = 1e5+10;
string a[N];
map<string,bool> mp; bool solve()
{
mp.clear();//map用法
int n;
cin >> n;
bool f = 0;
for(int i = 0; i <n ; i ++)
{ cin >>a[i];
mp[a[i]]=1;
string s = a[i];
reverse(s.begin(), s.end());
if(s.size()==1 || s.size()==2&&s[0]==s[1] || mp[s])f=1;//本身是回文 if(mp[s.substr(0,s.size()-1)])f=1;//倒过来去一个数 for(char i = 'a'; i <= 'z'; i ++)//倒过来加一个数
if(mp[s+i])
f= 1;
}
return f;
}
int main()
{
int t;
cin >> t;
while(t --)
{
if(solve())puts("YES");
else puts("NO");
}
}

Codeforces Round #767 (Div. 2) c d, 巧妙标记的更多相关文章

  1. Codeforces Round #767 (Div. 2)——B. GCD Arrays

    B. GCD Arrays 题源:https://codeforces.com/contest/1629/problem/B 题目大意 给出一段区间[l, r],可以进行操作(把任意两个数拿出来,把他 ...

  2. Codeforces Round #260 (Div. 2) A , B , C 标记,找规律 , dp

    A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  3. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  4. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  5. Codeforces Round #535 (Div. 3) 题解

    Codeforces Round #535 (Div. 3) 题目总链接:https://codeforces.com/contest/1108 太懒了啊~好久之前的我现在才更新,赶紧补上吧,不能漏掉 ...

  6. Codeforces Round #527 (Div. 3) ABCDEF题解

    Codeforces Round #527 (Div. 3) 题解 题目总链接:https://codeforces.com/contest/1092 A. Uniform String 题意: 输入 ...

  7. map Codeforces Round #Pi (Div. 2) C. Geometric Progression

    题目传送门 /* 题意:问选出3个数成等比数列有多少种选法 map:c1记录是第二个数或第三个数的选法,c2表示所有数字出现的次数.别人的代码很短,思维巧妙 */ /***************** ...

  8. Codeforces Round #499 (Div. 1)

    Codeforces Round #499 (Div. 1) https://codeforces.com/contest/1010 为啥我\(\rm Div.1\)能\(A4\)题还是\(\rm s ...

  9. Codeforces Round #577 (Div. 2) D. Treasure Hunting

    Codeforces Round #577 (Div. 2)  D. Treasure Hunting 这个一场div2 前面三题特别简单,这个D题的dp还是比较难的,不过题目告诉你了只能往上走,所以 ...

随机推荐

  1. Redhat7 安装 yum源(亲测有效)

    由于之前安装Redhat7 想安装vsftpd  使用yum   install vsftpd 报错: This system is not registered to Red Hat Subscri ...

  2. Mysqldump 命令只导出表结构或数据或数据和结构的方法

    1.备份数据库 #mysqldump --opt -d 数据库名 -u root -p > xxx.sql #mysqldump DB_NAME >数据库备份名 #mysqldump -A ...

  3. Acwing 社交距离 分类讨论+贪心

    一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播. Farmer John 正在采取尽可能多的预防措施来防止他的牛群被感染. Farmer John 的牛棚是一个狭长的建筑物,有一排共 N ...

  4. loj6077. 「2017 山东一轮集训 Day7」逆序对

    题目描述: loj 题解: 容斥+生成函数. 考虑加入的第$i$个元素对结果的贡献是$[0,i-1]$,我们可以列出生成函数. 长这样:$(1)*(1+x)*(1+x+x^2)*--*(1+x+x^2 ...

  5. uniapp小程序图片前端压缩上传

    目录 1,前言 2,实现代码 1,前言 这次项目中做了一个图片上传,要求是大于2MB的就压缩成2MB一下的再上传,我这边利用了uniapp的文件接口,使用canvas做了一个压缩上传的功能,目前已上线 ...

  6. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数。。。使用

    一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引 ...

  7. 什么是 Spring Boot?

    Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手.

  8. mysqlbench无法启动

    mysqlbean双击没有反应,应用无法启动,缺少3要素 都缺什么呢?看这个MySQL官方链接:https://dev.mysql.com/doc/workbench/en/wb-installing ...

  9. Hashtable 与 HashMap 有什么不同之处?

    这两个类有许多不同的地方,下面列出了一部分: a) Hashtable 是 JDK 1 遗留下来的类,而 HashMap 是后来增加的. b)Hashtable 是同步的,比较慢,但 HashMap ...

  10. 《Advanced Bash-Scripting Guide》 in Chinese 高级Bash脚本编程指南》Revision 10中文版

    <Advanced Bash-Scripting Guide> in Chinese <高级Bash脚本编程指南>Revision 10中文版 在线阅读链接:http://ww ...