《ACM程序设计》书中题目 K

本文介绍了一个编程问题解决方案,旨在帮助名为鲍勃的角色通过最少的砖块移动来平衡不同高度的砖墙堆栈。文章详细阐述了解题思路,并分享了编程过程中遇到的错误及解决方法。
题目简要:
   小鲍勃喜欢和他的盒砖一起玩。他把砖块放在另一块砖上,构建不同高度的堆叠。“看,我已经修了一堵墙!”,他告诉他的姐姐爱丽丝。“”不,你应该使所有的堆栈都相同的高度。然后你会有一个真正的墙。“她反驳。经过一点考虑,鲍勃看到她是对的。所以他开始一个一个地重新排列砖块,使所有的堆栈之后是相同的高度。但是因为鲍勃是懒惰的,他想用最少的砖块移动这样做。你能帮我吗?
输入
输入由多个数据集组成。每个集合以包含Bob已经构建的堆栈的数目n的行开始。下一行包含n个数字,n个堆栈的高度hi。您可以假设1 <= n <= 50和1 <= hi <= 100。
砖的总数将被堆叠的数量整除。因此,总是可以重新布置砖,使得所有堆叠具有相同的高度。
输入由以n = 0开始的集合终止。不应处理此集合。
输出
对于每个集合,首先打印集合的编号,如示例输出中所示。然后打印行“最小移动数为k”,其中k是为了使所有堆栈具有相同高度而必须移动的砖块的最小数量。
在每个集合后输出一个空行。
例如:

Sample Input
6
5 2 4 1 7 5
0

Sample Output
Set #1
The minimum number of moves is 5.
 
解题思路:
 
  看到这道题,既然要找最少移动数,就只要把大于平均数的数,给小于平均数的数匀几个。所以只要求出大于平均数的数减去平均数的和就能求出最小移动数。
思路不难,写程序也不难。
  然而,在写的过程中,我还是出现了疏忽。一开始,写完提交一直wrong answer。我也一直搞不懂为什么,最后,当我输入50,50个2是出现0后,以后在输入无论任何数据,得到的答案都是0,终于发现了问题。几个量的初值应该在while内赋值。改过来后顺利通过。

附代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j=1,a[55],sum,ave,answer;
while(cin>>n&&n!=0)
{
sum=ave=answer=0;
   for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
sum=sum+a[i];
}
ave=sum/n;
for(i=0;i<n;i++)
{
if(a[i]>ave)
{
answer=answer+(a[i]-ave);
}
}
cout<<"Set #"<<j<<endl<<"The minimum number of moves is "<<answer<<'.'<<endl<<endl;
j++;
    }
    return 0;
}

解题感受:
 这道题真折磨人,由于一个赋值位置的问题,一直耗到凌晨1点多才A掉。细节问题在一开始写的时候就一定要注意,不然,后来再改,真的很难看出来···


【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读议:议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值