【dp/贪心】CF 780 (Div. 3), problem: (C) Get an Even String
难度: 1300

6
aabbdabdccc
zyx
aaababbb
aabbcc
oaoaaaoo
bmefbmuyw
3
3
2
0
2
7
开始没调出来, 去看DE了, 就不该往后看, 但是当时思维没跳出来, 也不一定做出来, 呜呜
当时是想着每次更新需要看前一次什么时候有这个字母
此题重要一点更新就是, 越靠前进行配对的字母才是最优, 把问题转化一下, n-配对的字母数即为结果,
这里贴两个代码, 第一个是小小不像dp的dp; 第二个是小小思维,这样做题感觉就简单了
代码一
#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long LL;
const int N = 2e5+10; int f[N];
char s[N]; int main()
{
int t;
// scanf("%d", &t);
cin >> t;
while(t --)
{
scanf("%s", s+1);//这种方法为了后面方便, 建议字符串从1开始
int cnt = 0;
int n=0; map<char,int> mp, l; f[0]=0;
for(int i = 1; s[i];i++)
{
f[i]=f[i-1]+1;
if(l[s[i]] && i>=l[s[i]])
if(f[i]>f[l[s[i]]-1]+i-l[s[i]]-1)
{
f[i] = f[l[s[i]]-1]+i-l[s[i]]-1;
l.clear();
} l[s[i]]=i;
n=i;
}
cout << f[n]<<'\n';
}
return 0; }
代码二
#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long LL;
const int N = 2e5+10;
int be[30];
int f[N];
int main()
{
int t;
// scanf("%d", &t);
cin >> t;
string s;
while(t --)
{
cin >> s;
int cnt = 0;
int n = s.size(); map<char,int> mp;
for(int i = 0; i<n;i++)
{
mp[s[i]]++;
if(mp[s[i]]==2) cnt ++, mp.clear();
}
cout << n-cnt*2<<'\n';
}
return 0; }
【dp/贪心】CF 780 (Div. 3), problem: (C) Get an Even String的更多相关文章
- CF #374 (Div. 2) D. 贪心,优先队列或set
1.CF #374 (Div. 2) D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
- 把一个序列转换成严格递增序列的最小花费 CF E - Sonya and Problem Wihtout a Legend
//把一个序列转换成严格递增序列的最小花费 CF E - Sonya and Problem Wihtout a Legend //dp[i][j]:把第i个数转成第j小的数,最小花费 //此题与po ...
- TopCoder SRM 560 Div 1 - Problem 1000 BoundedOptimization & Codeforces 839 E
传送门:https://284914869.github.io/AEoj/560.html 题目简述: 定义"项"为两个不同变量相乘. 求一个由多个不同"项"相 ...
- BZOJ 2021 [Usaco2010 Jan]Cheese Towers:dp + 贪心
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2021 题意: John要建一个奶酪塔,高度最大为m. 他有n种奶酪.第i种高度为h[i]( ...
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组
题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...
随机推荐
- 旅游清单一步搭建,Angular助力你的踏春计划
春天的脚步愈发临近,相信很多小伙伴已经开始规划自己的踏春计划了,无论是欣赏名胜古迹,还是走访风土人文,你都需要提前准备一份旅游清单!有了这款Angular旅游计划应用,从地点到预算,它都能帮助你创建自 ...
- 手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
前言 兄弟们,我发现一个有意思的东西,我在爱智官网翻资料的时候,发现他们终于终于把官网文档的索引优化了!有一说一,真是方便不少,终于不再是一堆文档糊在一坨了. 另外我还发现他们居然做了一个EFR32的 ...
- 【网鼎杯2020白虎组】Web WriteUp [picdown]
picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...
- 使用C#语言,如何实现EPLAN二次开发 Api插件及菜单展示
上期我们谈谈了谈EPLAN电气制图二次开发,制图软件EPLAN的安装和破解,今天我们来说说使用C#语言,如何实现Api插件及菜单,今天它来了!!! 关于项目环境的搭建请参考:https://blog. ...
- nginx简介&nginx基本配置和优化
一.nginx简介 1.nginx的发展 Nginx是俄罗斯人编写的一款高性能HTTP和反向代理服务器.Nginx能够选择高效的epoll(Linux2.6内核).kqueue(FreeBSD).ev ...
- Redis的数据类型操作(二)
1.String:key-value(做缓存) Redis中所有的数据都是字符串.命令不区分大小写,key是区分大小写的.Redis是单线程的.Redis中不适合保存内容大的数据. get.set.i ...
- 面试问题之计算机网络:TCP三次握手四次挥手
转载于:https://www.cnblogs.com/Andya/p/7272462.html TCP三次握手: 起初A和B都处于CLOSED关闭状态 B创建TCB,处于LISTEN收听状态,等待A ...
- 在 mapper 中如何传递多个参数?
1.第一种: DAO 层的函数 public UserselectUser(String name,String area); 对应的 xml,#{0}代表接收的是 dao 层中的第一个参数,#{1} ...
- elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 。
面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...
- Java 中,Serializable 与 Externalizable 的区别?
Serializable 接口是一个序列化 Java 类的接口,以便于它们可以在网络上传输 或者可以将它们的状态保存在磁盘上,是 JVM 内嵌的默认序列化方式,成本高. 脆弱而且不安全.Externa ...