[编程题] 小易的升级之路
小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每一个怪物的防御力为b1,b2,b3...bn. 假设遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值添加bi;假设bi大于c,那他也能打败怪物,但他的能力值仅仅能添加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的终于能力值为多少?

输入描写叙述:
  1. 对于每组数据,第一行是两个整数n(1n<100000)表示怪物的数量和a表示小易的初始能力值.
  2. 第二行n个整数,b1,b2...bn(1bin)表示每一个怪物的防御力
输出描写叙述:
  1. 对于每组数据,输出一行.每行仅包括一个整数,表示小易的终于能力值
输入样例:
  1. 3 50
  2. 50 105 200
  3. 5 20
  4. 30 20 15 40 100
输出样例:
  1. 110
  2. 205
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<string>
  4. #include<vector>
  5. #include<list>
  6. #include<deque>
  7. #include<stdio.h>
  8. #include<algorithm>
  9. using namespace std;
  10. /*
  11. int gcd(int m,int n)
  12. {
  13.     return n == 0 ?
  14. m : gcd(n,m%n);
  15. }*/
  16. int gcd(int a,int b)
  17. {
  18.     if(!b) return a;
  19.     return gcd(b,a%b);
  20. }
  21. int main()
  22. {
  23.     int n,ack,ans;
  24.     while(scanf("%d%d",&n,&ack)!=EOF)
  25.     {
  26.         while(n--)
  27.         {
  28.             scanf("%d",&ans);
  29.             if(ans>ack)
  30.                 ack+=gcd(ack,ans);
  31.             else ack+=ans;
  32.         }
  33.         printf("%d\n",ack);
  34.     }
  35. 	return 0;
  36. }
  37.  
  1. [编程题] 炮台攻击
  2. 兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格近期在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,比如(3,0),(0,4)之间的距离是5),假设一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,而且给出敌人 的坐标. 问:那么敌人受到伤害会是多大?
  3. 输入描写叙述:
  4. 第一行9个整数,R,x1,y1,x2,y2,x3,y3,x0,y0.R代表炮台攻击的最大距离,(x1,y1),(x2,y2),
  5. (x3,y3)代表三个炮台的坐标.(x0,y0)代表敌人的坐标.
  6. 输出描写叙述:
  7. 输出一行,这一行代表敌人承受的最大伤害,(假设每一个炮台都不能攻击到敌人,输出0×)
  8. 输入样例:
  9. 1 1 1 2 2 3 3 1 2
  10. 输出样例:
  11. 2x
  12.  
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<math.h>
  4. using namespace std;
  5. struct Point
  6. {
  7.     int x,y;
  8.     Point(int x=0,int y=0):x(x),y(y){}//构造函数,方便代码编写
  9.     Point(Point &a):x(a.x),y(a.y){}
  10. };
  11. inline int Distance(Point A,Point B)
  12. {
  13.     return (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y);
  14. }
  15. int main()
  16. {
  17.     int R;
  18.     Point A,B,C,P;
  19.     while(scanf("%d%d%d%d%d%d%d%d%d",&R,&A.x,&A.y,&B.x,&B.y,&C.x,&C.y,&P.x,&P.y)!=EOF)
  20.     {
  21.         int sum=0;
  22.         R*=R;
  23.         if(Distance(A,P)<=R) sum++;
  24.         if(Distance(B,P)<=R) sum++;
  25.         if(Distance(C,P)<=R) sum++;
  26.         printf("%dx\n",sum);
  27.     }
  28. 	return 0;
  29. }
  30. //1 1 1 2 2 3 3 1 2
  31.  
  1. [编程题] 扫描透镜
  2. N*M的草地上,提莫种了K个蘑菇,蘑菇爆炸的威力极大,兰博不想贸然去闯,并且蘑菇是隐形的.仅仅 有一种叫做扫描透镜的物品能够扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个 扫描透镜能够扫描出(3*3)方格中全部的蘑菇,然后兰博就能够清理掉一些隐形的蘑菇. 问:兰博最多能够清理多少个蘑菇?
  3. 输入描写叙述:
  4. 第一行三个整数:N,M,K,(1N,M20,K100),N,M代表了草地的大小;
  5. 接下来K行,每行两个整数x,y(1xN,1yM).代表(x,y)处提莫种了一个蘑菇.
  6. 一个方格能够种无穷个蘑菇.
  7. 输出描写叙述:
  8. 输出一行,在这一行输出一个整数,代表兰博最多能够清理多少个蘑菇.
  9.  
  10. #include<stdio.h>
  11. #include<string.h>
  12. #include<algorithm>
  13. #include<iostream>
  14. using namespace std;
  15. int m[25][25];
  16. int vis1[25][25];
  17. int vis2[25][25];
  18. int d[9][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,0},{0,1},{1,-1},{1,0},{1,1}};
  19. inline void sum_map(int x,int y)
  20. {
  21.     for(int i=0;i<9;i++)
  22.     {
  23.         if(m[x+d[i][0]][y+d[i][1]]>0) vis1[x][y]++;
  24.         if(m[x+d[i][0]][y+d[i][1]]>1) vis2[x][y]++;
  25.     }
  26. }
  27. inline int sd_sum(int x,int y,int i,int j)
  28. {
  29.     if(x==i&&y==j) return vis2[i][j];
  30.     else if(i>=x-2&&i<=x+2&&j>=y-2&&j<=y+2)
  31.     {
  32.         int tmp=0;
  33.         for(int k=0;k<9;k++)
  34.         {
  35.             int xi=i+d[k][0];
  36.             int yi=j+d[k][1];
  37.             if(xi>=x-1&&xi<=x+1&&yi>=y-1&&yi<=y+1)
  38.             {
  39.                 if(m[xi][yi]>1) tmp++;
  40.             }
  41.             else
  42.             {
  43.                 if(m[xi][yi]>0) tmp++;
  44.             }
  45.         }           //control may reach end of non-void function [-Werror,-Wreturn-type]
  46.         return tmp;//得知原因是自定义了一个有返回值的函数,而函数结尾却没有返回值;
  47.     }
  48.     else return vis1[i][j];
  49. }
  50. int main()
  51. {
  52.     int N,M,K;
  53.     while(scanf("%d%d%d",&N,&M,&K)!=EOF)
  54.     {
  55.         int x,y;
  56.         memset(m,0,sizeof(m));
  57.         memset(vis1,0,sizeof(vis1));
  58.         memset(vis2,0,sizeof(vis2));
  59.         for(int i=0;i<K;i++)
  60.         {
  61.             scanf("%d%d",&x,&y);
  62.             m[x][y]++;
  63.         }
  64.         for(int i=1;i<=N;i++)//打表
  65.         {
  66.             for(int j=1;j<=M;j++)
  67.             {
  68.                 sum_map(i,j);
  69.             }
  70.         }
  71.         int mmax=0;
  72.         for(int i=0;i<=N;i++)
  73.         {
  74.             for(int j=0;j<=M;j++)
  75.             {
  76.                 for(int ii=0;ii<=N;ii++)
  77.                 {
  78.                     for(int jj=0;jj<=M;jj++)
  79.                     {
  80.                         mmax=max(vis1[i][j]+sd_sum(i,j,ii,jj),mmax);
  81.                     }
  82.                 }
  83.             }
  84.         }
  85.         printf("%d\n",mmax);
  86.     }
  87. 	return 0;
  88. }

