Codeforces Round 941 (Div. 2) (A~D)

news2024/11/17 17:52:12

1966A - Card Exchange 

        题意:

       思路:手玩一下发现当存在某个数字个数超过k个,那么就能一直操作下去。那么答案就是k-1.

void solve() 
{
	cin >> n >> m;
	map<int,int>mp;
	int maxx = 1;
	for(int i = 0 ; i < n ; i ++){
		int x;
		cin >> x;
		mp[x]++;
		maxx = max(maxx , mp[x]);
	}	
	if(n < m){
		cout << n <<endl; 
	}
	else{
		if(maxx >= m){
			cout  << m - 1 << endl;
		}
		else{
			cout << n <<endl;
		}
	}
}      

1966B - Rectangle Filling 

        题意:

        思路:若要使得所有方格同色,关键在于四个角上的颜色,若对角上的颜色一样就能直接将所有格子变为同色。因此本题变为能否使得对角上颜色相同,分类讨论

        

void solve() 
{
	cin >> n >> m;
	int mp[n + 5][m + 5];
	for(int i = 1 ; i <= n ;  i ++){
		string str;
		cin >> str;
		for(int j = 1 ; j <= m ; j ++){
			if(str[j - 1] == 'W'){
				mp[i][j] = 1;
			}
			else
				mp[i][j] = 0;
		}
	}	
	if(n == 1){
		if(mp[1][1] != mp[1][m]){
			cout << "NO\n";
		}
		else{
			cout<<"YES\n";
		}
		return;
	}
	if(m == 1){
		if(mp[1][1] == mp[n][1]){
			cout<<"YES\n";
		}
		else{
			cout<<"NO\n";
		}
		return;
	}
	if(mp[1][1] == mp[n][m] || mp[1][m] == mp[n][1]){
		cout<<"YES\n";
	}
	else{
		if(mp[1][1] == mp[1][m]){
			for(int i = 1 ; i <= m ; i ++){
				if(mp[1][i] != mp[1][1]){
					cout <<"YES\n";
					return;
				}
			}
			for(int i = 1 ; i <= m ; i ++){
				if(mp[n][i] != mp[n][1]){
					cout <<"YES\n";
					return;
				}
			}		
			cout <<"NO\n";
		}
		else{
			for(int i = 1 ; i <= n ; i ++){
				if(mp[i][1] != mp[1][1]){
					cout <<"YES\n";
					return;
				}
			}
			for(int i = 1 ; i <= n ; i ++){
				if(mp[i][m] != mp[n][m]){
					cout <<"YES\n";
					return;
				}
			}		
			cout <<"NO\n";			
		}
	}
}    

1966C - Everything Nim 

        题意:

        思路:为了方便考虑,我们令所有大小相同的堆为一个堆。接下来考虑终态:即只剩下一个堆。然后考虑若此时存在两个堆,那么对于Alice而言,其操作可以使得小的那个堆只剩下1,下一步Bob必须选1,然后Alice就胜利了。相反,若小的那个堆一开始就是1,那么Alice就输了。接下来推广到若干堆的情况:对于任意一方而言,若最小堆不是1,那么便可以控制胜利,于是我们只需要枚举到最小堆不是1的情况即可,然后看是谁在操作就是谁赢。

void solve() 
{
	cin >> n;
	set<int>st;
	for(int i = 1 ; i <= n ; i ++){
		int x;
		cin >> x;
		st.insert(x);
	}	
	vector<int>v;
	for(auto it : st)
		v.pb(it);
	vector<int>tag;
	int len = v.size();
	int cnt = 1;
	for(int i = 1 ; i < len ; i ++){
		if(v[i] - v[i - 1] == 1){
			cnt++;
		}
		else{
			tag.pb(cnt);
			cnt = 1;
		}
	}
	tag.pb(cnt);
/*	for(auto it : tag){
		cout << it << endl;
	}*/
	if(tag.size() == 1){
		if(v[0] == 1){
			if(tag[0] & 1){
				cout <<"Alice\n";
			}
			else{
				cout<<"Bob\n";
			}
		}
		else{
			cout<<"Alice\n";
		}
	}
	else{
		if(v[0] == 1 && tag[0] % 2 == 1){
			cout <<"Bob\n";
		}
		else
			cout<<"Alice\n";
	}
//	cout << endl;
}   

