题干:

There are many handsome single boys in our team, for example, me. Some times, we like count singles. For example, in the famous “November 11th” (11.11), there are four singles ,so, single is actually 1. For another example, there are 2 singles in the time “1:01”.  We are all boring guys, and here is an boring problem. Time is in the format HH:MM:SS; one day starts from 00:00:00, and ends at 24:00:00, we just want to know how many singles has passed till a certain time (included)

Input

First line is the number of cases: n, the next n lines are each a time, exactly in the format described above. It's guaranteed that the time is in the right range (00:00:00 ~ 24:00:00)

Output

For each case, just give us the answer in a single line, no extra character is needed.

Sample Input


00:00:00 
00:00:01 
00:00:02

Sample Output



1

题目大意:

给你一个时间t,让你计算从00:00:00到当前时间(包括当前时间这一秒)一共出现了多少次数字1.

解题报告:

预处理到一个dp数组中就好了。tmp那里也可以直接写成=,然后dp[cur]=dp[cur-1]+tmp。也可以,其实是等价的。

AC代码:

#include<bits/stdc++.h>
#define ll long longusing namespace std;
int dp[24*60*60 + 60*60 + 60 + 5];
int cal(int x) {int res=0;while(x) {if(x%10==1) res++;x/=10;}return res;
}
void init() {int tmp=0;int a=0,b=0,c=0;//时,分,秒 while(a<24) {//计算当前状态 tmp+=cal(a)+cal(b)+cal(c);dp[a*60*60+b*60+c]=tmp;//预备下一个状态 c++;if(c==60) {c=0,b++;if(b==60) b=0,a++;}}
}
int main()
{init();int t;cin>>t;while(t--) {int a,b,c;scanf("%d:%d:%d",&a,&b,&c);int tmp=a*60*60+b*60+c;printf("%d\n",dp[tmp]);}
}

总结:

熟悉一下模拟时的语句模式和套路:while循环中干两件事情,1.计算当前状态下的值,2.将下一个状态准备好。

【 HRBUST - 1055】Single(模拟,dp,打表)(总结)相关推荐

  1. java如何给顺序表赋值_JAVA模拟新增顺序表及单链表

    最近在回顾大学学的数据结构,这里给大家用javwww.cppcns.coma模拟顺序表和单链表的新增 1顺序表新增 /** * 顺序www.cppcns.com表 * * @author cjd * ...

  2. Python模拟post提交表单数据 ——某二手车网站回拨电话的分析与利用

    Python模拟post提交表单数据 --某二手车网站回拨电话的分析与利用 在浏览某二手车网站的时候,发现可以提交手机号码,然后网站就会回拨给这个手机号,利用这个功能,可以实现一些目的.Python语 ...

  3. c语言写自动填写表单提交,利用C语言实现POST数据包如此简单【模拟网页提交表单】...

    http://www.maben.com.cn/archives/212.html 利用C语言实现POST数据包如此简单[模拟网页提交表单] //*************************** ...

  4. 模拟form提交表单

    表单结构 模拟form提交表单,当点击按钮时执行form的submit()事件,表单的Name为接口所需参数名称,表单value为接口所需参数值 <!-- 模拟form表单提交 -->&l ...

  5. P1944 最长括号匹配(栈模拟/DP)

    P1944 最长括号匹配 可以直接用栈模拟,把匹配好的标记一下, 最后找到最长的匹配输出即可. 如果是要求最长的长度的题那么只需要求数就行了,没必要把原序列真的按照题意改变 如果要求序列,那么只需要按 ...

  6. 模拟数据库,表空间和数据文件损坏后的恢复操作

    1环境准备 对数据库做一次全备份: 验证当前的备份文件: 2数据库损坏的恢复 2.1模拟数据库损坏 尝试重启数据库查看报错: 这里需要重点说明的是因为我们用的是CATLOG数据库作为目录数据库,所以即 ...

  7. 模拟实现顺序表ArrayList2(三级)

    package com.learn.datastructure;/*** 线性接口表* 我怎么觉得这些方法我们都学过,* 是不是都学过,大同小异,* 注意这是一个接口,和存储结构无关* 无论是顺序表还 ...

  8. 模拟实现顺序表ArrayList1(三级)

    package com.learn.datastructure;/*** 线性接口表* 我怎么觉得这些方法我们都学过,* 是不是都学过,大同小异,* 注意这是一个接口,和存储结构无关* 无论是顺序表还 ...

  9. 【Codeforces Round #466】E. Cashback DP+ST表

    题意 给定$n$个数,将其划分成若干个连续的子序列,求最小价值,数组价值定义为,数组和减去$\lfloor \frac{k}{c} \rfloor$,$k$为数组长度,$c$为给定数 可以列得朴素方程 ...

最新文章

  1. 最强蜗牛击败毁灭机器人_最强蜗牛:恶魔形态解锁攻略
  2. 怎么画单极交流放大电路波形图_珠海放大IC怎么样
  3. linux 29900端口,USB2.0接口100M以太网芯片SR9900(A)的应用
  4. Android 3D emulation 架构理解
  5. Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
  6. navigationBar设置透明度
  7. matplotlib——直方图
  8. Quartz定时器实现
  9. 【转】NB-IoT移远BC95使用小结
  10. 年会抽奖程序,及时安排一波【开源项目】
  11. 杂题 P1640 [SCOI2010]连续攻击游戏
  12. 2022全球「高被引科学家」榜单出炉!中国内地1169人入选,继续紧追美国
  13. 双线macd指标参数最佳设置_经典实用的双线MACD指标
  14. 网络测试一般使用这四个命令就可以了
  15. 新技术又又又又叒叒来了?
  16. 数据分析:单元1 NumPy库入门
  17. PE文件-CPU寄存器-栈-常用汇编语言指令-push-move-sub-lea-rep-xor
  18. 使用UltraEdit25.20.0.88进行Verilog语言编辑配置方式(详细)
  19. 2021全国大学生电子设计竞赛A题
  20. c语言中宏定义的字符替换#define M(x,y,z) x*y+z

热门文章

  1. [Leedcode][JAVA][第55题][跳跃游戏][贪心][动态规划]
  2. java监听器原理_java监听器原理
  3. 提高应用程序稳定的小内容
  4. 外部函数能修改闭包内的变量_Python函数式编程,Python闭包
  5. A-Frame WEB VR框架初体验
  6. redis集群关闭 启动报错_使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能。...
  7. python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...
  8. python最好用的画图工具_python Matplotlib.plot 超好用的画图技巧,总有一条用得到!...
  9. python xml etree_python xml.etree解析xml
  10. 【Modern OpenGL】转换 Transformations