首页 > 其他分享 >Codeforces Round 922 (Div. 2) 赛后总结

Codeforces Round 922 (Div. 2) 赛后总结

时间:2024-02-01 21:23:53浏览次数:31  
标签:200005 int Codeforces cc && 922 排序 Round

  • 自豪的是D题做出来了,悲哀的是B题没能做出来
  • C题的绝对值最小
  • D题,DP存不下状态就把状态放进所求值中
  • 比赛快结束的时候,我想,这个B题,它但凡需要我通过归并排序或者树状数组求逆序对,不比C题进制转化要难?于是我就猜了一个结论
  • 结论是对的,但不幸的是,我编程实现的时候出错了
  • 考虑怎样证明这个结论,发现此时任意操作都不会使结果更优
  • 本质上是以“排序”为贪心策略
  • 实现的时候可以将两个数组捆绑起来一起排序
  • 要相信、也可以相信,自己是对的呀……
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int a[200005],b[200005],r[200005]; 
int read1()
{
	char cc=getchar();
	while(!(cc>=48&&cc<=57))
	{
		if(cc=='-')
		{
			break;
		}
		cc=getchar();
	}
	bool f=false;
	int s=0;
	if(cc=='-')
	{
		f=true;
	}
	else
	{
		s=cc-48;
	}
	while(1)
	{
		cc=getchar();
		if(cc>=48&&cc<=57)
		{
			s=s*10+cc-48;
		}
		else
		{
			break;
		}
	}
	if(f==true)
	{
		s=-s;
	}
	return s;
}
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int n=read1();
		for(int i=1;i<=n;i++)
		{
			a[i]=read1();
		}
		for(int i=1;i<=n;i++)
		{
			b[i]=read1();
			r[b[i]]=i;
		}
		for(int i=1;i<=n;i++)
		{
			if(b[i]!=i)
			{
				r[b[i]]=r[i];
				swap(a[i],a[r[i]]);
				swap(b[i],b[r[i]]);
			}
		}
		for(int i=1;i<n;i++)
		{
			printf("%d ",a[i]);
		}
		printf("%d\n",a[n]);
		for(int i=1;i<n;i++)
		{
			printf("%d ",b[i]);
		}
		printf("%d\n",b[n]);
	}
	return 0;
}

标签:200005,int,Codeforces,cc,&&,922,排序,Round
From: https://www.cnblogs.com/watersail/p/18002149

相关文章

  • Codeforces Round 770 (Div. 2)(数学异或奇偶性)
    B.FortuneTelling拿到题目看数据范围之后就知道暴力显然是来不及的。那么只能找性质。\(考虑x和x+3的不同\quad奇偶性不同\)\(然后考虑两种操作对于一个数的奇偶性的影响\)\(加法:同奇偶则运算结果是偶,不同则运算结果为奇\)\(异或:惊奇的发现异或也是这样的\)这样我们就......
  • Codeforces Round 922 (Div. 2)
    基本情况A题当时做完提交一直编译错误后面发现是语言选择错误,浪费了五六分钟,然后去做B没想到去看C看了样例感觉可以做,结果干了好久都没出来,倒回去看B还是没做出来,感觉全程很紧张不知道为什么,脚一直在抖。A.BrickWall没啥好说的,就是全部放竖直的,实在不能放了再放横的而且把横......
  • Blazor里,如何在 razor 页面使用 BackgroundService 实例
    Blazor使用BackgroundService需要注册builder.Services.AddHostedService<PageStateService>();razor页面要使用 PageStateService的实例,需要 PageStateService有接口,我们给PageStateService写一个接口 IPageStateService然后在页面直接注入实例@injectIPageSt......
  • Codeforces Round 921 (Div. 1)
    Preface被折纸狠狠地腐乳了,但好在手速够快光速写完前两题成功把Ohara_Rinne这个号也打上橙了之后就不开其它小号打了,也差不多该尝试去向上挑战了,不然一直呆在舒适圈内也没啥提升的说A.DidWeGetEverythingCovered?直接把序列自动机建出来,不妨设状态\((x,y)\)表示构造了长......
  • Codeforces Round 922 (Div. 2)
    CodeforcesRound922(Div.2)比赛链接A.BrickWall思路简单的模拟,要想实现最高的稳定性,就横着放就可以了,因为长度必须大于等于2,所以最后即使不能被2整除,也可以算在里面Code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){ intn,......
  • Codeforces Round 922 (Div.2)
    题目链接点这里CF1918ABrickWallvoidsolve(){lln,m;cin>>n>>m;cout<<n*(m/2)<<endl;}CF1918BMinimizeInversions注意到,当其中一个排列有序时,总的逆序对数量最少()今天找个时间补上证明对于任意一对\(i,j\)位置,其可能的逆序对总......
  • Codeforces Round 922 (Div. 2) A-C
    这次还好,虽然还是不够满意,因为D题没写出来。。A一个明显的贪心,都竖着放就好了#include<bits/stdc++.h>#definelllonglongusingnamespacestd;inlineintread(){ charc=getchar();inta=0,b=1; for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1; for(;c......
  • Codeforces Round 922 (A-C)
    第一次打Div2,对我来说还是很难,写篇博客记录一下~A题题意:T组输入,每组输入一个n,m,代表nm大小的地板,以1k大小的地砖完全覆盖地板(k>=2,且同一地板中k可以不同)。将水平放置的地砖与垂直放置的地砖相减的值定义为稳定性,求最大的稳定性是多少。思路:尽可能的使得水平放置的地砖多,垂......
  • [LMXOI Round 1] Size
    \(\sumd_i<=5*10^7\)一定是解题的突破口;可是,该怎么利用这个条件呢?不妨更进一步——考虑数据的特征,发现数字的种类是有限的点击查看代码#include<bits/stdc++.h>usingnamespacestd;intd[2000005],r[2000005];map<int,longlong>q;intread1(){ charcc=getchar()......
  • 牛客周赛 Round 30
    牛客周赛Round30A代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;voidsolve(){strings;cin>>s;for(inti=0;......