目录

1.打翻的闹钟

2.智斗锅鸡

3.文件列表


1.打翻的闹钟

问题描述

冯迭伊曼晚上刷吉米多维奇刷的太勤奋了,几乎天天迟到。崔神为了让VonDieEman改掉迟到的坏毛病,给他买了个闹钟。
一天早上,老冯被闹钟吵醒,他随手将闹钟按掉丢到一边。不过他突然想起今天还要虐微积分,于是瞅了一眼闹钟:
这个闹钟上只有时针和分针。上面还没数字(崔神:……),只有12个刻度,每30°一个刻度。时针如果恰好指向某个刻度i,则说明这时恰好是i点整(或i+12点整)。因此只有在00:00或12:00时,时针和分针才会指向同一个刻度:刻度0。
但是老冯的闹钟被打翻了,他分不出哪根刻度是刻度0,因此他也不知道现在是几点。于是他随便指定了一根刻度当刻度0,读了一下时间,结果(你懂的)……但是他可以通过测量,得到时针、分针与他指定刻度之间的角度大小(顺时针)。

老冯随便把一根刻度当做刻度0,然后他量得时针的角度为70°,分针的角度为300°,然后他读了一下时间。2:50??这比例不对啊。最后老冯终于将闹钟翻回了正确的位置:原来是8:20。哈哈,老冯你不用挣扎了,又迟到了。
老冯想知道,如果知道某刻度当刻度0后时针、分针的角度,能否算出正确的时间?如果能,或存在多解,那么当前时间最早是什么时候?

输入格式

第一行一个整数T,表示数据组数。
接下来T行,每行两个整数H、M,分别表示老冯量出的时针、分针的角度。

输出格式

输出T行,每行一个字符串。
如果存在解,输出HH:MM,表示最早的时间(比如09:11表示9点11分);否则输出“orz VonDieEman”(不含引号)。

样例输入

5
70 300
90 120
240 36
19 19
10 12

样例输出

08:20
11:00
orz VonDieEman
orz VonDieEman
orz VonDieEman

样例解释

果断不解释。

数据规模

70%的数据,T≤5,不存在无解情况。
100%的数据,T≤100,0≤H,M<360。

示例代码

