Codeforces Round 950 (Div. 3)(A~D题)

A. Problem Generator

 

思路:暴力模拟,对于每个字母,如果不足m mm,就加入最终答案.

实现代码:

#include<bits/stdc++.h>
using namespace std;
#define N 2000005
#define mod 100003
typedef long long ll;
ll n, m, t, cnt, ans, sum1,sum2, maxx,k;
int x, y;
int a[N], b[N], c[N],dis[N];
bool vis[N];
vector<int>G[N];
typedef pair<int, int>pii;
priority_queue<pii, vector<pii>, greater<pii>>q;
struct node {
	int a, b, c,flag;
}f[N];
int main()
{
	cin >> t;
	void solve();
	while (t--) {
		solve();
	}
	return 0;
}
void solve()
{
	cin >> n >> m;
	ans = 0;
	string s;
	cin >> s;
	map<char, ll>p;
	for (int i = 0; i < s.size(); i++) {
		p[s[i]]++;
	}
	for (int i = 'A'; i <= 'G'; i++) {
		ans += max((ll)0, m - p[i]);
	}
	cout << ans << endl;
}

B. Choosing Cubes

 

思路:

我们只需要检査排完序之后比较在k位置的立方体ak与最喜欢的立方体af,的大小即可,如果ak>af,说明af的位置在k之前,一定会波删;如果ak< af,说明af的位置在k之后,一定不会被删;如果ak= af,检査ak+1,如果ak+1 = af,则有可能被删,否则一定被删。

实现代码:

#include<bits/stdc++.h>
using namespace std;
#define N 2000005
#define mod 100003
typedef long long ll;
ll n, m, t, cnt, ans, sum1,sum2, maxx,k;
int x, y;
int a[N], b[N], c[N],dis[N];
bool vis[N];
vector<int>G[N];
typedef pair<int, int>pii;
priority_queue<pii, vector<pii>, greater<pii>>q;
struct node {
	int a, b, c,flag;
}f[N];
bool cmp(int x, int y) {
	return x > y;
}
int main()
{
	cin >> t;
	void solve();
	while (t--) {
		solve();
	}
	return 0;
}
void solve()
{
	cin >> n >> m >> k;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	cnt = a[m];
	sum1 = sum2 = 0;
	sort(a + 1, a + 1 + n, cmp);
	for (int i = 1; i <= n; i++) {
		if (cnt == a[i]) {
			sum1 = i;
			break;
		}
	}
	for (int i = n; i >= 1; i--) {
		if (cnt == a[i]) {
			sum2 = i;
			break;
		}
	}
	if (k < sum1) {
		cout << "NO" << endl;
		return;
	}
	else if(k>=sum2){
		cout << "YES" << endl;
		return;
	}
	else {
		cout << "MAYBE" << endl;
		return;
	}
}

C. Sofia and the Lost Operations

思路:

若最后一个修改数存在于b数组中,那么只需要看这些修改的数能否把a数组中待修改的数全部覆盖即可,否则一定不存在。

实现代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;
#define N 2000005
#define mod 7777777
typedef long long ll;
int n, m, t, cnt, ans, sum1,sum, maxx;
int x, y;
int a[N], b[N],d[N];
bool vis[N];
map<int, int>k, dis;
int main()
{
	cin >> t;
	void solve();
	int gcd(int x, int y);
	while (t--) {
		solve();
	}
	return 0;
}
void solve()
{
	cin >> n;
	sum = 0;
	k.clear(), dis.clear();
	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);
	for (int i = 1; i <= n; i++)
		scanf("%d", &b[i]), dis[b[i]]++;
	cin >> m;
	for (int i = 1; i <= m; i++)
		scanf("%d", &d[i]),k[d[i]]++;
	if (!dis[d[m]]) {
		cout << "NO" << "\n";
		return;
	}
	if (dis.find(d[m]) == dis.end()) {
		cout << "NO" << "\n";
		return;
	}
	else {
		bool flag = 1;
		for (int i = 1; i <= n; i++) {
			if (a[i] != b[i]) {
				if (!k[b[i]]) {
					flag = 0;
					break;
				}
				k[b[i]]--;
			}
		}
		if (flag) {
			cout << "YES" << "\n";
			return;
		}
		else {
			cout << "NO" << "\n";
			return;
		}
	}
}

D. GCD-sequence

 

 思路:

将删除前的gcd序列求出来,可以发现若要满足题意,必然需要找到gcd序列中递减的位置,并且删除与之相关的数(要记录前后两个数和他本身)。然后判断删除后的序列能否形成非递减即可。

 

