栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Codeforces Round #767 (Div. 2)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Codeforces Round #767 (Div. 2)

这里写目录标题

A Download More RAM

题解代码 B GCD Arrays

题目题解

计算奇偶数的办法 代码 C Meximum Array

Mex (mathematics)题意题解

A Download More RAM 题解

有n个软件,最初有k个内存,每个软件运行需要ai的内存,运行完可以获得bi个内存,问最后可以获得多少内存?
通过排序先运行所需内存小的软件以获得内存,即排序。

代码
#include 
#include 
using namespace std;
typedef long long ll;
const int maxn = 111;
struct ab
{
	int a, b;
} arr[maxn];
bool cmp(ab a, ab b){
	return a.a < b.a;
}
int main(){
	int t; cin >> t;
	while(t--){
		int n, k; cin >> n >> k;
		for(int i = 0; i < n; i++) {
			cin >> arr[i].a;
		}
		for(int i = 0; i < n; i++){
			cin >> arr[i].b;
		}
		ll ans = k;
		sort(arr, arr + n, cmp);
		int pos = 0;
		while(arr[pos].a <= ans && pos < n){
			ans += arr[pos].b;
			pos++;
		}
		cout << ans << 'n';
	}
}
B GCD Arrays 题目

给你 l l l到 r r r这一段序列,在经过k次操作后,该段序列的最大公因数(即当前序列中的所有数字求解gcd)能否是大于1的数
操作:
从序列中取两个数字,将他们永久的从序列中删除,并加两者的乘积加入到队列中

题解

计算连续数字奇数的个数,即为可操作的最大个数,举例如下
初始状态 3 , 4 , 5 , 6 , 7 3,4,5,6,7 3,4,5,6,7
第一次操作 3 ∗ 5 , 4 , 6 , 7 3*5,4,6,7 3∗5,4,6,7
第二次操作 3 ∗ 5 ∗ 7 , 4 , 6 3*5*7,4,6 3∗5∗7,4,6
可以发现如上两次操作所得序列的gcd都是1
第三次操作 3 ∗ 5 ∗ 7 ∗ 4 , 6 3*5*7*4,6 3∗5∗7∗4,6
第四次操作 3 ∗ 5 ∗ 7 ∗ 4 ∗ 6 3*5*7*4*6 3∗5∗7∗4∗6
显然从第三次操作起开始序列存在大于1的公因数了
那么解题思路就是所有奇数结合再加一个偶数序列即可得到大于1的公因数了

计算奇偶数的办法
		ll odd  = (r - l + 1) / 2;
		ll even = (r - l + 1) / 2;
		if ((r - l + 1) % 2 == 1 && r % 2 == 1) odd ++;
		else even ++;
代码
#include 
using namespace std;
typedef long long ll;
int main(){
	//freopen("in.txt","r",stdin);
	int t; cin >> t;
	while(t--){
		ll l, r, k;
		cin >> l >> r >> k;

		if (l == r)
		{
			if (l == 1)
				printf("NOn");
			else
				printf("YESn");

			continue;
		}
		ll odd  = (r - l + 1) / 2;
		ll even = (r - l + 1) / 2;
		if ((r - l + 1) % 2 == 1 && r % 2 == 1) odd ++;
		else even ++;
		//3个奇数可以操作三次
		
		//printf("%lldn", odd);
		if (odd <= k){
			printf("YESn");
		}
		else{
			printf("NOn");
		}
	}
}
C Meximum Array Mex (mathematics)

补集的最小值

题意

给你n个非负数字,你可以进行如下操作,每次选择连续的k个数字,求解这k个数字的Mex,然后放到b序列中,问最长长度为m的字典序的b序列里面的元素是什么?
输出数字m和m个元素

题解
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722300.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号