社区讨论
关于春测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 条回复,欢迎继续交流。
正在加载回复...