2022/10/30(cf·div2#831)

博客分享了Codeforces竞赛中三道题目的解题思路。对于输入质数的题目,输出本身即可;第二题将最高边当高、最短边当长来计算周长;第三题以b[i]为折返点,三者相互制约,解题不能主观臆断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://codeforces.com/contest/1740/problem/A
//其实不用考虑很多,它只输入质数,所以,输出它本身就好,2n肯定不是质数

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define P pair<int,int>
#define ft first
#define sd second
const int N=2e5+5;
int b[N];

signed main()
{
	int tt;
	for(cin>>tt;tt--;)
	{
		int n;
		cin>>n;
		if(n>=2)
		cout<<n<<'\n';
		else cout<<9<<'\n';
	}
}

https://codeforces.com/contest/1740/problem/B
//唔,刚开始理解错题意了
//我的方法是,最高的边全部都当成高,最短的边全部当成长
//最长的必算入答案,把它当高,其他的长边都内含于它,减少多次计算。
//周长是:(长+高)*2;

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define P pair<int,int>
#define ft first
#define sd second
const int N=2e5+5;
int b[N];
P p[N];

signed main()
{
	int tt;
	for(cin>>tt;tt--;)
	{
		int n;
		cin>>n;
		int h=0,l=0;
		for(int i=0;i<n;i++)
		{
			int a,c;
			cin>>a>>c;
			if(a>h)h=a;
			if(c>h)h=c;
			l+=min(a,c);
		}
		cout<<h+h+l+l<<"\n";
	}
}

https://codeforces.com/contest/1740/problem/C
//把自己一直认为正确的当成答案,是一件痛苦的事,不过,正确的事需要证明,不能主观臆断
//赛后朋友教的,第二天才理解透
//有点> <的形状
//>:(从b[0]走到b[i],又走到b[i-1])_
//<:(从b[n-1]走到b[i],又走到b[i+1])
//在我这里,b[i]是折返点
// 三者相互制约

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define P pair<int,int>
#define ft first
#define sd second
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define T int tt;for(cin>>tt;tt--;)
const int N=2e5+5;
int b[N];
P p[N];

signed main()
{
	T
	{
		int n;
		cin>>n;
		for(int i=0;i<n;i++)
		{
			cin>>b[i];
		}
		sort(b,b+n);
		int ans=0;
		for(int i=2;i<n;i++)
			ans=max(ans,b[i]-b[0]+b[i]-b[i-1]);
		for(int i=0;i<n-1;i++)
			ans=max(ans,b[n-1]-b[i]+b[i+1]-b[i]);
		cout<<ans<<'\n';
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值