当前位置: 首页 > news >正文

时间哈希+日期处理 睡大觉

E-睡大觉_2022河南萌新联赛第(四)场:郑州轻工业大学 (nowcoder.com)

题意:

思路:

这是一道模拟题,这里主要总结如何处理时间信息和日期信息

对于时间信息:把时分秒转化成秒,相当于哈希了一下

对于日期信息:

开两个Mon数组,一个表示闰年,一个表示非闰年

日期进位的话,一层一层判断,然后更新日期信息即可

Code:

#include <bits/stdc++.h>
using namespace std;
int year,mon,day,q,h,m,s,last=0,ok=0,ans=0;
int Monr[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int Mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int y){
    if((y%4==0&&y%100!=0)||y%400==0) return true;
    return false;
}
int main(){
    scanf("%d-%d-%d",&year,&mon,&day);
    if(check(year)) ok=1;
    scanf("%d",&q);
    while(q--){
        scanf("%d:%d:%d",&h,&m,&s);
        int w=s+m*60+h*3600;
        if(w<=last){
            day++;
            if(ok){
                if(day>Monr[mon]){
                    day=1;
                    mon++;
                    if(mon>12){
                        mon=1;
                        year++;
                        if(check(year)) ok=1;
                        else ok=0;
                    }
                }
            }else{
                if(day>Mon[mon]){
                    day=1;
                    mon++;
                    if(mon>12){
                        mon=1;
                        year++;
                        if(check(year)) ok=1;
                        else ok=0;
                    }
                }
            }
        }
        //printf("%d %d %d\n",year,mon,day);
        if(mon%2==day%2) ans++;
        last=w;
    }
    printf("%d\n",ans);
}

但是有点丢人的是,这道题并不是1A的....,甚至还WA了两发

第一发是ok(判断闰年)=0的判断没写

第二发是发现只需要醒来的时候奖励就好了,一开始不需要ans++

因此对于模拟题,我们写完代码之后,一定要看一遍题干,然后顺着题干的逻辑从头到尾检查一下代码,一点点仔细看,debug的时候也是,一点点检查,看看全局变量有没有漏维护的(这个弱智错误我经常犯,不论是robocom还是PAT....,只要是涉及到一丢丢的模拟的地方我都会错一点,拿不到满分),所以提交之前和debug的时候一定要顺着读一遍题干,理一下代码逻辑QWQ

debug一般有两种途径:

1.仔细读题,然后顺着理一遍

2.输出一点东西,调小样例

3.写暴力代码,然后对拍,看看能不能拍出小数据

相关文章:

  • 《Python多人游戏项目实战》第四节 实现房间功能
  • 牛客题霸sql入门篇之条件查询(三)
  • Qt-Web混合开发-QtWebChannel实现Qt与Web通信交互-进阶功能(6)
  • SpringMVC:SpringMVC五种类型参数传递(4)
  • 微信小程序 | 小程序WXSS-WXML-WXS
  • 蓝桥杯入门即劝退(十六)查找元素范围(双解法)
  • Servlet转发与重定向
  • 【C语言进阶】参加面试怎能不会结构体?进来学,手把手教会你结构体的原理与使用
  • JSP运动会信息网站
  • 大数据呀大数据
  • C#编程基础(万字详解,这一篇就够了)
  • 滑动窗口的最大值【滑动窗口问题】
  • MYSQL 8.0 -- 事务中删除不存在的记录导致死锁
  • [1181]linux两台服务器之间传输文件和文件夹
  • 题:付账问题
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • angular2 简述
  • bootstrap创建登录注册页面
  • Golang-长连接-状态推送
  • JAVA并发编程--1.基础概念
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SpringBoot几种定时任务的实现方式
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue 动态创建 component
  • 分布式任务队列Celery
  • 前端知识点整理(待续)
  • 如何在GitHub上创建个人博客
  • 王永庆:技术创新改变教育未来
  • Spring Batch JSON 支持
  • Spring第一个helloWorld
  • ​批处理文件中的errorlevel用法
  • #AngularJS#$sce.trustAsResourceUrl
  • #Java第九次作业--输入输出流和文件操作
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)认识微服务
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net下简单快捷的数值高低位切换
  • .NET应用架构设计:原则、模式与实践 目录预览
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AR Foundation] 人脸检测的流程
  • [autojs]autojs开关按钮的简单使用
  • [C++]C++基础知识概述
  • [CC-FNCS]Chef and Churu
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [C语言]——内存函数