2020CSPS T1 儒略日题解

news/2025/10/6 15:17:26/文章来源:https://www.cnblogs.com/passer1/p/19127642

这是一道超级大模拟

前后调了差不多3个小时,要是考场上那就已经炸了

题意其实很简单,但是处理起来是真的麻烦

最后写了份特别丑的代码,A过去了

主要是特例判的恶心,总是会有1月0日的错误

这题一定要耐住性子做下来试试

#include <bits/stdc++.h>
using namespace std;
const long long day = 365;
const long long bound = 2299161;
const long long bound2 = 1721424;
vector<long long> month(13);
vector<long long> month2(13);
int main() {ios::sync_with_stdio(false);cin.tie(nullptr); month2[1] = 31;month2[2] = month2[1] + 29;month2[3] = month2[2] + 31;month2[4] = month2[3] + 30;month2[5] = month2[4] + 31;month2[6] = month2[5] + 30;month2[7] = month2[6] + 31;month2[8] = month2[7] + 31;month2[9] = month2[8] + 30;month2[10] = month2[9] + 31;month2[11] = month2[10] + 30;month2[12] = month2[11] + 31;month[1] = 31;month[2] = month[1] + 28;month[3] = month[2] + 31;month[4] = month[3] + 30;month[5] = month[4] + 31;month[6] = month[5] + 30;month[7] = month[6] + 31;month[8] = month[7] + 31;month[9] = month[8] + 30;month[10] = month[9] + 31;month[11] = month[10] + 30;month[12] = month[11] + 31;long long BY = 3 * day + day + 1;long long Q;cin>>Q;long long r;while(Q--) {cin>>r;r += 1;if(r <= bound) {if(r <= bound2) {long long y = (r / BY) * 4;r %= BY;if(r == 0) {y--;r += 366;}if(r <= 366) {long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<4713 - y<<" "<<"BC"<<"\n";}else {r -= 366;y += 1;y += r / 365;r %= 365;if(r == 0) {y--;r += 365;}long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<4713 - y<<" "<<"BC"<<"\n";}}else {r -= bound2;int flag = 1;if(r == 0) flag = 0;long long y = (r / BY) * 4;r %= BY;if(r == 0 && flag == 1) {y--;r += 366;cout<<31<<" "<<12<<" "<<1 + y<<"\n";}else {y += r / 365;if(r / 365 == 3) {r %= 365;if(r == 0) {y--;cout<<31<<" "<<12<<" "<<1 + y<<"\n";}else {long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<1 + y<<"\n";}}else if(r / 365 == 4) {y--;r = 365;long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<1 + y<<"\n";}else {r %= 365;if(r == 0 && flag) {y--;cout<<31<<" "<<12<<" "<<1 + y<<"\n";}else {long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<1 + y<<"\n";}}}}}else {r -= bound;if(r <= 78) {r += month[9] + 4;r += 10;long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<1582<<"\n";}else {r -= 78;long long year = 1583;if(r <= 6575) {if(r <= 365) {long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<1583<<"\n";}else {r -= 365;long long y = (r / BY) * 4;r %= BY;if(r == 0) {y--;r += 366;}if(r <= 366) {long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<y + 1584<<"\n";}else {r -= 366;y += 1;y += r / 365;r %= 365;if(r == 0) {y--;r += 365;}long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<1584 + y<<"\n";}}}else {r -= 6575;long long YY = BY * 100 - 3;long long y = (r / YY) * 400;r %= YY;if(r == 0) {y--;r += 366;}else {long long YYY = BY * 25 - 1;y += (r / YYY) * 100;r %= YYY;if(r == 0) {y--;r += 365;}else {y += (r / BY) * 4;r %= BY;if(r == 0) {y--;r += 366;}else {y += r / 365;if(r / 365 == 4) {y--;r -= 365 * 3;}else {r %= 365;if(r == 0) {y--;r += 365;}}}}}if((1601 + y) % 4 == 0 && (1601 + y) % 100 != 0) {long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<y + 1601<<"\n";}else if((1601 + y) % 400 == 0) {long long x = lower_bound(month2.begin() + 1, month2.end(), r) - month2.begin();long long d = r - month2[x - 1];cout<<d<<" "<<x<<" "<<y + 1601<<"\n";}else {long long x = lower_bound(month.begin() + 1, month.end(), r) - month.begin();long long d = r - month[x - 1];cout<<d<<" "<<x<<" "<<y + 1601<<"\n";}}}}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线教育网站建设公司网站建设价格低

目录 ansible 环境安装部署 管理端安装 ansible ansible 目录结构 配置主机清单 配置密钥对验证 ansible 命令行模块 1&#xff0e;command 模块 2&#xff0e;shell 模块 3&#xff0e;cron 模块 4&#xff0e;user 模块 5&#xff0e;group 模块 6&#xff0e;co…

调用百度AI接口实现网络图片中的文字识别

之前也做过一些api调用的demo,一直是看API文档,向目标url发送请求,看看传哪些参数,接受哪些参数。 API平台:https://ai.baidu.com 这次使用HTTP-SDK文档。那么两者的区别是什么呢? API 文档告诉你服务的“功能”…

Golang|分布式搜索引擎中所使用到的设计模式 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python 语言编程技巧

Python 语言编程技巧__name__ == “__main__” 这个表达式可用于判断当前模块是最先运行的模块,还是被导入的模块。def main() -> None:...if __name__ == __main__:# 直接运行当前文件时执行。main()

kafka 常用知识点 - 指南

kafka 常用知识点 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

做神马网站快公司logo形象墙效果图

win --> cmd 右键以管理员运行 --> regedit 进入注册表 --> 找到你要删除的值的所属文件夹 --> 右键权限 -->修改为完全控制

汽车工厂网站建设wordpress布局模板

1 简单的表单校验 <!--uniapp:参考模板和字段生成页面 字段stuNumber 输入框 学号stuName 输入框 学生姓名teacher 输入框 辅导员submitDate 日期选择 填报日期morningTemperature 输入框&#xff08;数字校验一位小数&#xff09; 早上体温noonTemperature 输入框&…

长沙中小企业做网站写网站的教程

PHP CURL内存泄露的解决方法curl配置平淡无奇&#xff0c;长时间运行发现一个严重问题&#xff0c;内存泄露&#xff01;不论用单线程和多线程都无法避免&#xff01;是curl访问https站点的时候有bug&#xff01;内存泄露可以通过linux的top命令发现&#xff0c;使用php函数mem…

英语_阅读_ChatGPT_待读

What Do You Say at the Altar? Let ChatGPT Decide Molly Price and Erik Sorensen are getting married in October. 莫莉普赖斯和埃里克索伦森将在十月结婚。 AI is helping with the details. 人工智能正在帮助处…

在制作网站前 不需要急于做的工作是用html做的美食网站

CHS_01.2.1.12.1.3进程的概念、组成、特征 进程进程的概念 进程的组成——PCB进程的组成——PCB进程的组成——程序段、数据段知识滚雪球&#xff1a;程序是如何运行的&#xff1f;进程的组成进程的特征 知识回顾与重要考点 从这个小节开始 我们会正式进入第二章处理机管理相关…

首码项目推广网站网站代理公司

文章目录深度学习之卷积神经网络链式反向梯度链式法则的计算神经网络中链式法则实例二、卷积神经网络-卷积层&#xff08;一&#xff09;什么是卷积层&#xff08;二&#xff09;有什么组成受什么影响&#xff0c;有何特点卷积网络正向传播反向传播卷积和神经网络功能层深度学习…

高端网站建设 房产wordpress屏蔽右键并提示

LAG 和 LEAD函数简介 Hive 中的 LAG 和 LEAD 函数时&#xff0c;通常用于在结果集中获取同一列在前一行&#xff08;LAG&#xff09;或后一行&#xff08;LEAD&#xff09;的值。这在分析时间序列数据、计算变化率或查找趋势时非常有用。以下是这两个函数的用法示例&#xff1…

QT开发技术【ffmpeg + QAudioOutput】音乐播放器 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

长春网站建设哪里好杭州软件开发培训学校

场景描述 安装系统时可以进入安装界面&#xff0c;但是无法识别到硬盘&#xff0c;查看服务器硬件均无异常且从bios或者raid配置界面中能正常看到raid信息及硬盘信息&#xff0c;运行lspci 命令查看到服务器有raid卡&#xff0c;但是未加载驱动。 获取驱动程序模块 查看raid…

进程工具类 - C#小函数类推荐

进程工具类 - C#小函数类推荐Posted on 2025-10-06 14:51 lzhdim 阅读(0) 评论(0) 收藏 举报/***进程工具类Austin Liu 刘恒辉Project Manager and Software DesignerE-Mail: lzhdim@163.comBlog: http://lzhdi…

实用指南:React 组件异常捕获机制详解

实用指南:React 组件异常捕获机制详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

win11 为什么我的程序断网就转入导后台进程

win11 为什么我的程序断网就转入导后台进程this->lockdraw 去掉这个就好了

山东大禹建设集团网站263企业邮箱手机版登录

实验要求&#xff1a; 1.R2为ISP&#xff0c;只能配置IP 2.R1-R2之间为HDLC封装 3.R2-R3之间为PPP封装&#xff0c;pap认证&#xff0c;R2为主认证方 4.R2-R4之间为PPP封装&#xff0c;chap认证&#xff0c;R2为主认证方 5.R1、R2、R3构建MGRE&#xff0c;仅R1的IP地址固定…

深入解析:AI与区块链:数据确权与模型共享的未来

深入解析:AI与区块链:数据确权与模型共享的未来pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

国外网页设计欣赏网站做网站用哪个编程语言

上链接&#xff1a; https://download.csdn.net/download/jasonhongcn/89146520