4047 魔方系列——相同高度
此题相当于求最少移动块数,
#include<stdio.h>
int main()
{
int n,i;
int sum,avg,num;
int a[550];
while(~scanf("%d",&n),n)
{
sum=0,avg=0,num=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
if(sum%n) puts("Impossible");
else
{
avg=sum/n;
for(i=0;i<n;i++)
if(a[i]>avg) num+=a[i]-avg;
printf("%d\n",

本次竞赛中有一道题目要求解决最少移动块数的问题,具体策略为设置记忆状态并使用变量进行标记来优化解决方案。
最低0.47元/天 解锁文章
1477

被折叠的 条评论
为什么被折叠?



