社区讨论

关于春测T4被随机化乱杀

灌水区参与者 11已保存回复 36

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
36 条
当前快照
1 份
快照标识符
@lo30nrc1
此快照首次捕获于
2023/10/23 22:52
2 年前
此快照最后确认于
2023/10/23 22:52
2 年前
查看原帖
机房的人 @Mr学霸君 春测T4随机化random_shuffle180次乱杀,我几乎都快羡慕得疯了,倒在床上蒙住被子就开始抱着枕头尖叫流泪,嘴里一边喊着卧槽卧槽一边又忍我边发边哭,打字的手都是抖的,后来我的手抖得越来越厉害,从心头涌起的思想、情怀和梦想,这份歆羡和悔恨交织在一起,我的笑还挂在脸上,可是眼泪一下子就掉下来了。求你了别发了,我生活再难再穷我都不会觉得难过,只有发生这种事的时候,我的心里像被刀割一样的痛,打着字泪水就忍不住的往下流。从早上7点起床学到现在,憧憬着拿一等的幸福生活,憧憬着美好阳光的未来。我打开了电脑,看到随机化乱杀,我感到了深深的差距,我直接跳进了家门口的井里,后槽牙直呼这把高端局!!!!
CPP
#include<bits/stdc++.h>
using namespace std;
int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return f*x;}
char st[30];
void write(int x){int tot=0;if(x<0)putchar('-'),x=-x;do st[tot++]=x%10+'0',x/=10;while(x);while(tot)putchar(st[--tot]);}
int t,n,k,l[5],r[5],*a[50005];
mt19937 g;
int main()
{
	freopen("lock.in","r",stdin);
	freopen("lock.out","w",stdout);
	t=read();
	k=read();
	for(int*&i:a)
	i=new int[k];
	while(t--)
	{
		n=read();
		for(int i=0;i<k;i++)
		for(int j=0;j<n;j++)
		a[j][i]=read();
		int res=INT_MAX;
		for(int m=0;m<180;m++)
		{
			shuffle(a,a+n,g);
			for(int i=0;i<k;i++)
			l[i]=r[i]=a[0][i];
			for(int i=1;i<n;i++)
			{
				int p=0,ans=INT_MAX;
				for(int j=0;j<k;j++)
				{
					int sum=0;
					for(int x=0;x<k;x++)
					sum=max(sum,max(a[i][(x+j)%k]-l[x],r[x]-a[i][(x+j)%k]));
					if(sum<ans)
					p=j,ans=sum;
				}
				for(int j=0;j<k;j++)
				l[j]=min(l[j],a[i][(j+p)%k]),r[j]=max(r[j],a[i][(j+p)%k]);
				if(ans>=res)
				break;
			}
			int ans=0;
			for(int i=0;i<k;i++)
			ans=max(ans,r[i]-l[i]);
			res=min(ans,res);
		}
		write(res);
		putchar('\n');
	}
	return 0;
}

回复

36 条回复,欢迎继续交流。

正在加载回复...