网易2016研发project师编程题的更多相关文章

  1. 网易2016研发project师笔试题

    网易2016研发project师笔试题 2015/12/9 11:25(网上收集整理的,參考答案在后面,若有错误请大神指出) 1. 运行指令find / -name "test.c" ...

  2. 网易2016年研发project师编程题(2)

    序 网易互联网的实习笔试立即就開始了,做几个练习题熟悉熟悉~嘿嘿~ 题目一: 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内 ...

  3. 百度2016研发project师笔试题(四)

    百度2016研发project师笔试题(四) 2015/12/8 10:42(网上收集整理的,參考答案在后面.若有错误请大神指出) 1. 关于MapReduce的描写叙述错误的是() A. 一个Tas ...

  4. 阿里巴巴2016研发project师笔试题

    问题1: 假设下列的公式成立:78+78=123,则採用的是_______进制表示的. 本题实则考察进制转换.能够设为x进制.可是x进制有一个问题.即我们无法对x进制直接进行加减乘除.故转化为我们常见 ...

  5. 网易游戏2015年暑期实习生面试经历-游戏研发project师

    首先,我还是先介绍一下网易游戏吧.引用别人的一段话 作者:王选易.出处: http://www.cnblogs.com/neverdie/ 欢迎转载 .也请保留这段声明.假设你喜欢这篇文章,请点[推荐 ...

  6. 阿里巴巴2014研发project师实习生面试经历

    java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态.之后阿里通知这周三,也就是今天进行二面. 凑巧的是今早被舍友吵醒,中午那个困啊,但没时 ...

  7. 2014阿里巴巴研发project师暑期实习生面试经验

    2014阿里巴巴研发project师暑期实习生面试经验 作者:林子 Blog:  http://blog.csdn.net/u013011841 时间:2014年8月 出处:http://blog.c ...

  8. 最美应用-从Android研发project师的角度之[最美时光]

    最美应用-从Android研发project师的角度之最美时光 @author ASCE1885的 Github 简书 微博 CSDN 近期发现最美应用这样一个站点.它会定期推介一些非常有意思的app ...

  9. 网易2019校招内推编程题-瞌睡-C++实现

    [编程题] 瞌睡 时间限制:1秒 空间限制:262144K 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟 ...

