题目链接:点击打开链接
找规律题,当n>4时,最优的分法是使1个人先和其他n-1个人中任意1个打电话,再让这n-1个人之间互相传递信息,最后再让这n-1个人中任意一个人将这些信息传回第一个人,这样每加入一个人相当于需要多打两次电话,公式是(n-4)*2+4
因为公式不满足样例所以开始没看出来。。。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int n;
while(cin>>n,n){
if(n==1)cout<<0<<endl;
else if(n==2) cout<<5<<endl;
else if(n==3) cout<<15<<endl;
else if(n==4) cout<<20<<endl;
else cout<<n*10-20<<endl;
}
return 0;
}
本文探讨了在信息传递过程中,如何通过电话网络最优化地将消息从一个人传递到n个人的方法。对于n大于4的情况,提出了一个有效的策略,即首先让一人与另一人通话,然后在这组人内部传递信息,最后将信息返回初始者。文中还提供了一段C++代码实现。
373

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