1966D - Missing Subsequence Sum 

        题意:

       思路:首先处理 < k 的部分,我们可以通过二进制的思想来构造整数,例如[1,99]可以用1,2,4,8,16,32,36来表示,其中36代表了99-63 .接下来考虑 > k 的部分,考虑到一个规律:[2,3,4,8,16....2^n]可以表示[2 ,2^{n+1}]的任何数,也就是说通过[m + 1 , 2 * m + 1 , 3 * m + 1 , 4 * m + 1 , 8 * m + 1 ...2^n * m + 1]再配合上前面的[1,m - 1]就能表示出任意>k的数了,这就是构造方案。

        

void solve() 
{
	//1 ~ 99 101 201 301
	//
	vector<int>ans;
	cin >> n >> m;
	int st = 1;
	int t = m;
	if(m == 1){
		ans.pb(2);
		ans.pb(3);
		ans.pb(4);
		int st = 8;
		for(int i = 3 ; i < 25 ; i ++){
			ans.pb(st);
			st *= 2;
		}
		cout << ans.size() << endl;
		for(auto it : ans){
			cout << it <<" ";
		}
		cout << endl;
		return ;
	}
	while(st < t){
		ans.pb(st);
		t -= st;
		st *= 2;
	}
	if(t - 1)
		ans.pb(t - 1);
	ans.pb(m + 1);
	ans.pb(m * 2 + 1);
	ans.pb(m * 3 + 1);
	ans.pb(m * 4 + 1);
	st = m * 8 + 1;
	int len = ans.size();

	for(int i = len + 1; i <= 25 ; i ++){
		ans.pb(st);
		st = st * 2 - 1;
	}
	cout << ans.size() << endl;
	for(auto it : ans){
		cout << it <<" ";
	}
	cout << endl;
}   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【热闻速递】Google 裁撤 Python研发团队

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【&#x1f525;热闻速递】Google 裁撤 Python研发团队引入研究结论 【&#x1f5…

Android AOSP探索之Ubantu下Toolbox的安装

文章目录 概述安装Toolbox解决运行的问题 概述 由于最近需要进军android的framework,所以需要工具的支持&#xff0c;之前听说江湖上都流传source insight,我去弄了一个破解版&#xff0c;功能确实强大&#xff0c;但是作为多年android开发的我习惯使用android studio。虽然使…

SpringWebFlux RequestBody多出双引号问题——ProxyPin抓包揪出真凶

缘起 公司有个服务做埋点收集的&#xff0c;可以参考我之前的文章埋点日志最终解决方案&#xff0c;今天突然发现有些数据日志可以输出&#xff0c;但是没法入库。 多出的双引号 查看Flink日志发现了JSON解析失败&#xff0c;Flink是从Kafka拿数据&#xff0c;Kafka本身不处…

2024深圳杯数学建模竞赛D题(东三省数学建模竞赛D题):建立非均质音板振动模型与参数识别模型

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓&#xff08;浏览器打开&#xff09; https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 2024深圳杯数学建模竞赛D题&#xff08;东三省数学建模竞赛D题&#xff0…

深入理解多层感知机MLP

1. 基础理论 神经网络基础&#xff1a; 目标&#xff1a;了解神经网络的结构&#xff0c;包括神经元、权重、偏置和激活函数。 神经网络是由多个层次的神经元组成的网络&#xff0c;它模拟了人脑处理信息的方式。每个神经元可以接收输入、处理输入并生成输出。这一过程涉及到…

Vue项目打包APK----Vue发布App

时隔多年我又来跟新了&#xff0c;今天给大普家及下前端Vue傻瓜式发布App&#xff0c;话不多说直接上干货。 首先准备开发工具HBuilder X&#xff0c;去官网直接下载即可&#xff0c;算了直接给你们上地址吧HBuilderX-高效极客技巧。 打开软件&#xff0c;文件-->新建--&g…

通用漏洞评估系统CVSS4.0简介

文章目录 什么是CVSS&#xff1f;CVSS 漏洞等级分类历史版本的 CVSS 存在哪些问题&#xff1f;CVSS 4.0改进的“命名法”改进的“基本指标”考虑“OT/IOT”新增的“其他指标”CVSS 4.0存在的问题 Reference: 什么是CVSS&#xff1f; 在信息安全评估领域&#xff0c;CVSS为我们…

