Codeforces Round #767 (Div. 2)

Codeforces Round #767 (Div. 2),第1张

Codeforces Round #767 (Div. 2) Codeforces Round #767 (Div. 2)

(solve AB 至此一周六场div.2 赛时一道C题也没有做出来 QAQ!!!)

比赛链接: https://codeforces.com/contest/1629

C题 题目大意

给出一个数组,将数组任意分段,各段的MEX组成一个新串,问字典序最大的新串

题解

统计各数出现的次数存放在cnt数组,可以从cnt数组确定当前的最大mex,然后将原数组指针移动到满足此mex的位置,重复直到原数组指针移出

#include 
//#define int long long
using namespace std;
void solve();
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("in.txt","r",stdin);
	
	int t;cin>>t;
	while(t--)solve();
	#define _ 0
	return ~~(0^_^0);
}
void solve(){
	int n;cin>>n;
	vector a(n);
	vector cnt(n+1);
	for(int i=0;i>a[i];
		cnt[a[i]]++;
	}
	vector res;
	int i=0;
	while(i tmp(mex);
		int _mex=0;
		while(i 
D题 
题目大意 

给出长度为n的字符串数组(各字符串长度<=3),问是否有子序列构成回文串

题解

可以先判断各字符串本身是否回文串 和 是否存在完全和自己相反的串

剩下的情况就只有长度为 2+3 和 3+2的串

2+3 可以将2后面拼上所有字符放入set

3+2可以将2前面拼上所有字符进行判断

(做题时犯了一个错误是将长度为3的串的前两个字符组成的字串放入了set,这样会导致本来是"abX" "Xba"形式的两个串匹配成回文串 具体地,它们可能是 abc dbc,但是被判断成了回文串)

#include 
//#define int long long
using namespace std;
void solve();
string _reverse(string s);
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("in.txt","r",stdin);
	
	int t;cin>>t;
	while(t--)solve();
	#define _ 0
	return ~~(0^_^0);
}
void solve(){
	int n;cin>>n;
	vector a(n);
	for(int i=0;i>a[i];
	set st;
	int yes=0;
	for(int i=0;i					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5713434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存