20110805组队赛d题
来源:互联网 发布:js pdf在线阅读 编辑:程序博客网 时间:2024/05/21 08:58
Description
外太空又发生战争了.机器人王国决定用N架炮台消灭敌人的供需库,但是无奈每架炮台的威力有限,现在国王得到一个消息:如果在某一时刻N架炮台同时打到敌人的供需库,那么这个供需库就会爆炸.当然炮台的威力不累计.也就是说如果某一时刻有N-1架炮台的大炮同时打到敌人的供需库,下一时刻只有第N架炮台的大炮打到敌人供需库的话,供需库是不会爆炸的.现在国王想知最早能在什么时候炸掉敌人的供库.每台大炮的发射间隔是一定的.所有炮从0时刻同时开始发射.
Input
每组数据两行,第一行输入N,表示炮台的数目,接下来的一行有N个数a_1,a_2...a_n,表示每个炮台的发射间隔,N<=1000.a_i<=2^32
Output
每组数据输出一行,表示敌人的供需库最早被炸毁的时间.数据保证最后结果<=2^63-1
Sample Input
22 331 2 3
Sample Output
66
这是一道求最小公倍数的问题~
大致思想就是先求最大公约数~最小公倍数即为两数之积除以最大公约数~
求最大公约数时~将两数相除~再将余数与除数相除求余数~
循环至余数为0~则最大公约数为最后的除数~
这里大多建议不要使用递归~因为当数据很大时~
多次调用递归函数可能会超时~
还有一点需要注意的是~
最后两数相乘再除以最大公约数求最小公倍数时~
要先除最小公倍数~因为两处若先相乘~很可能会越界~造成WA~
#include"iostream"#include"queue"using namespace std;long long aa(long long a1,long long a2){long long b1,b2;long long c=1;queue<long long>Que;Que.push(a1);Que.push(a2);while(c!=0){b1=Que.front();Que.pop();b2=Que.front();c=b1%b2;Que.push(c);}return b2;}int main(){long long i;queue<long long>bb;long long n;long long temp;long long a1,a2;while(cin >> n){for(i=0;i<n;i++){cin >> temp;if(temp!=0)bb.push(temp);}if(bb.empty())a1=0;else{a1=bb.front();bb.pop();while(!bb.empty()){a2=bb.front();bb.pop();a1=(a1/aa(a1,a2))*a2; //注意要先相除~}}cout <<a1<<endl;}}
- 20110805组队赛d题
- 20110805 组队赛 f题
- 20110805 组队赛b题
- 20110805组队赛c题
- 【组队赛三】-D 优先队列 cf446B
- 组队赛(F/D) UVALive
- NEU 11月组队赛D题 QUERY ON THE TREE
- 天龙八部3d组队玩法详解 怎么组队创建队伍
- SDKD 14级组队练习赛(一) D 数组存储二叉树并递归遍历
- 7 28 组队赛
- 组队赛130827
- 组队赛130926
- 国庆组队赛131002
- 组队_浙江省赛
- CUGBACM_组队赛1
- 组队赛 五
- 4.19新生组队赛
- 一次组队赛总结
- Creating Toast in IntentService
- vs2008 x264-snapshot-20091006-2245编译成功
- 发展路线图
- poj 题目分类
- IOS开发UI篇之──自定义UIActionSheet
- 20110805组队赛d题
- Visual C++获取程序当前路径
- SQL语言的基础操作--(4)
- zoj 1259 Rails
- Java Swing中两种设置背景图(容器图片)
- 对XML Publisher使用的XML数据文件中的element的值的判断
- CDialog 模态对话框 非模态
- Android 2.2完全退出程序, 使用广播机制
- 用eXeScope个性化自己的Win7