社区讨论
性感弱鸡在线求救
P1031[NOIP 2002 提高组] 均分纸牌参与者 9已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @mi7xnz09
- 此快照首次捕获于
- 2025/11/21 05:18 4 个月前
- 此快照最后确认于
- 2025/11/21 05:18 4 个月前
CPP
#include<iostream>
using namespace std;
int n=0,total=0,b=0,i=1,k=1,c=0,d=0,e=0,m=0;
int main()
{
cin>>n;
k=n;
int a[n+1];
for(int j=1;j<=n;j++)
{
cin>>a[j];
m=m+a[j];
}
m=m/n;
do
{
if(a[i]==m)
i++;
else
{
if(a[i]>m)
{
if(a[i]-m==b)
{
b=0;
total=total+c;
c=0;
}
if(a[i]-m>b)
{
total=total+c;
c=0;
a[i]=a[i]-b;
b=0;
a[i+1]=a[i+1]+a[i]-m;
total++;
}
if(a[i]-m<b)
{
total++;
a[i+1]=a[i]+a[i+1]-m;
c++;
}
}
if(a[i]<m)
{
b=m-a[i];
c++;
}
i++;
}
if(a[k]==m)
k--;
else
{
if(a[k]>m)
{
if(a[k]-m==d)
{
d=0;
total=total+e;
e=0;
}
if(a[k]-m>d)
{
a[k]=a[k]-d;
d=0;
total=total+e;
e=0;
a[k-1]=a[k-1]+a[k]-m;
total++;
for(int l=n;l<=k;n--)
a[l]=m;
}
if(a[k]-m<d)
{
total++;
a[k-1]=a[k-1]+a[k]-m;
e++;
}
}
if(a[k]<m)
{
d=m-a[k];
e++;
}
k--;
}
}while(k-i==0||k-i==1);
i--;
do
{
if(a[i]==m)
i++;
else
{
if(a[i]>m)
{
if(a[i]-m==b)
{
b=0;
total=total+c;
c=0;
}
if(a[i]-m>b)
{
total=total+c;
c=0;
a[i]=a[i]-b;
b=0;
a[i+1]=a[i+1]+a[i]-m;
total++;
}
if(a[i]-m<b)
{
total++;
a[i+1]=a[i]+a[i+1]-m;
c++;
}
}
if(a[i]<m)
{
b=m-a[i];
c++;
}
i++;
}
}while(i==n);
cout<<total;
return 0;
}
那啥,弱鸡我用了一种特别的方法,然后超时了,求大佬指教
回复
共 10 条回复,欢迎继续交流。
正在加载回复...