题目链接:http://codeforces.com/contest/979/problem/B

解题心得:

  • 这个题题意就是三个人玩游戏,每个人都有一个相同长度的字符串,一共有n轮游戏,每一轮三个人必须改变自己字符串中的一个字母,最后得分就是字符串中出现字符最多的字母的次数。
  • 感觉这个题从题目描述到做法都像一个脑筋急转弯。主要明白一点,如果一个数要变回自己要怎么变。自己->其他->自己。自己->其他->其他->自己,推几个特例很容易就出来了。
 #include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+;
struct Person{
string name;
int Max;
vector <int> ve;
}p[]; int change_times,len;
void init() {
map <char, int> maps;
for(int i='a', j='A';i<='z'&&j<='Z';i++,j++) {
maps[i] = ;
maps[j] = ;
}
char ri[maxn];
p[].name = "Kuro";
p[].name = "Shiro";
p[].name = "Katie";
scanf("%d",&change_times);
map <char, int> :: iterator iter;
for(int i=;i<;i++) {
maps.clear();
scanf("%s",ri);
len = strlen(ri);
for(int j=;j<len;j++)
maps[ri[j]]++;
for(iter=maps.begin();iter!=maps.end();iter++){
p[i].ve.push_back(iter->second);
}
for(int k='a', j='A';k<='z'&&j<='Z';k++,j++) {
if(maps[k] == || maps[j] == )
p[i].ve.push_back();
}
}
} bool cmp(Person a, Person b) {
return a.Max > b.Max;
} void solve() {
for(int i=;i<;i++) {
for(int j=;j<p[i].ve.size();j++) {
int k = p[i].ve[j];
if(k == len && change_times == ) {
p[i].Max = len -;
break;
}
int ch = len - k;
if(change_times < ch) {
p[i].Max = max(p[i].Max, k+change_times);
} else {
p[i].Max = len;
}
}
}
sort(p, p+, cmp);
if(p[].Max == p[].Max)
printf("Draw");
else
cout<<p[].name<<endl;
} int main() {
init();
solve();
return ;
}

Codeforces Round #482 (Div. 2) :B - Treasure Hunt的更多相关文章

  1. Codeforces Round #482 (Div. 2) B、Treasure Hunt(模拟+贪心)979B

    题目 大致题意 n表示要进行n次操作,接着给出三个字符串,表示三个人初始拥有的串.每次操作要替换字符串中的字母,询问最后在游戏中曾出现过的相同的子串谁最多. 思路 (1)  讨论最多的子串,肯定是全部 ...

  2. 【Codeforces Round #482 (Div. 2) B】Treasure Hunt

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 我们考虑每个字符串中出现最多的字母出现的次数cnt[3] 对于这3个cnt的值. 如果cnt+n<=s[i].size 那么显 ...

  3. Codeforces Round #482 (Div. 2) : Kuro and GCD and XOR and SUM (寻找最大异或值)

    题目链接:http://codeforces.com/contest/979/problem/D 参考大神博客:https://www.cnblogs.com/kickit/p/9046953.htm ...

  4. Codeforces Round #482 (Div. 2) :C - Kuro and Walking Route

    题目连接:http://codeforces.com/contest/979/problem/C 解题心得: 题意就是给你n个点,在点集中间有n-1条边(无重边),在行走的时候不能从x点走到y点,问你 ...

  5. Codeforces Round #482 (Div. 2) B题

    题目链接:http://codeforces.com/contest/979/problem/B B. Treasure Hunt time limit per test1 second memory ...

  6. 【枚举】【贪心】Codeforces Round #482 (Div. 2) B. Treasure Hunt

    题意:给你3个字符串,3个人各对自己的字符串执行n轮操作,每一次选择一个字符变为任意一个和原来不同的字符.最后问你谁能使自己的串中的任意重复子串出现的次数最大化. 显然只需关注字符而非子串. 枚举每个 ...

  7. Codeforces Round #532 (Div. 2):F. Ivan and Burgers(贪心+异或基)

    F. Ivan and Burgers 题目链接:https://codeforces.com/contest/1100/problem/F 题意: 给出n个数,然后有多个询问,每次回答询问所给出的区 ...

  8. Codeforces Round #511 (Div. 2):C. Enlarge GCD(数学)

    C. Enlarge GCD 题目链接:https://codeforces.com/contest/1047/problem/C 题意: 给出n个数,然后你可以移除一些数.现在要求你移除最少的数,让 ...

  9. Codeforces Round #514 (Div. 2):D. Nature Reserve(二分+数学)

    D. Nature Reserve 题目链接:https://codeforces.com/contest/1059/problem/D 题意: 在二维坐标平面上给出n个数的点,现在要求一个圆,能够容 ...

随机推荐

  1. 使用jMeter构造逻辑上有依赖关系的一系列并发请求

    相信前端开发工程师对CSRF(Cross-site request forgery)跨站请求伪造这个概念都非常熟悉,有的时候也简写成XSRF,是一种对网站的恶意利用. 尽管听起来像跨站脚本(XSS), ...

  2. [零基础学JAVA]Java SE基础部分-03.标识符、数据类型,数组,方法

    运算符 注意布尔逻辑运行: &&(短路与)  各 &的区别: &&只要判断到一项为0,则后面不判断.&,两项都要判断  ||(短路或)和 |的区别: 同 ...

  3. OC NSArray使用

    #import <Foundation/Foundation.h> #import "Student.h" #pragma mark 创建一个数组 void array ...

  4. char *转string遇到诡异的问题记录

    这个问题的背景是在用libevent的buffer_remove时出现的,写一个伪代码 char buffer[2048] ={0}; string str; int n = buffer_remov ...

  5. Java中类继承、接口实现的一些要注意的细节问题

    1.接口A和接口B有相同的方法,只是返回值不同,则实现类不能同时实现这两个接口中的方法. 接口A有void C()方法,接口B有int C()方法,则无法同时实现这两个接口. Java为了弥补类单继承 ...

  6. IBM MQ介绍

    转自:http://hi.baidu.com/lubezhang/blog/item/bd308b3b7ecce3ec14cecb4f.html IBM MQ(IBM Message Queue)是I ...

  7. Intellij IDEA Organize Imports

    使用Eclipse进行开发时,我喜欢用Ctrl + Shift + O快捷键管理Java类的导入,它可以导入所需的Java类,去除不需要的Java类. Eclipse的Organize Imports ...

  8. CAAnimation 动画支撑系统

    Model支撑:(依附对象) 从presentLayer获取数据: 渲染树为私有: -(void)addAnimation:(CAAnimation *)anim forKey:(NSString * ...

  9. Kali-linux准备内核头文件

    内核头文件是Linux内核的源代码.有时候,用户需要编译内核头文件代码,为以后使用内核头文件做准备,本节将介绍编译内核头文件的详细步骤. 准备内核头文件的具体操作步骤如下所示. (1)更新软件包列表. ...

  10. 从零一起学Spring Boot之LayIM项目长成记(二) LayIM初体验

    前言 接上篇,已经完成了一个SpringBoot项目的基本搭建.那么现在就要考虑要做什么,怎么做的问题.所以本篇内容不多,带大家一起来简单了解一下要做的东西,之前有很多人不知道从哪里下手,那么今天我带 ...