尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

2020CSPS T1 儒略日题解

2020CSPS T1 儒略日题解
📅 发布时间:2026/6/18 13:12:53

这是一道超级大模拟

前后调了差不多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;
}

相关新闻

  • 调用百度AI接口实现网络图片中的文字识别
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器 - 指南
  • 实用指南:React 组件异常捕获机制详解

最新新闻

  • IT内幕16:微软中国薪资福利揭秘:为什么被称为“养老院”?
  • 如何在C++中正确地使用和操作指针?
  • 出生医学证明登报怎么办理?出生医学证明登报多少钱?(附模板+详细流程) - 叮咚办真方便
  • 国内五恒系统服务企业排行:基于资质与案例的客观盘点 - 起跑123
  • 零代码私有化:企业级AI模型工作站DLTM训推一体化平台助力企业搭建专属AI检测模型
  • 2026年符合食品厂审核的消杀公司推荐 专注菏泽食品厂/菏泽制药厂/菏泽包装厂专业虫害防治 - 速递信息

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号