可视化大屏也在卷组件化,组件绝对是效率利器呀。

组件化设计在B端上应用十分普遍&#xff0c;其实可视化大屏组件更为规范&#xff0c;本期分享组件化设计的好处&#xff0c;至于组件源文件如何获取&#xff0c;大家都懂的。 组件化设计对可视化大屏设计有以下几个方面的帮助&#xff1a; 提高可重用性&#xff1a; 组件化设…

打印x型图案Java

KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的X形图案。 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜线和正斜线…

Codeforces Round 942 (Div. 2)

Codeforces Round 942 (Div. 2) Codeforces Round 942 (Div. 2) A. Contest Proposal 题意&#xff1a;给出两个长度为n的非递减排序的ab序列&#xff0c;通过向a序列中插入新元素&#xff0c;然后排序后删除最大元素&#xff0c;使得两个长度为n的排列中每一个 a i a_i ai​…

软件定义汽车落地的五大关键要素

1、架构升级 1.1 软件架构&#xff1a;分层解耦、服务化、API 接口标准化 随着企业向软件定义汽车开发方法的转变&#xff0c;软件架构也需要同步进行升级&#xff0c;引入面向服务的架构&#xff08;Service-Oriented Architecture&#xff0c;简称 SOA&#xff09;方法论。…

探索Plotly交互式数据可视化

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Plotly交互式数据可视化 在数据科学和数据分析领域&#xff0c;可视化是一种强大的工具…

LeetCode 105.从前序与中序遍历构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,nul…

Window(Qt/Vs)软件添加版本信息

Window&#xff08;Qt/Vs&#xff09;软件添加版本信息 文章目录 Window&#xff08;Qt/Vs&#xff09;软件添加版本信息VS添加版本信息添加资源文件添加版本定义头自动更新版本添加批处理脚本设置生成事件 Qt添加版本信息添加资源文件文件信息修改自动更新版本 CMake添加版本信…

HR招聘测评,什么是好用的在线人才测评工具?

选择哪一种人才测评工具&#xff1f;特别是每年的招聘高峰季节。根据以往的工作经验&#xff0c;一个好用的在线人才工具&#xff0c;可以起到事半功倍的效果&#xff0c;带给人力资源工作者一个轻松的工作体验。因此&#xff0c;我们必须对好用的人才测评工具有一个基本的认识…

vuex的学习

首先下载vuex&#xff0c;然后建立一个目录在vueX中 接着在index。js文件夹中引入 引入后导出这个文件 在main.js文件中导入&#xff0c;这样vue就有了状态管理 接着我创建了2个组件&#xff0c;在 里边规定了一个num:0 在 打印出来就可以看见 映射函数mapState&#xff0c;必…

PEI-T纳米纤维膜

PEI-T纳米纤维膜是一种结合了聚乙烯亚胺&#xff08;PEI&#xff09;和胸腺嘧啶&#xff08;T&#xff09;的纳米纤维膜。其制备过程通常涉及将胸腺嘧啶-1-乙酸溶于水中&#xff0c;加入EDC&#xff08;一种交联剂&#xff09;进行搅拌&#xff0c;然后加入PEI溶液进行反应、透…

CGAL 网格热力图

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很有趣的功能,生成网格热力图,思路其实很简单:通过指定一个点,计算网格其他点到指定点的测地线距离,以此来为每个网格顶点进行赋色即可。 二、实现代码 //CGAL #include <CGAL/Simple_cartesi…

Flutter 弃用 WillPopScope 使用 PopScope 替代方法

Flutter 弃用 WillPopScope 使用 PopScope 替代方法 视频 https://youtu.be/u3qdqUvFWiM https://www.bilibili.com/video/BV1aJ4m1n7FZ 前言 原文 https://ducafecat.com/blog/migrating-from-willpopscope-to-popscope-in-flutter 了解如何在 Flutter 3.16 中将弃用的 Wil…

从NoSQL到NewSQL——10年代大数据浪潮下的技术革新

引言 在数字化浪潮的推动下&#xff0c;数据库技术已成为支撑数字经济的坚实基石。腾讯云 TVP《技术指针》联合《明说三人行》特别策划的直播系列——【中国数据库前世今生】&#xff0c;我们将通过五期直播&#xff0c;带您穿越五个十年&#xff0c;深入探讨每个时代的数据库演…