Codeforces Round #760 (Div. 3)题解(A-G)


比赛链接

Codeforces Round #760 (Div. 3)


A. Polycarp and Sums of Subsequences

题意
有一个由3个正整数组成的数组a。他写出这个数组中所有非空子序列的和,按非降序排序,得到一个包含7个整数的数组b。
即给定一个有7个元素的集合B,问是否存在一个三个数的集合A { a , b , c } {\{a,b,c\}} { a,b,c},满足 { a , b , c , a + b , a + c , b + c , a + b + c } {\{a,b,c,a+b,a+c,b+c,a+b+c\}} { a,b,c,a+b,a+c,b+c,a+b+c}等于集合B。

思路
首先得确定集合A中 a , b , c {a,b,c} a,b,c的值。假定 a < b < c a<b<c a<b<c,将集合B排好序后,则集合B中前两个数一定是 a , b a,b a,b c c c存在于B中第三、四个数。做两次验证即可。

AC代码

#include <bits/stdc++.h>
using namespace std;
 
int a[10];
 
int main(){
   
	int T; cin>>T;
	while(T--){
   
		for(int i=0; i<7; i++) cin>>a[i];
		sort(a, a+7);
		cout<<a[0]<<" "<<a[1]<<" ";
		if(a[0] + a[1] == a[2]) cout<<a[3];
		else cout<<a[2];
		puts("");
	}
}

B. Missing Bigram

题意
Polycarp推出了一款新游戏供您玩。他称之为“丢失的二元图”。
一个单词的双字母表是其中两个相邻字母的序列。
例如,单词“abbaaba”包含双字母“ab”、“bb”、“ba”、“aa”、“ab”和“ba”。
游戏如下。首先,Polycarp提出了一个单词,仅由小写字母“a”和“b”组成。然后,他在白板上按单词出现的顺序写下所有的大字。之后,他从白板上擦去其中一个。
最后,Polycarp邀请您猜测他想出的单词是什么。
你的目标是找到任何一个单词,这样就可以写下它的所有双字图并删除其中一个,这样产生的双字图序列就和Polycarp最后的一个一样。
测试是以答案存在的方式生成的。如果有多个答案,您可以打印其中任何一个。
即给出 n − 2 n-2 n2个相邻字符串,构造长度为 n n n的字符串,这个字符串只包含’a’,‘b’。

思路
对于第i个相邻字符串,如果第i-1的尾与第i个的头的字符相同,那只添加第i个的尾字符到目标字符串。将多的位置全部补’a’。

AC代码

#include <bits/stdc++.h>
using namespace std;
#define ll long long
 
int main(){
   
	int T; cin>>T;
	while(T--){
   
		int n; cin>>n;
		string ans = "";
		for(int i=1; i<=n-2; i++){
   
			string s; cin>>s;
			if(ans[ans.size()-1] == s[0]) ans += s[1];
			else ans += s;
		}
		for(int i=1; i<=n-ans.size(); i++) ans += 'a';
		cout<<ans<<endl;
	}
}

C. Paint the Array

题意
您将得到一个由n个正整数组成的数组a。您必须选择一个正整数d并将所有元素绘制为两种颜色。所有可被d整除的元素将被涂成红色,所有其他元素将被涂成蓝色。
如果数组中没有具有相同颜色的相邻元素对,则称为“美丽”。你的任务是找到任何能产生美丽色彩的d值,或者报告这是不可能的。

思路
想让数组没有相同颜色的相邻元素,只有可能红色的为奇数下标,蓝色的为偶数下标、或者红色的为偶数下标,蓝色的为奇数下标。
先取奇数下标区域的最大公约数t,看偶数下标有没有元素能整除他。偶数下标区域同理。

AC代码

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll a[105];
int n; 
 
ll gcd(ll a, ll b){
   
	return b?gcd(b, a%b):a;
}
 
ll solve(){
   
	ll t = a[1];
	for(int i=3; i<=n; i+=2) t = 
Codeforces Round 894 (Div. 3) 是一个Codeforces举办的比赛,是第894轮的Div. 3级别比赛。它包含了一系列题目,其中包括题目E. Kolya and Movie Theatre。 根据题目描述,E. Kolya and Movie Theatre问题要求我们给定两个字符串,通过三种操作来让字符串a等于字符串b。这三种操作分别为:交换a中相同位置的字符、交换a中对称位置的字符、交换b中对称位置的字符。我们需要先进行一次预处理,替换a中的字符,然后进行上述三种操作,最终得到a等于b的结果。我们需要计算预处理操作的次数。 根据引用的讨论,当且仅当b[i]==b[n-i-1]时,如果a[i]!=a[n-i-1],需要进行一次操作;否则不需要操作。所以我们可以遍历字符串b的前半部分,判断对应位置的字符是否与后半部分对称,并统计需要进行操作的次数。 以上就是Codeforces Round 894 (Div. 3)的简要说明和题目E. Kolya and Movie Theatre的要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Codeforces Round #498 (Div. 3) (A+B+C+D+E+F)](https://blog.csdn.net/qq_46030630/article/details/108804114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Codeforces Round 894 (Div. 3)A~E题解](https://blog.csdn.net/gyeolhada/article/details/132491891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值