6月2号总结

刷题记录Codeforces Round 925 (A,B,C)

1.A. Recovering a Small String

问题 - A - Codeforces

输入:

5

24

70

3

55

48

输出:

aav

rzz

aaa

czz

auz

给定一个3~78的整数,将这个整数分成a,b,c,其中1表示'a',26表示'z',按照这个规则,得到一个字典序最小的字符串,字符串有这个三个整数转成。

下面是AC代码:

复制代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char kp[]="abcdefghijklmnopqrstuvwxyz";
void solve()
{
	int n;
	cin>>n;
	for(int i=1;i<=26;i++){
		for(int j=1;j<=26;j++){
			int k=n-i-j;
			if(k<=26)
			{
				string s="";
				s+=kp[i-1];
				s+=kp[j-1];
				s+=kp[k-1];
				cout<<s<<"\n";
				return;
			}
		}
	}
}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

2.B. Make Equal

问题 - B - Codeforces

输入:

6

1

43

2

1 3

5

4 5 2 1 3

3

1 2 3

7

4 5 5 0 6 4 4

7

6 5 5 1 3 4 4

输出:

YES

NO

YES

NO

NO

YES

题目要求我们只能将左边的水倒到右边的桶,如果最后不能使得全部桶的水都一样对,则输出NO,反之输出YES,我们只需要求出后缀和,变量判断此时的后缀和是否小于等于变量的元素数*最后的平均数即可,如果出现大于的情况,则最后桶的水不能都一样。

下面是AC代码:

复制代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{
	ll n;
	cin>>n;
	vector<ll>a(n),b(n),q(n);
	ll sum=0;
	for(int i=0;i<n;i++){
		cin>>a[i];
		b[n-1-i]=a[i];
		sum+=a[i];
	}
	ll k=sum/n;
	q[0]=b[0];
	for(int i=1;i<n;i++){
		q[i]=q[i-1]+b[i];
	}
	for(int i=0;i<n;i++){
		if(q[i]>(i+1)*k)
		{
			cout<<"NO\n";
			return;
		}
	}
	cout<<"YES\n";

}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

3.C. Make Equal Again

Problem - C - Codeforces

题目想要将数组的全部数变为一致,通过将i到j的数全部变为k的方法,操作代价为j-i+1。

因为我们需要输出最小代价。

当数组的首元素等于尾元素时,输出(n-前缀最长连续的相同元素-后缀最长连续的相同元素)(可能出现答案为负数的情况,此时输出0)。

反正,输出(n-前缀最长连续的相同元素和后缀最长连续的相同元素的最大值)

下面是AC代码:

复制代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{
	ll n;
	cin>>n;
	vector<ll>a(n);
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	ll i1=0,i2=0;
	while(i1<n&&a[i1]==a[0]){
		i1++;
	}
	while(i2<n&&a[n-i2-1]==a[n-1]){
		i2++;
	}
	if(a[0]!=a[n-1])
	cout<<(n-max(i1,i2))<<"\n";
	else cout<<max((ll)0,(n-i1-i2))<<"\n";
	

}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}
相关推荐
天赐学c语言7 分钟前
12.19 - 买卖股票的最佳时机 && const的作用
c++·算法·leecode
菜鸟233号11 分钟前
力扣78 子集 java实现
java·数据结构·算法·leetcode
yesyesyoucan14 分钟前
在线魔方解谜站:从零入门到精通的智能魔方学习平台
学习·算法
Han.miracle15 分钟前
数据结构与算法--008四数之和 与经典子数组 / 子串问题解析
数据结构·算法
!停16 分钟前
字符函数和字符串函数
算法
AI科技星31 分钟前
圆柱螺旋运动方程的一步步求导与实验数据验证
开发语言·数据结构·经验分享·线性代数·算法·数学建模
FONE_Platform1 小时前
FONE食品饮料行业全面预算解决方案:构建韧性增长
人工智能·算法·全面预算·全面预算管理系统·企业全面预算
月明长歌1 小时前
【码道初阶】【Leetcode94&144&145】二叉树的前中后序遍历(非递归版):显式调用栈的优雅实现
java·数据结构·windows·算法·leetcode·二叉树
DanyHope1 小时前
《LeetCode 49. 字母异位词分组:哈希表 + 排序 全解析》
算法·leetcode·哈希算法·散列表
iAkuya1 小时前
(leetcode) 力扣100 15轮转数组(环状替代)
数据结构·算法·leetcode