A 济世之光

时间限制:1000ms  内存限制:65536kb

通过率:89/167 (53.29%)   正确率:89/419 (21.24%)

题目描述

ModricWang是一位光明圣堂武士,拥有等离子护盾和济世之光技能,可以保护自己的队友。由于技能有冷却时间,每次只能选择生命值最少的队友进行保护。

由于队友的数量有点多,ModricWang一下子看不过来,希望你能在1000ms内帮助ModricWang确定需要保护的队友的生命值是多少。

如果所有人生命值都相同,ModricWang会认为大家都处于危险之中,将牺牲自己的生命值发动技能“济世之光”,为所有人提供灵能护盾。

输入

第一个数为队友数n,2<=n<=1000

第二行n个整数,代表队友的生命值,都在int范围内。

输出

如果所有人生命值都相同,输出"En Taro Modric"

否则输出生命值最少的队友的生命值

输入样例1

5
99 100 61 61 82

输出样例1

61

输入样例2

5
76 76 76 76 76

输出样例2

En Taro Modric

 

考察知识点

条件判断语句的使用

解题思路

先读入第一个数,并假定它是最小的数。

然后依次读入剩下的n-1个数,与之前最小的数作比较,如果比最小的数小,那么将它记为最小的数。

在读入n-1个数时,只要有一个数与之前最小的数不相等,就说明这组数不完全相等。

参考代码

#include <iostream>using namespace std;int n, i, Min, num;
bool changed = false;int main() {cin >> n;cin >> Min;for (i = 0; i < n - 1; i++) {cin >> num;if (num != Min) changed = true;if (num < Min) Min = num;}if (changed) cout << Min << "\n";else cout << "En Taro Modric\n";
}

B 王助教玩逢七必过

时间限制:1000ms  内存限制:65536kb

通过率:32/123 (26.02%)   正确率:32/308 (10.39%)

题目描述

“逢七必过”是一个很简单的游戏。

n个人围坐一个环形(编号从1到n),从1号开始,从一个指定数字p每人逐次递增报数,每遇到数字中含有7数字是7的倍数就拍手。当然如果做错的话就gg。

王助教打算在他手机安装一个程序,这样他就可以知道轮到自己时,下个需要拍手的数字是多少了。现在由你来实现吧。

输入

三个整数,人数n,王助教的编号i,开始的数字p。

1<n≤100001<n≤10000

1≤i≤n1≤i≤n

1≤p≤231−11≤p≤231−1

输出

下一个要拍手的数字。

输入样例1

5 3 70

输出样例1

72

输入样例2

10 1 8

输出样例2

28

考察知识点

条件判断,取模运算,模拟

解题思路

对于“数字中含7”和“是7的倍数”需要分开判断。

之前已经做过一个“提取十位数”的题,对于“数字中含7”的情况,需要挨个提取(从高到低或者从低到高都行)数字的每一位,并和7作比较。

对于“是7的倍数”则比较简单,直接对7取模即可。

可以让p每次加1来模拟游戏过程,游戏每进行一步都执行上面的验证过程。需要注意的是,虽然p在输入时在int范围内,但是递加后会超出int,需要使用范围更大的数据类型。

参考代码

#include <iostream>using namespace std;long long n, i, p;bool check(long long x) {while (x > 0) {if (x % 10 == 7) return true;x /= 10;}return false;
}int main() {cin >> n >> i >> p;p += i - 1;while (true) {if (p % 7 == 0 || check(p)) {cout << p << endl;break;}p += n;}
}

 

C xjx的晚会舞伴

时间限制:1000ms  内存限制:65536kb

通过率:11/75 (14.67%)   正确率:11/229 (4.80%)

题目描述

xjx想在晚会上挑选舞伴,他打算挑一个颜值最高的妹子当舞伴,于是他翻出一个妹子名单,上面有一叠妹子照片。他把这些照片一字排开,但是他发现要具体给颜值界定一个具体的数太困难了,他只能判断相邻两个照片哪个妹子颜值更高。现在由你来帮他给出一个颜值可能最高的妹子的待选列表吧。

输入

第一行为一个整数n,代表妹子数量(妹子编号为1~n)。

第二行为n-1个整数xi,代表相邻的两个妹子谁颜值更高。
xi<0表示左面的更高,
xi>0表示右面的更高,
xi=0表示妹子颜值无法区分。

1≤n≤10001≤n≤1000
−100≤xi≤100−100≤xi≤100

输出

输出一行,颜值可能最高的妹子的待选列表(编号从小到大升序)

输入样例

6
1 1 -1 1 1