#include<iostream>
using namespace std;int main() {int T,hour,minute;cin >> T;for (int i = 0; i < T; i++) {cin >> hour >> minute;int temp1 = hour % 30;temp1 = temp1 * 2;//分int temp2 = temp1 * 6;//分钟所占的度数//找零刻度线int temp3;if (minute > temp2) {//在左边temp3 = (minute - temp2) % 360;}else {temp3 = minute - temp2+360;}if (temp3 % 30 != 0) {//如果刻度线不在针上cout << "orz VonDieEman" << endl;continue;}int temp4;if (temp3 > hour) {temp4 = 360 - (temp3 - hour);}else {temp4 = hour - temp3;}temp4 = temp4 / 30;if (temp4 < 10) {cout << '0';}cout << temp4 << ':';if (temp1 < 10) {cout << '0';}cout << temp1 << endl;}return 0;
}

2.智斗锅鸡

问题描述

郭鸡是数学系里一个智商很低却十分好胜的同学。
自从他在“a+b problem”这道题里AC以后,他便觉得自己比贵系同学们厉害了。
于是他找到了你,发起了挑战,挑战内容就是一个叫取石子的游戏。
这个游戏里,首先会有两堆石子,分别有a和b粒石子。
两个人轮流操作,每次操作必须从其中一堆里取出一定粒数的石子(不能不取,可以取完)。
在有限次操作后,会有一个人把最后的石子取走(最后一次当然不一定是只取一粒),那个人就是胜利者。
由于郭鸡是自大的,于是他希望由你选择先取或后取。
作为一名优秀的酒井人,你要在这个游戏里彻底打败郭鸡,使游戏开始以后郭鸡没有任何机会获得胜利。

输入格式

输入共n+2行,第一行是一个整数n,表示郭鸡取石子次数。
第二行是两个正整数a和b,意义见题目描述。
下面n行,每行有两个整数,用空格隔开,表示郭鸡每次操作的堆号(1或2)及他取的石子数。
(注意:在游戏过程中,事实上你是不知道郭鸡接下来会怎么取的,所以我们要求你每一步操作都要保证郭鸡失败)
输入保证你能在他取完n次后的操作中获胜。

输出格式

输出有两种可能。
若你选择先取,则输出n+2行,第一行输出"Fisrt"表示先取,之后n+1行每一行是你每次操作的堆号(1或2)及取出的石子数。
若你选择后取,则输出n+1行,第一行输出"Second"表示后取,之后n行每一行是你每次操作的堆号(1或2)及取出的石子数。
"First"与"Second"的输出均不带引号。

样例输入

4
10 10
1 4
2 3
1 2
2 1

样例输出

Second
2 4
1 3
2 2
1 1

样例输入

1
1 2
1 1

样例输出

First
2 1
2 1

数据规模和约定

0<a,b<1000

示例代码

#include<iostream>
using namespace std;int main() {int n, a, b;cin >> n;cin >> a >> b;if (a != b) {//先手,使得a和b相等cout << "First" << endl;if (a > b) {cout << 1 <<" "<< a - b << endl;}else {cout << 2 << " " << b - a << endl;}}else {cout << "Second" << endl;}int dui, shu;for (int i = 0; i < n; i++) {//他干什么,你就和他反着来cin >> dui >> shu;if (dui == 2) {cout << 1 << " " << shu << endl;}else {cout << 2 << " " << shu << endl;}}return 0;
}

3.文件列表

感谢大佬 https://blog.csdn.net/ymzqwq/article/details/97781340

问题描述

BSOI在线评测机被不明身份的人入侵了!!系统中大量的数据遭到恶意破坏,数据文件残缺不全。现在,老师正在尽力抢救数据文件。为了检查数据文件是否完整,老师打印出了所有文件的列表,但数据文件太多,老师眼睛都要看花了。所以,为了方便老师检查,需要你写个程序处理一下文件列表,转换成下面这样统一的格式:(//后面为注释)
data //data文件夹,根目录
|----prob //data下面的文件夹
|  |----a.in //prob下面的文件
|  |----a.out
|----qq //data下面的文件夹
|  |----new //qq下面的文件夹
|  |  |----ok.txt //new下面的文件
|  |----old //空文件夹
|----xxx.rmvb
生成的列表格式有如下要求:
1.属于同一层的文件或文件夹位于相同的缩进处,相邻两层文件间差距5个字符;
2.每个文件夹或文件前有4个’-’(根目录除外),文件夹下方属于文件夹的部分有’|’;
3.属于统一文件夹下的文件或子文件夹按字典序排列;

输入格式

第一行一个整数n( n<=50 ),表示总共的文件数目;
接下来n行,每行描述一个文件的路径,路径以 '/' 作为文件分隔符;
所有文件( 及文件夹 )名均由小写字母和英文点组成;所有输入的根目录都是一样的,文件名长度不超过 10 个字符 ,
每个文件夹下不超过15个文件,不超过 5 层。

输出格式

输出符合要求的文件列表

样例输入

6
mydoc/abcd/abc.txt
mydoc/dd/libexec.a
mydoc/stdio.h
mydoc/abcde
mydoc/abcd/zzz/game.cpp
mydoc/abcd/new

样例输出

mydoc
|----abcd
|     |----abc.txt
|     |----new
|     |----zzz
|     |     |----game.cpp
|----dd
|     |----libexec.a
|----stdio.h

数据规模和约定

对于30%的数据,根目录下只有文件,没有文件夹

示例代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 100002;
int n;
string s;
vector<string> c[N];
string str[N];int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> str[i];}sort(str + 1, str + 1 + n);//对字符串进行排序for(int i = 1; i <= n;i++) {string s = str[i].substr(0, str[i].size());//将该字符串赋值给sc[i].resize(0);//将容器初始化为0int pre = 0;//字符索引for(int j=0;j<s.size();j++)if (s[j] == '/') {string ss = s.substr(pre, j - pre);//将/前的字符装入ss中c[i].push_back(ss);pre = j + 1;}c[i].push_back(s.substr(pre, s.size() - pre)); //按'/'分割,最后一个文件存入c[i]int flag = 0;for (int j = 0; j < c[i].size(); j++) {if (flag || j >= c[i - 1].size() || c[i][j] != c[i - 1][j]) { //之前没输出过for (int k = 0; k < j - 1; k++) {//j-1个cout<<"|    ";}if (j) {//存在即输出,只要不是根目录cout << "|----";}cout << c[i][j] << endl;flag = 1; //flag表示c[i][j]和c[i-1][j]是在同一个文件夹里}}}return 0;
}

蓝桥杯算法训练合集十五 1.打翻的闹钟2.智斗锅鸡3.文件列表相关推荐

  1. 蓝桥杯算法训练合集十二 1.比较2.计算最小公倍数3.比赛安排4.潜伏者5.P0702

    目录 1.比较 2.计算最小公倍数 3.比赛安排 4.潜伏者 5.P0702 1.比较 问题描述 给出一个n长的数列,再进行m次询问,每次询问询问两个区间[L1,R1],[L2,R2], 询问数列第L ...

  2. 蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵

    目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序,输入一个4位的自然数,将组成该数的各位数字重新排列,形成一个最大数和一 ...

  3. 蓝桥杯算法训练合集八 1.数的划分2.求先序排列3.平方计算4.三角形高5.单词复数

    目录 1.数的划分 2.求先序排列 3.平方计算 4.三角形高 5.单词复数 1.数的划分 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种 ...

  4. 蓝桥杯算法训练合集一 1.印章2.拿金币3.数字游戏4.无聊的逗5.礼物

    目录 1.印章(动态规划) 2.拿金币(动态规划) 3.数字游戏(搜索) 4.无聊的逗(状态搜索) 5.礼物(二分法和前缀和) 1.印章(动态规划) 问题描述 共有n种图案的印章,每种图案的出现概率相 ...

  5. 蓝桥杯算法训练合集三 1.车的位置2.24点3.最大分解4.RP大冒险5.士兵杀敌(二)

    目录 1.车的位置(搜索) 2.24点(搜索) 3.最大分解(贪心) 4.RP大冒险 5.士兵杀敌(二) 1.车的位置(搜索) 问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两 ...

  6. 蓝桥杯算法训练合集四 1.p0802 2.A的B的C次方次方 3.出现次数最多的整数 4.成绩分级 5.台阶问题

    目录 1.p0802 2.A的B的C次方次方 3.出现次数最多的整数 4.成绩分级 5.台阶问题 1.p0802 问题描述 编写一个字符串表达式求解函数int expression(char* s); ...

  7. 蓝桥杯算法训练合集十七 1.数字反转2.试题39713.矮人采金子4.筛法5.机器指令

    目录 1.数字反转 2.试题3971 3.矮人采金子 4.筛法 5.机器指令 1.数字反转 问题描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为 ...

  8. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  9. 蓝桥杯算法训练 印章

    蓝桥杯 算法训练 印章 问题描述 ​ 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ​ 一行两个正整数n和m 输出格式 ​ 一个实数P表示答案,保 ...

最新文章

  1. C++实现动态顺序表
  2. 动态规划 | 对输入进行hash处理的LIS 1045
  3. 【Python】机器学习矩阵运算必学库Numpy首秀!
  4. nbu还原oracle,NBU恢复oracle
  5. iOS 开发之--使用AFNetWorking3.1.0上传单张/多张图片
  6. 吉林大学计算机与科学专业排名,吉林大学专业排名 哪些王牌专业推荐就读
  7. vs下使用qt设置应用程序的图标
  8. Ubuntu上可使用的15个桌面环境
  9. 无网络环境下安装Dynamics CRM
  10. 如何设计一个本地缓存,涨姿势了!
  11. java MD5 32位加密
  12. 如何设置迪文DGUS屏的字体效果?
  13. 写代码遇到的灵异事件
  14. nsis升级包_NSIS:制作软件升级安装包
  15. 公派访问学者办理签证的五点建议
  16. 计算机cpu多大,电脑的cpu频率多少算正常
  17. 面试感悟----一名3年工作经验的程序员应该具备的技能(转载自@五月的仓颉)...
  18. 我认识的林家翘先生---致敬伟大的我国数学家
  19. WIN7下安装Oracle 10g 的详细过程以及有关问题的解决(转)
  20. 可爱萌萌哒的博客小仓鼠驾到!~

热门文章

  1. 07年8月浏览器市场份额信息
  2. 疯狂Java讲义-面向对象(下)
  3. Choosing Quadcopter Motors and Props
  4. 英文简历范文计算机专业,2015计算机专业英文简历范文
  5. 第五章脚本的录制与回放
  6. JS 获取元素到浏览器页面最左侧和顶部的距离
  7. ARGB 颜色取值与透明度对照表
  8. [Pandas] 缺失值填充 df.fillna()
  9. Vue基础概念,基础指令,选项式API
  10. 三菱Q系列总线型项目程序全套