首页 > 其他分享 >Codeforces Round 891 (div.3) D题解析

Codeforces Round 891 (div.3) D题解析

时间:2024-08-04 21:38:48浏览次数:16  
标签:891 int Codeforces long au av div.3 Round

CodeForces Round 898 (div 4)

D题.Strong Vertices

大致思路

  • 对于题目的给的式子,au-av>=bu-bv,我们可以通过移项得到au-bu>=av-bv,这样就能够构造出来一个ai-bi的项出来
  • 对于构造出来的项,我们可以遍历一遍用数组把每一个项存起来,找到值最大的项,值最大的项所对应的下标就是强顶点

完整代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N =2e5+10;
int a[N];
int b[N];
int n;
void solve()
{
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)cin>>b[i];
	vector<int>ans(n);//存储每一项
	int j=0;
	for(int i=1;i<=n;i++)
	{
		int target=a[i]-b[i];
		ans[j++]=target;
	}
	sort(ans.begin(),ans.end());//排序方便找到最大值
	set<int>res;//存强顶点的下标
	int cnt=0;
	for(int i=1;i<=n;i++)//因为要从小到到输出就顺序遍历
	{
		int target=a[i]-b[i];
		if(target==ans[n-1])
		{
			cnt++;
			res.insert(i);//找到强顶点并把下标存进去
		}
	}
	cout<<cnt<<endl;
	for(auto x:res)cout<<x<<" ";
	cout<<endl;
}

signed main()
{

    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
      solve();
    }
    return 0;
}

 

 

标签:891,int,Codeforces,long,au,av,div.3,Round
From: https://www.cnblogs.com/era768/p/18342239

相关文章

  • Educational Codeforces Round 168 (Rated for Div. 2)-7.30复盘
    A.StrongPassword简单题,找到相同的两个相邻字母之间插一个跟他们不同的大写字母即可inlinevoidsolve(){ cin>>s; intid=0; charhh=''; for(inti=1;i<s.size();i++){ if(s[i-1]==s[i]){ id=i;break; } } for(inti=0;i<26;i++){ if(s[id]!='a'+i&a......
  • Educational Codeforces Round 168 (Rated for Div. 2)
    题目链接:EducationalCodeforcesRound168(RatedforDiv.2)总结:题目较简单,但是发挥很一般。A,B题一直读假题,卡了半个小时;C题用char存int,难绷了。A.StrongPasswordtag:模拟voidsolve(){strings;cin>>s;for(inti=1;i<s.size();i++){......
  • Codeforces Round 891 (Div. 3)
    比赛链接完成度:4/7这场比赛相对于上次那场909div3,题目描述清楚许多(可能是出简单了)。首先是B题,一道模拟四舍五入的题目题目B这题就是简单模拟,我们需要读入一个数字字符串,把他输入到一个数组当中,然后从低位到高位找大于等于5的数,如果找到了,那么之前的数包括这个数都变成0,下一......
  • CodeForces-808#D 题解
    思路分析分析样例1:3132原数组被分成1和32两部分,将2移到左边即可。我们设左边部分的和为\(s1\),右边为\(s2\),可以发现对于任何分割方式,只有满足\(s1\pmx=s2\mpx\)才可以继续讨论答案是否成立。推论1:由于\(x\ina\)(\(a\)为题目所给数列),因此\(|\s1-s2......
  • Codeforces Round 909 (Div. 3)--题目描述无法名状
    好吧,可能是我的文字功底太弱了,首先滴就是这个B题题目链接我一开始还以为这个能排序,就是算排完序之后的最大差,但是仔细一看题目,好像不要求使用排序,于是就尝试暴力做法。我发现的暴力做法是枚举k,直到k==n/2为止,当时是因为没有开longlong导致WA了,后面发现时间不是怎么多就没有......
  • Codeforces Round 962 (Div. 3)
    Abstract第一次打CF的比赛~~~~A.LegsIdea签到题,没什么好说的。Code#include<bits/stdc++.h>usingnamespacestd;intmain(){intt;scanf("%d",&t);while(t--){intn;scanf("%d",&n);int......
  • Educational Codeforces Round 168 (Rated for Div. 2)A——D题解
    EducationalCodeforcesRound168(RatedforDiv.2)A——D题解A.StrongPassword题意:给一个小写字符串密码,添加一个小写字母,使得密码更加复杂。题解:有相同的相邻的字母,再其中间添加不同的字母;如果没有相同的相邻的字母,则最后添加一个字母。#include<bits/stdc++.h>......
  • Codeforces Round 903 (Div. 3)(A~F)
    目录A.Don'tTrytoCountB.ThreeThreadletsC.PerfectSquareD.DivideandEqualizeE.BlockSequenceF.MinimumMaximumDistanceA.Don'tTrytoCountProblem-A-Codeforces因为字符串的长度很小,我们可以暴力求解,每次操作都可以使字符串s的长度倍增......
  • CodeForces 1619D New Year's Problem
    题目链接:CodeForces1619D【NewYear'sProblem】思路    可以因为最多只能逛n-1个商店,当n-1大于等于m的时候,所有朋友都能取最大值,否则至少有两个人要选择相同的商店,所以依次枚举两个人选择同一个商店,其他人选择喜悦值最大的商店。代码#include<cstddef>#incl......
  • Educational Codeforces Round 168 (Rated for Div. 2) 赛后总结
    比赛链接赛时提交情况:CF1997A.StrongPassword赛时思路首先看到题目可以想到的是,我们要加入的这个字符不能与其相邻字符相同,所以我没有多想就写出了第一份代码:if(s[0]=='a')cout<<'b';elsecout<<'a';cout<<s<<endl;交上之后喜提WA1。于是冷静了一会儿仔细观察了一......