输出样例

3 6

 

考察知识点

条件判断,逻辑推理

解题思路

题意即:给出一组数据的相邻之间的定性的大小关系,找出所有比相邻值都大的元素的位置。

对于不在边缘的数,只要向左右两边找到第一个不为0的差值,符合“左正右负”即可。边缘的数只要比它唯一相邻的数大即可。

需要注意的是,如果所有人都无法区分,那么所有人都有可能是最高。

参考代码

#include<iostream>using namespace std;const int MaxN = 1000 + 7;
int n, Left, Right;
int a[MaxN];int main() {cin >> n;for (int i = 1; i < n; i++) cin >> a[i];a[0] = 1;a[n] = -1;for (int i = 1; i <= n; i++) {Left = i - 1;Right = i;while (a[Left] == 0)Left--;while (a[Right] == 0)Right++;if (a[Left] > 0 && a[Right] < 0)cout << i << " ";}cout << "\n";
}

 

D 王助教活了多久

时间限制:1000ms  内存限制:65536kb

通过率:7/97 (7.22%)   正确率:7/403 (1.74%)

题目描述

王助教经常会不记得自己多大了,搞不清楚自己是多少岁。王助教把他的生日告诉你,请你计算一下他今天多大了。王助教有强迫症,所以他要知道很精确的年龄。
要精确到天。

规定今天是2016年10月19日

王助教在计算年份时,以10月19日到上一年的10月19日为一整年。
例如2015年10月19日到2014年10月19日为一整年。

王助教在计算月份时,以19日到下月(或上月)的19日为一整月。
例如从5月19日到6月19日就算一整月。

王助教还是弹簧手,所以他有可能输入不合法或者不可能的日期,这时请输出Invaild date.。

你可以假设王助教能活任意久(但不能活到公元前)。

输入

多组数据读入。
组数至少1组,至多10组。

每组数据一行,包含3个整数y,m,d,依次为王助教生日的年、月、日。

−9999≤y ≤9999 −9999≤y≤9999 
−9999≤ m≤9999−9999≤m≤9999 
−9999≤ d≤9999−9999≤d≤9999

输入保证每组数据一定包含3个整数。

输出

对于每组数据,输出一行英文,表示王助教已经活了多少年多少月多少天。
例如Wang assistant is 20 years, 1 month, 0 day old.

若王助教输入了不正确的日期,输出Invailddate.。

请保证英文语法通顺。 
请按照样例那样填写0补位,不要省略。

样例里的0已经酿成大错,现在只好将错就错了。。

请注意首字母大写。

输入样例

1996 6 12
2016 10 19
2016 10 20
-9999 9 9

输出样例

Wang assistant is 20 years, 4 months, 7 days old.
Wang assistant is 0 year, 0 month, 0 day old.
Invaild date.
Invaild date.

考察知识点

模拟,日期计算

解题思路

按照题意,需要先将day对齐到19,然后将month对齐到10,最后将year对齐到2016。对于闰年需要特殊处理。

合法性判断有两点,首先,日期本身要合法,像1月70日这种肯定是不合法的。其次,不能来自于未来。

输出上坑了大家,非常抱歉,0应该算作复数的,还有Invalid也拼错了,这里向大家道歉,以后会尽量避免这些问题。(虽然这题不是我出的)

参考代码

#include <iostream>using namespace std;int main() {int y, m, d;int monthday[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};while (cin >> y >> m >> d) {if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) monthday[1] = 29;if (y <= 0 || y > 2016 || y == 2016 && (m > 10 || m == 10 && d > 19)) cout << "Invaild date.\n";else if (d <= 0 || d > monthday[m - 1] || m <= 0 || m > 12) cout << "Invaild date.\n";else {if (m < 10) {y = 2016 - y;if (d <= 19) {d = 19 - d;m = 10 - m;} else {d = monthday[m - 1] - d + 19;m = 9 - m;}}else if (m > 10) {y = 2015 - y;if (d <= 19) {d = 19 - d;m = 22 - m;} else {d = monthday[m - 1] - d + 19;m = 21 - m;}}else {if (d <= 19) {y = 2016 - y;m = 0;d = 19 - d;} else {y = 2015 - y;d = 50 - d;m = 11;}}cout << "Wang assistant is ";if (y > 1)cout << y << " years, ";else cout << y << " year, ";if (m > 1)cout << m << " months, ";else cout << m << " month, ";if (d > 1)cout << d << " days old." << endl;else cout << d << " day old." << endl;}monthday[1] = 28;}return 0;
}
												