随机推荐

  1. Java 字符串计算频率出现最高的字符

    public class HighFrequencyWord { public static void findFrequencyWord(String str) {          Collect ...

  2. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之项目设计

    前言:这个项目是毕设时候做的,我负责后台数据操作部分,已经很久了,这次回顾这部分,是为了复习PHP和MySQL的知识,正好现在在公司也负责的是后台管理系统的业务.第一篇[项目概况]附上毕业论文部分节选 ...

  3. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何获取标准驱动器扭矩值获取电流值

    双击某个驱动器(以松下伺服驱动器为例),在Process Data中,注意默认显示了PDO mapping1的数据(Error code, status word等)   注意左侧,2和3分别表示了与 ...

  4. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-报错0X4655,18005错误怎么办

    首先确认驱动器没有报错(如果驱动器报错,请先解决绝对值编码器的清除多圈数据问题) 报错一般上使能就会报错,没法测试运转,而且不管是用贝福自带的NC功能还是自己写的都会一样的效果   请删除在贝福的Et ...

  5. leetcode 二分查找 Search in Rotated Sorted Array

    Search in Rotated Sorted Array Total Accepted: 28132 Total Submissions: 98526My Submissions Suppose ...

  6. web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数)

    web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数) 说明:凡函数中以日期作为參数因子的,当中日期的形式都必须是yy/mm/dd.并且必须用英文环境下双引號(" & ...

  7. Android Exception 14(Activity has been destroyed)

    java.lang.IllegalStateException: Activity has been destroyed at android.app.FragmentManagerImpl.enqu ...

  8. 一种大气简单的Web管理(陈列)版面设计

    在页面的设计中,多版面是一种常见的设计样式.本文命名一种 这种样式.能够简单描写叙述为一行top,一列左文件夹,剩余的右下的空间为内容展示区.这种样式,便于高速定位到某项内容或功能. 在主要的HTML ...

  9. UE4 场景展示Demo

    使用到的level blueprint如下:

  10. IDEA 找不到maven编译命令操作

    找到idea左上角菜单View>Tool Windows>Maven projects.