当前位置: 首页 > news >正文

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

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

显然只需关注字符而非子串。

枚举每个字符,尽力使其他字符变成它。

只有一种情况需要注意!如果字符a的出现次数等于len,并且n=1,那么你不得不将一个字符a变为其他的字符,最终最多只能有len-1个a。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
char a[4][100005];
int b[4][305],A[4],len;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=3;++i){
		scanf("%s",a[i]+1);
		len=strlen(a[i]+1);
		for(int j=1;j<=len;++j){
			++b[i][a[i][j]];
		}
	}
	for(int i=1;i<=3;++i){
		for(int j='A';j<='Z';++j){
			if(n<=len-b[i][j]){
				A[i]=max(A[i],b[i][j]+n);
			}
			else if(b[i][j]==len && n==1){
				A[i]=max(A[i],len-1);
			}
			else{
				A[i]=max(A[i],len);
			}
		}
		for(int j='a';j<='z';++j){
			if(n<=len-b[i][j]){
				A[i]=max(A[i],b[i][j]+n);
			}
			else if(b[i][j]==len && n==1){
				A[i]=max(A[i],len-1);
			}
			else{
				A[i]=max(A[i],len);
			}
		}
	}
	if(A[1]>A[2] && A[1]>A[3]){
		puts("Kuro");
	}
	else if(A[2]>A[1] && A[2]>A[3]){
		puts("Shiro");
	}
	else if(A[3]>A[1] && A[3]>A[2]){
		puts("Katie");
	}
	else{
		puts("Draw");
	}
	return 0;
}

转载于:https://www.cnblogs.com/autsky-jadek/p/9042881.html

相关文章:

  • Python学习笔记__6.3章 继承和多态
  • 如何高效的编写与同步博客 (.NET Core 小工具实现)
  • Mongodb对集合(表)和数据的CRUD操作
  • (2)Java 简介
  • innobackupex 在增量的基础上增量备份
  • elasticsearch+logstash+kibana+redis
  • 有向无环图(DAG)的最小路径覆盖
  • winSCP:无权访问
  • VS Code 折腾记 - (13) VS Live Share (可提高效率的代码实时协作插件)的使用姿势
  • 百度Api完成在线地图定位显示
  • windows堆栈研究以及线程安全
  • 给nginx生成自签名证书
  • Python之合并PDF文件
  • git 常用命令说明
  • CSS3学习之background-origin和background-clip区别
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Angular2开发踩坑系列-生产环境编译
  • iOS 系统授权开发
  • Quartz初级教程
  • TypeScript迭代器
  • vue--为什么data属性必须是一个函数
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 前端性能优化--懒加载和预加载
  • 浅谈Golang中select的用法
  • 如何编写一个可升级的智能合约
  • 数据仓库的几种建模方法
  • 思维导图—你不知道的JavaScript中卷
  • 小试R空间处理新库sf
  • 一些关于Rust在2019年的思考
  • (145)光线追踪距离场柔和阴影
  • (js)循环条件满足时终止循环
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (四)Linux Shell编程——输入输出重定向
  • (五)关系数据库标准语言SQL
  • (一)基于IDEA的JAVA基础10
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)四层和七层负载均衡的区别
  • (转载)(官方)UE4--图像编程----着色器开发
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 分布式技术比较
  • .NET 中 GetProcess 相关方法的性能
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET成年了,然后呢?
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @EnableWebMvc介绍和使用详细demo
  • [].slice.call()将类数组转化为真正的数组
  • [4.9福建四校联考]
  • [bzoj 3534][Sdoi2014] 重建
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [C++] 统计程序耗时
  • [C++基础]-初识模板
  • [C++随笔录] 红黑树
  • [CTF]2022美团CTF WEB WP