企业网站推广建设郑州学校网站建设
CF1692D The Clock 题解
- 题目
- 链接
- 字面描述
- 题面翻译
- 题目描述
- 输入
- 输出
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 提示
- 代码实现
题目
链接
https://www.luogu.com.cn/problem/CF1692D
字面描述
题面翻译
题目描述
从一个24
小时制的时间点开始,每隔 xxx 分钟看一次手表,求到重新看到此时间点为止一共看到了多少个回文时间点。
回文时间点:诸如13:31
,25:52
等时间点。
输入
第一行一个数 TTT 表示数据组数,
接下来 TTT 行每行一个时间点 xx:xx
和时间间隔 xxx ,使用空格分隔。
输出
对于每一组数据,输出一个 ansansans 表示看到的回文时间点的数量。
题目描述
Victor has a 24-hour clock that shows the time in the format “HH:MM” (00 $ \le $ HH $ \le $ 23, 00 $ \le $ MM $ \le $ 59). He looks at the clock every $ x $ minutes, and the clock is currently showing time $ s $ .
How many different palindromes will Victor see in total after looking at the clock every $ x $ minutes, the first time being at time $ s $ ?
For example, if the clock starts out as 03:12 and Victor looks at the clock every $ 360 $ minutes (i.e. every $ 6 $ hours), then he will see the times 03:12, 09:12, 15:12, 21:12, 03:12, and the times will continue to repeat. Here the time 21:12 is the only palindrome he will ever see, so the answer is $ 1 $ .
A palindrome is a string that reads the same backward as forward. For example, the times 12:21, 05:50, 11:11 are palindromes but 13:13, 22:10, 02:22 are not.
输入格式
The first line of the input contains an integer $ t $ ( $ 1 \leq t \leq 100 $ ) — the number of test cases. The description of each test case follows.
The only line of each test case contains a string $ s $ of length $ 5 $ with the format “HH:MM” where “HH” is from “00” to “23” and “MM” is from “00” to “59” (both “HH” and “MM” have exactly two digits) and an integer $ x $ ( $ 1 \leq x \leq 1440 $ ) — the number of minutes Victor takes to look again at the clock.
输出格式
For each test case, output a single integer — the number of different palindromes Victor will see if he looks at the clock every $ x $ minutes starting from time $ s $ .
样例 #1
样例输入 #1
6
03:12 360
00:00 1
13:22 2
15:15 10
11:11 1440
22:30 27
样例输出 #1
1
16
10
0
1
1
提示
The first test case is explained in the statement.
代码实现
大模拟+时间反转比较计数
#include<bits/stdc++.h>
using namespace std;int t,st,ed,op,ans;
char l;
int main(){scanf("%d",&t);while(t--){scanf("%d %c%d%d",&st,&l,&ed,&op);int x=st,y=ed;bool flag=false;ans=0;while((x!=st||y!=ed)||!flag){flag=true;y+=op;x=x+y/60;y%=60;x%=24;int p=10*(x%10)+x/10;if(p==y)++ans;}printf("%d\n",ans);}return 0;
}