(因为要找到递减的两个数,其原数列是三个连续数决定的,所以要记录者三个数)

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#define N 2000005
#define mod 7777777
typedef long long ll;
int n, m, t, cnt, ans, num1, num2, num3, maxx;
int x, y;
int a[N], b[N],d[N];
bool vis[N];
map<int, int>k, dis;
vector<int>dp2, dp3;
int gcd(int a, int b) {
	return b > 0 ? gcd(b, a % b) : a;
}
bool judge() {
	for (int i = 1; i <n-2; i++) {
		if (dp3[i] >= dp3[i - 1]) {
			continue;
		}
		else {
			return false;
		}
	}
	return true;
}
int main()
{
	cin >> t;
	void solve();
	while (t--) {
		solve();
	}
	return 0;
}
void solve()
{
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	vector<int>dp1;
	for (int i = 1; i < n; i++) {
		dp1.push_back(gcd(a[i], a[i - 1]));
	}
	num1 = num2 = num3 = -1;
	for (int i = dp1.size()-1; i >= 1; i--) {
		if (dp1[i - 1] > dp1[i]) {
			num1 = i + 1;
			num2 = i;
			num3 = i - 1;
			break;
		}
	}
	if (num1 == -1) {
		cout << "YES" << endl;
		return;
	}
	else {
		dp2.clear(), dp3.clear();
		for (int i = 0; i < n; i++) {
			if (i == num1)
				continue;
			dp2.push_back(a[i]);
		}
		for (int i = 1; i < n-1; i++) {
			dp3.push_back(gcd(dp2[i], dp2[i - 1]));
		}
		if (judge()) {
			cout << "YES" << endl;
			return;
		}
		dp2.clear(), dp3.clear();
		for (int i = 0; i < n; i++) {
			if (i == num2)
				continue;
			dp2.push_back(a[i]);
		}
		for (int i = 1; i < n - 1; i++) {
			dp3.push_back(gcd(dp2[i], dp2[i - 1]));
		}
		if (judge()) {
			cout << "YES" << endl;
			return;
		}
		dp2.clear(), dp3.clear();
		for (int i = 0; i < n; i++) {
			if (i == num3)
				continue;
			dp2.push_back(a[i]);
		}
		for (int i = 1; i < n - 1; i++) {
			dp3.push_back(gcd(dp2[i], dp2[i - 1]));
		}
		if (judge()) {
			cout << "YES" << endl;
			return;
		}
		cout << "NO" << endl;
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

史上Z快ST

一支股票ST要多久&#xff0c;锦州港告诉你&#xff0c;3个交易日足矣。上周五发出发公告&#xff0c;今天停牌1天&#xff0c;明天复牌就变ST。对锦州港的九万股民来说&#xff0c;好消息是今天不会跌&#xff0c;坏消息是复牌ST以后可以开始每天数地板了。 又是一个浓眉大眼的…

前端 CSS 经典:3D Hover Effect 效果

前言&#xff1a;有趣的 3D Hover Effect 效果&#xff0c;通过 js 监听鼠标移动&#xff0c;动态赋值 rotateX&#xff0c;rotateY 的旋转度来实现。 效果图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta …

Python脚手架系列-PyQt5

记录PyQt模块使用中的一些常常复用的代码 其他 导入界面 import sysfrom PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QApplication, QMainWindow from UI.MainWindow import Ui_MainWindow # 导入UI界面的类以供继承class MyApp(QMainWindow, Ui_MainWindow):de…

Scala环境的搭建

要搭建Scala&#xff0c;我们必须先下载java&#xff0c;由于我的电脑已经搭建好了环境&#xff0c;因此我这里用截图来教大家搭建环境。 可以从网上搜索安装包对其进行安装 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 不建议下载最新版的&#xff0c;大家下载的版本可以下…

CyberDAO引领Web3新时代,共创去中心化未来

Web3的新时代 Web3是互联网的下一代版本&#xff0c;基于区块链技术&#xff0c;实现了去中心化、透明和安全的网络体验。与微信、淘宝等传统中心化平台不同&#xff0c;Web3赋予用户更多的控制权和数据所有权。用户行为数据将由用户自己拥有并分布式管理&#xff0c;不再集中…

PySpark特征工程(III)--特征选择

有这么一句话在业界广泛流传&#xff1a;数据和特征决定了机器学习的上限&#xff0c;而模型和算法只是逼近这个上限而已。由此可见&#xff0c;特征工程在机器学习中占有相当重要的地位。在实际应用当中&#xff0c;可以说特征工程是机器学习成功的关键。 特征工程是数据分析…

LeetCode刷题之最大子数组

今天打算多做一题。 1、题目描述 2、逻辑分析 哈哈&#xff0c;这题我前两天在小红书刷到了&#xff0c;博主答不上来&#xff0c;一样的是&#xff0c;我也不知道怎么做。当时只看到评论说什么dp解法&#xff0c;看看题解怎么说。现在才反应过来dp dynamic programming &am…

【C语言】详解函数(庖丁解牛版)

文章目录 1. 前言2. 函数的概念3.库函数3.1 标准库和头文件3.2 库函数的使用3.2.1 头文件的包含3.2.2 实践 4. 自定义函数4.1 自定义函数的语法形式4.2 函数的举例 5. 形参和实参5.1 实参5.2 形参5.3 实参和形参的关系 6. return 语句6. 总结 1. 前言 一讲到函数这块&#xff…

数据库(19)——字符串函数

函数是指一段可以直接被另一段程序调用的程序代码。 常用的函数 函数功能CONCAT(S1,S2...Sn)字符串拼接LOWER(str)将字符串全部转换为小写UPPER(str)将字符串全部转换为大写LPAD(str,n,pad) 用字符串pad对str的左边进行填充RPAD(str,n,pad)用字符串…

10倍速提升音乐制作,FL Studio21.2.9中文版揭秘!

FL Studio21中文版是数字音频工作站软件领域的一颗璀璨明星&#xff0c;它以强大的功能和直观的操作界面&#xff0c;赢得了音乐制作人和爱好者的广泛青睐。无论是专业音乐人还是初学者&#xff0c;都能通过这款软件探索和实现他们对音乐的创作和想象。本文将详细介绍FL Studio…

Maven实战: 从工程创建自定义archetype

在上一节中(创建自定义archetype)我们手动创建了一个项目模板&#xff0c;经过5步能创建出一个项目模板&#xff0c;如果我有一个现成的项目&#xff0c;想用这个项目作为模板来生成其他项目呢&#xff1f;Maven提供了基于项目生成archetype模板的能力&#xff0c;我们分3步来讲…

公差和配合

配合的选择&#xff1a; 配合特性以及基本偏差的应用&#xff1a; 常用优先配合特性及选用举例 为什么一般情况下选用基孔制而不用基轴制&#xff1a; 优先采用基孔制的原因主要包括工艺性、经济性和标准化&#xff1a; 工艺性。加工孔比加工轴更难&#xff0c;因为孔…

函数计数和跟踪 --- console的count和trace方法

新学到一个小方法&#xff0c;分享一下哦。 使用 console 对象的 trace ⽅法在控制台上输出当前的调用栈&#xff0c;可以追踪⼀个函数的执⾏过程。 当我们想要了解一个函数是如何被其他函数调用的&#xff0c;或者想要查看调用栈中的其他信息时&#xff0c;这个方法非常有用…

韩文图片文字识别,这几款软件轻松驾驭韩语文本

在当今信息爆炸的时代&#xff0c;跨语言交流已成为日常生活和工作中的常态。对于需要处理韩文文本的用户来说&#xff0c;韩文图片文字识别技术无疑是一大福音。今天&#xff0c;就为大家介绍几款优秀的韩文图片文字识别软件&#xff0c;让你轻松驾驭韩语文本&#xff0c;提升…

性能工具之 JMeter 常用组件介绍(二)

文章目录 一、Thread Group二、断言组件1、Response Assertion&#xff1a;响应断言2、Response Assertion&#xff1a;响应断言3、Duration Assertion&#xff1a;响应时间断言4.、JSON Assertion&#xff1a;json断言 一、Thread Group 线程组也叫用户组&#xff0c;是性能测…

【linux根分区扩容】

前言&#xff1a; 今天在安装软件的时候发现我的linux的根分区空间不足了&#xff0c;在网上搜索哈资料解决了。 解决根分区空间不足的问题方法&#xff1a; 第一&#xff1a;用lsblk命令查看 发现还有一些空间不在了。 第二&#xff1a;安装扩容工具&#xff1a; yum inst…

react快速开始(四)-之Vite 还是 (Create React App) CRA? 用Vite创建项目

文章目录 react快速开始(四)-之Vite 还是 (Create React App) CRA? 用Vite创建项目背景Vite 和 (Create React App) CRAVite&#xff1f;Vite 是否支持 TypeScript&#xff1f; 用Vite创建react项目参考 react快速开始(四)-之Vite 还是 (Create React App) CRA? 用Vite创建项…

SpringBoot3依赖管理,自动配置

文章目录 1. 项目新建2. 相关pom依赖3. 依赖管理机制导入 starter 所有相关依赖都会导入进来为什么版本号都不用写&#xff1f;如何自定义版本号第三方的jar包 4. 自动配置机制5. 核心注解 1. 项目新建 直接建Maven项目通过官方提供的Spring Initializr项目创建 2. 相关pom依…

什么是电风扇行情?

“电风扇行情” 是一个金融术语&#xff0c;用于描述证券市场中价格上下波动频繁、幅度较大&#xff0c;但总体趋势不明显的市场状况。   其名称来源于电风扇的扇叶在旋转时&#xff0c;风向不断变化的特征&#xff0c;形象地比喻了市场价格频繁变动但没有明确方向的情景。 …

桥田磁力换模系统|实现模具的自动化快速切换

作为橡塑材料包装及模具专业展会, 历时3天的广州橡塑展在广交会展中心圆满落幕。本次展会桥田智能携桥田快换盘、桥田工业连接器、桥田抓取系统以及新产品桥田MMC磁力换模系统四大产品系列亮相。同时利用动态演示、静态展示以及协作机器人互动等方式&#xff0c;多角度展示了桥…