16级C++第三次上机解题报告相关推荐

  1. P3-2017级算法第三次上机 B SkyLee逛漫展

    题目描述 求数组中数字xx所在的位置(保证数组严格递增) 输入 多组数据输入 第一行一个整数nn,为数组元素个数(1<n<=1e6) 第二行nn个整数,为数组元素 第三行一个整数,为请求查 ...

  2. 2016级计算机C++助教工作(12) 第二次上机解题报告

    A.   Brainman 冒泡排序,平方的复杂度能过,循环N次,每次判断相邻两个数是否要交换,统计次数即可 #include<iostream> #include<algorith ...

  3. 2016级算法第三次上机-G.Winter is coming

    904 Winter is coming 思路 难题.首先简化问题, \(n\) 个0与 \(m\) 个1排成一列,连续的0不能超过x个,连续的1不能超过y个,求排列方法数. 显然会想到这是动态规划. ...

  4. 第三次上机实验报告(个人所得税计算器)

    * 文件名称: 个人所得税计算器 * 作    者:  赖诗文 * 完成日期:2016 年4 月 7 日  * 版 本 号:v1.0  * 对任务及求解方法的描述部分:个人所得税计算器 * 输入描述: ...

  5. 第三次小组赛解题报告

    http://acm.zcmu.edu.cn/JudgeOnline/contest.php?cid=1088 Eatting  水 题目意思是没有朋友的人全部离开,有1个朋友的所有人离开,有2个朋友 ...

  6. POJ3069 萨鲁曼的大军(重庆一中高2018级信息学竞赛测验3) 解题报告

    [问题描述]      萨鲁曼的大军正行进在一条笔直的道路上,由于是在夜晚行军,路上的石头严重地影响了行军速度.于是萨鲁曼决定预先在道路上安装一些路灯,以便士兵们能清楚地看到所有石头. 萨鲁曼给出n块 ...

  7. 数据结构第七次上机实验-解题报告

    数据结构第七次上机实验-解题报告 7-1 序列调度 (100 分) 题目 思路 参考代码 7-2 最大最小差 (100 分) 题目 思路 参考代码 7-3 二叉树最短路径长度 (100 分) 题目 思 ...

  8. 16 级高代 II 思考题十的多种证明

    16 级高代 II 思考题十  设 $V$ 是数域 $\mathbb{K}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, 证明: $\varphi$ 的极小多项式 $m ...

  9. 复旦大学2016--2017学年第二学期(16级)高等代数II期末考试第七大题解答

    七.(本题10分)  设 $n$ 阶复方阵 $A$ 的特征多项式为 $f(\lambda)$, 复系数多项式 $g(\lambda)$ 满足 $(f(\lambda),g'(\lambda))=1$. ...

最新文章

  1. Discuz!的cookie机制
  2. NeurIPS 2021 | 寻MixTraining: 一种全新的物体检测训练范式
  3. POST和GET有什么区别? [重复]
  4. 让页面中的元素在网页最底部的代码片段
  5. C++五子棋(三)——判断鼠标有效点击
  6. 02.centos6.4找不到ifcfg-eth0(静态ip配置)
  7. 推荐 GitHub 2K+ 星:前端监控工具 - webfunny 项目
  8. oracle不一致性关闭下次,Oracle DataGuard
  9. 百度更新算法之后我想说
  10. 传感器 esp8266_如何使用ESP8266微控制器构建烟雾传感器
  11. 怎样把坐标系中的某个点在另外一个坐标系中描述出来
  12. CMMI5认证必备条件
  13. 利用MDTools和Hydraw设计专业的液压阀块
  14. 优雅的避免字体侵权——微软雅黑并不免费
  15. ffmpeg 分辨率 压缩_ffmpeg——关于视频压缩
  16. Python画五角星(turtle初识)
  17. 解决w950播放RM视频的问题[转]
  18. Windows10怎么设置双屏?双屏显示设置有哪些?
  19. win10装win7遇到的问题。
  20. SVD的原理及python实现——正本清源

热门文章

  1. Java各类型数的进制转换
  2. 企业该如何选择积分兑换商城系统
  3. GMM高斯混合模型聚类的EM估计过程matlab仿真
  4. Py-Tetrazine-Py-Amide-Butyric acid相关介绍,1233234-76-8
  5. msk 频偏_msk同步性能
  6. 博图v16安装及教程
  7. servlet的异步处理机制
  8. 国嵌C语言(6-10)
  9. 让那些不值得珍惜的感情走远吧:伤感日志
  10. ZIP/RAR压缩包加密原理和解密方法