内容发布更新时间 : 2024/12/26 13:12:46星期一 下面是文章的全部内容请认真阅读。
[编程题] 小易的升级之路
小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
输入描述:
对于每组数据,第一行是两个整数n(1≤n<100000)表示怪物的数量和a表示小易的初始能力值. 第二行n个整数,b1,b2...bn(1≤bi≤n)表示每个怪物的防御力 输出描述:
对于每组数据,输出一行.每行仅包含一个整数,表示小易的最终能力值
输入例子:
3 50 50 105 200 5 20 30 20 15 40 100
输出例子:
110 205 #include #include #include #include #include #include #include #include using namespace std; /* int gcd(int m,int n) { return n == 0 ? m : gcd(n,m%n); }*/ int gcd(int a,int b) { if(!b) return a; return gcd(b,a%b); } int main() { int n,ack,ans; while(scanf(\ { while(n--) { scanf(\ if(ans>ack) ack+=gcd(ack,ans); else ack+=ans; } printf(\ } return 0; } [编程题] 炮台攻击 兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,并且给出敌人 的坐标. 问:那么敌人受到伤害会是多大? 输入描述: 第一行9个整数,R,x1,y1,x2,y2,x3,y3,x0,y0.R代表炮台攻击的最大距离,(x1,y1),(x2,y2), (x3,y3)代表三个炮台的坐标.(x0,y0)代表敌人的坐标. 输出描述: 输出一行,这一行代表敌人承受的最大伤害,(如果每个炮台都不能攻击到敌人,输出0×) 输入例子: 1 1 1 2 2 3 3 1 2 输出例子: 2x #include #include #include using namespace std; struct Point { int x,y; Point(int x=0,int y=0):x(x),y(y){}//构造函数,方便代码编写 Point(Point &a):x(a.x),y(a.y){} }; inline int Distance(Point A,Point B) { return (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y); } int main() { int R; Point A,B,C,P; while(scanf(\&P.x,&P.y)!=EOF) { int sum=0;