首页 > 其他分享 >Educational Codeforces Round 158 (Rated for Div. 2)

Educational Codeforces Round 158 (Rated for Div. 2)

时间:2023-11-25 15:56:08浏览次数:29  
标签:Educational Rated 题意 int 158 void mi ans mx

A. Line Trip

题意是:有n个加油点,人要来回两趟,问你最少要多少油?

using namespace std;
int a[100];
void solve(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i];
	int ans=a[1];
	for(int i=2;i<=n;i++){
		ans=max(ans,a[i]-a[i-1]);
	}
	ans=max(ans,2*(m-a[n]));
    cout<<ans<<"\n";
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

B. Chip and Ribbon

题意是:从点一出发,按顺序对每个位置+1,或者你可以跳跃,目的是让每个位置的值等于给的值,问你最少要跳跃多少次?

#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
void solve(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		if(a[i]>a[i-1]){
			ans+=a[i]-a[i-1];
		}
	}
	cout<<ans-1<<"\n"; 
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

C. Add, Divide and Floor

题意是:每次操作是选一个x,然后对每个数组中的每个数加上x然后除以2,问你最少要进行多少次操作,时数组中的数相等,如果操作数小于等于数组长度,打印出每次操作的x

思路:猜想是,要是数组的所有数相等,那么是最大的和最小的相等,中间的一定相等,而且加上的x的大小其实并不影响操作数的大小,所以这里x只取1,0。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N];
void solve(){
	int n;
	cin>>n;
	int mx=0;
	int mi=1e9;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		mx=max(mx,a[i]);
		mi=min(mi,a[i]);
	}
	vector<int>ans;
	while(mi!=mx){
		if(mi%2==mx%2){
			ans.push_back(0);
		}else if(mx%2==0){
			ans.push_back(1);
			mx++;
			mi++;
		}else{
			ans.push_back(0);
		}
		mi/=2;
		mx/=2;
	}
	cout<<ans.size()<<"\n";
	if(ans.size()==0)return;
	if(ans.size()<=n){
		for(auto c:ans){
			cout<<c<<" ";
		}
	}
    cout<<"\n";
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

标签:Educational,Rated,题意,int,158,void,mi,ans,mx
From: https://www.cnblogs.com/yufan1102/p/17855595.html

相关文章

  • Educational Codeforces Round 146 补题(A~C)
    EducationalCodeforcesRound146(RatedforDiv.2)A.Coins题目大意给你两个整数n和k,问你是否存在两个非负整数x和y,使得2⋅x+k⋅y=n成立思路裴蜀定理秒了,记得开longlongac代码#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;consti64in......
  • Educational Codeforces Round 158 (Rated for Div. 2) A-C
    A大致题意:有一条长度为x的直线公路,最开始你位于0号点并且此时你的油箱装满了油,公路有n个加油站,当你经过加油站的时候你可以在加油站加满油,每走一个单位需要花费1升油量,起始位置和终点没有加油站,请问你的油箱容量至少为多少升才可以够你跑一个来回。解题思路:我们的路径大致是......
  • 「杂题乱刷」CF1585B
    原题链接CF1585BArrayEversion题目简述现在有一个长度为\(n\)的序列\(a\),每次操作将\(a\)中不大于序列\(a\)中最后一个数的元素按照在\(a\)序列中的顺序放入\(b\)序列中,大于序列\(a\)中最后一个数的元素同样按照在\(a\)中的顺序放入\(c\)序列中,然后再将\(c......
  • CSE 158/258 设计与实现
    任务定于11月20日星期一完成,但请确保将解决方案上传到排行榜有规律地您应该提交两个文件:writeup.txt对每个任务的解决方案进行简要的纯文本描述;请在提交截止日期提前;这只是为了帮助我们遵循您的代码,不需要待详细说明。assignment1.py包含解决方案的工作代码的python文件。自动标......
  • Educational Codeforces Round 99 (Rated for Div. 2)
    https://codeforces.com/contest/1455很久没有vp了,感觉思维又僵化了A题直接看样例,直接猜是长度。B题首先如果是\(x=\frac{n(n+1)}{2}\),那么就是n否则如果\(x=\frac{n(n+1)}{2}+y\),分成两类y=n,ans=n+2,y<n,我们总可以找到前面一个替换,然后恰好的到n,选取z=n-y即可C题感觉比B......
  • Educational Codeforces Round 156 (Rated for Div. 2) ABCD
    EducationalCodeforcesRound156(RatedforDiv.2)ABCDA.SumofThree题意:给定正整数\(n\),判断是否存在正整数\(a\),\(b\),\(c\)满足:\(a+b+c=n\)。\(a\),\(b\),\(c\)均不是\(3\)的倍数。如存在,输出YES并构造一组方案,否则输出NO。思路:法一:我们分类讨论。根据......
  • Educational Codeforces Round 13 E
    tilian最开始看错了以为是可以任意选择两人or选择一人胜出但题意是可以选择下一个擂主是谁考虑dp的话我们显然需要记录一个state以及当前擂主是谁转移就是dp[state][i]=max(dp[state][i],dp[state(1<<j)][j]*a[i][j]+dp[state(1<<i)]*a[j][i])意义是我们枚举他后一个交......
  • Educational Codeforces Round 157 D
    tilian不太会这种题发现找到一个数就能确定整个序列然后转而发现前缀异或和b1^b2=a1b1^b3=a2...我们发现要是n为偶数时能直接求出b1从而确定整个序列而为奇数时我们无法确定b1我们思考拆位之后如果b1该位为0算出真实的异或后的01个数b1该位为1算出真实的......
  • Educational Codeforces Round 126 (Rated for Div. 2)
    https://codeforces.com/contest/1661/B题数据很小,直接bfs预处理就行C题随便猜了一下,设mx=\(max\{a_i\}\)最后的值应该是mx,mx+1,mx+2,mx+3之类的吧D题刚开始从前面考虑,陷入僵局,一度非常的困,学习凯库勒睡了一会,就突然想到了,前面不行,就从后面考虑,可以发现,从后面考虑的话,就非常......
  • [CF1588F] Jumping Through the Array
    不妨认为\(n,q\)同阶。考虑根号重构。如果没有第3种操作的话,我们每\(\mathcalO(\sqrtn)\)操作整体更新一次,每个询问只需要考虑块内的修改所在置换环上有多少\([l,r]\)内的数。这个是容易\(\mathcalO(n\sqrtn)\)做的。然后考虑置换环会变怎么办。注意到一个块内真......