*[topcoder]GooseTattarrattatDiv1
http://community.topcoder.com/stat?c=problem_statement&pm=12730&rd=15701
这道题有点意思。首先把字符串变成回文,多个字符可能有交叉的等同关系,那么有些字符最终都要是要变成同一个。这个是可以用并查集来做的,标程怕并不是所有人都知道并查集,就用了图的DFS来做。这里用并查集的朴素版本来做,但x = comp[x];y = comp[y];这两句话必不可少,否则下面的循环过程中变化。
#include <string>
#include <vector>
using namespace std; class GooseTattarrattatDiv1 {
public:
int getmin(string S);
}; int GooseTattarrattatDiv1::getmin(string S) {
vector<int> count(26);
for (int i = 0; i < S.length(); i++) {
count[S[i]-'a']++;
}
int len = S.length();
vector<int> comp(26);
for (int i = 0; i < 26; i++) {
comp[i] = i;
}
for (int i = 0; i < len/2; i++) {
int x = S[i] - 'a';
int y = S[len - i - 1] - 'a';
x = comp[x];
y = comp[y];
for (int c = 0; c < 26; c++) {
if (comp[c] == x) {
comp[c] = y;
}
}
}
int ans = 0;
for (int i = 0; i < 26; i++) {
int size = 0;
int _max = 0;
for (int c = 0; c < 26; c++) {
if (comp[c] != i) continue;
size += count[c];
_max = max(count[c], _max);
}
ans += size - _max;
}
return ans;
};
*[topcoder]GooseTattarrattatDiv1的更多相关文章
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- Topcoder几例C++字符串应用
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...
- TopCoder
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...
- TopCoder SRM 596 DIV 1 250
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- TopCoder SRM 590
第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement Fox Ciel is going to play Gomoku with her friend ...
- Topcoder Arena插件配置和训练指南
一. Arena插件配置 1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorit ...
随机推荐
- (转)使用 Advanced Installer 打包 一键安装Web应用程序
使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置 ...
- (转)ASP.NET并发处理
对于DB服务器同样也可以调整最大连接数来做优化. 在调整优化好最大连接数之后,就只有软硬件负载均衡了.硬件负载均衡能够直接通过智能交换机实现,处理能力强,而且与系统无关,但是价格贵,配置困难,不能区分 ...
- Js跳出循环
break和 continue break 中断整个循环 continue 跳出当前循环,进入下一次循环 break示例: 例1: 例2: Continue:跳出当前循环,进入下一次循环 Break与 ...
- vs2008+qt进行开发
第一次接触qt vs,完全小白,网上找资料,各种乱,还大部分是很早以前的,挣扎了好几天终于搞定了, 在此给大家分享. 首先是下载vs2008 (我的项目组项目要求用这个版本),这个比较容易下载:然后是 ...
- zabbix短信网关调用问题总结
在写调用短信网关的shell脚本的时候,发现了一个百思不得其解的问题,用浏览器访问短信接口地址是可以成功接收到短信的.但在shell 里面调用就报错了!!!在反复测试当中发现,在shell 中对特殊字 ...
- JAVA中的代理技术(静态代理和动态代理)
最近看书,有两个地方提到了动态代理,一是在Head First中的代理模式,二是Spring AOP中的AOP.所以有必要补充一下动态代理的相关知识. Spring采用JDK动态代理和CGLib动态代 ...
- SQL Server如何使用XML格式传输解析
Sqlserver in 实现 参数化查询 XML类型解决方案 [转] :如果参数是int类型: declare @a xml set @a=' <row><id>1</ ...
- 配置ADB 工具 (Win7_64)
ADB (Android Debut Bridge) ADB这个工具, 让我们可以用电脑来操纵手机 Android studio 安装好之后在SDK 中就有ADB 但是我们想使用它还需要配置它的环境变 ...
- js数字格式化-四舍五入精简版
搜索网上的,数字格式化过余复杂,自己想了个简单方法,欢迎吐槽. 简化说明: '123333' => 12.3万 parseInt('123333') 字符串转整型 parseInt('12333 ...
- php安全设定
nginx: 在配置文件nginx.conf的http段里加入 server_tokens off; HTTPD.CONFTraceEnable Off <Directory ~ " ...