【传智杯】儒略历、评委打分、萝卜数据库题解
🍎 博客主页:🌙@披星戴月的贾维斯
🍎 欢迎关注:👍点赞🍃收藏🔥留言
🍇系列专栏:🌙 蓝桥杯
🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙
🍉一起加油,去追寻、去成为更好的自己!
文章目录
- 🍎1、# [传智杯 #3 练习赛] 儒略历
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 样例 #2
- 样例输入 #2
- 样例输出 #2
- 样例 #3
- 样例输入 #3
- 样例输出 #3
- 样例 #4
- 样例输入 #4
- 样例输出 #4
- 分析题意:
- 🍎2、[传智杯 #3 练习赛] 评委打分
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 分析题意:
- 🍎3、 [传智杯 #4 初赛] 萝卜数据库
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 分析题意:
- 🍎总结
提示:以下是本篇文章正文内容,下面案例可供参考
这次我们继续和大家分享一些传智杯题解,多刷题对我们来说是一件非常重要的事,坚持下去会有很多收获!
🍎1、# [传智杯 #3 练习赛] 儒略历
题目描述
在 1582 年之前,以 4 为倍数的年份为闰年。正常情况下,一年中一月到十二月的天数分别是 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 天。如果这年是闰年,那么二月则有 29 天。
但某位教皇发现这么做其实不够准确,会造成误差,因此规定从 1582 年开始,以 4 为倍数的年份,除了以 100 为倍数且不为 400 的倍数年份,才是闰年。同时为了消除误差,规定 1582 年 10 月 4 日的下一天是 1582 年 10 月 15 日,中间的日期就当作不存在了。

现在给出日期,计算这个日期到公元 1 年 1 月 1 日经过的天数。
输入格式
按照 日月年 的格式输入数据,其中日是 1 到 31 之间的整数,月是三个大写字母,年是 1 到 9999 之间的整数。保证这个日期是合法且存在的。
月份的大写字母:
- 1月:JAN
- 2月:FEB
- 3月:MAR
- 4月:APR
- 5月:MAY
- 6月:JUN
- 7月:JUL
- 8月:AUG
- 9月:SEP
- 10月:OCT
- 11月:NOV
- 12月:DEC
输出格式
输出一个整数表示答案
样例 #1
样例输入 #1
1JAN1
样例输出 #1
0
样例 #2
样例输入 #2
4OCT1582
样例输出 #2
577736
样例 #3
样例输入 #3
15OCT1582
样例输出 #3
577737
样例 #4
样例输入 #4
21NOV2020
样例输出 #4
737751
分析题意:
当初第一眼看到题目的时候,发现题目挺长的,不容易读,后面发现这题的考点是日期,觉得不会很难,但是后面发现写起来并不容易,也调试了好久。首先,在读入数据部分,我们要建立英文月份和数字月份的对应关系,而且读入没有空格,所以输入类型应该是string类型,然后我们再来分割年,月,日。而且由于题目是求经过的天数,我们最好建立一个月份对应的累计天数,比如4月对应1,2,3,4月的天数累计,这样的数组,还要有判断是否是闰年的check函数,还要特判1582 年10月4日以前的天数。来看看代码是如何实现的吧!
C++代码示例
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
string tg[15] = {"", "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL","AUG","SEP", "OCT", "NOV", "DEC"};
int a[15] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273,304, 334,365 };
bool check1(int x) //1582年前判断闰年的方式
{if(x % 4 == 0) return true;else return false;
}
bool check(int x)
{if(x % 4 == 0 && x % 100 != 0 || x % 400 == 0) return true;else return false;
}
int main ()
{string date; //把时间一次性先读入进去cin >> date;string day, month, year;if(date[1] > '9')//说明它的日期是10天以内的{day += date[0];month += date[1];month += date[2];month += date[3];}else {day += date[0];day += date[1];month += date[2];month += date[3];month += date[4];}//求年份比较简单for(int i = 3; i < date.size(); i++){if(date[i] >'0' && date[i] <= '9')year += date[i];}int m = 0, y = 0, d = 0;for(int i = 0; i < 15; i++){if(month == tg[i]){m = i;//寻找月份的映射关系break;}}y = stoi(year);d = stoi(day);int ans = 0, r = 0;//ans 是最后的结果,r是还要加的数ans += (y - 1 ) * 365;ans += d - 1;ans += a[m - 1];if(y < 1582 || y == 1582 && m < 10 || y== 1582 && m == 10 || d <= 4){for(int i = 1; i < y; i++){if(check1(i)) r++;}//1582年前判断闰年的方式}else{for(int i = 1; i < y ; i++){if(check(i)) r++;}r += 2; //这里会少2天,要加上}if(check(y) && m > 2)r++;ans += r;cout << ans << endl;return 0;
}
🍎2、[传智杯 #3 练习赛] 评委打分
题目描述
小 A 参加一个综艺节目。一共有 n ( 3 ≤ n ≤ 1 0 6 ) n(3 \le n \le 10^6) n(3≤n≤106) 名评委参与打分(分数范围是 0 到 100 的整数),每个评委依次亮出自己的得分。
为了节目效果,要求从第三个评委开始,每当第 i i i 个评委给出打分后,立刻计算出出这个选手在前 i i i 名评委的打分中,去掉一个最高分和一个最低分,剩下 i − 2 i-2 i−2 个评委的平均分,保留 2 2 2 位小数。
输入格式
第一行输入一个整数 n n n,表示评委人数。
第二行输出 n n n 个整数,表示各个评委的打分。
输出格式
输出共 n − 2 n-2 n−2 行,每行表示对应的答案。
样例 #1
样例输入 #1
6
11 45 14 19 19 81
样例输出 #1
14.00
16.50
17.33
24.25
分析题意:
这道题比较简单,就是让我们求第三个评委开始,每当后面的评委打分,给出题目想要的结果,但是这道题会卡输入,我们如果是用CIn输入的话,最好写一下快读模板。
C++代码示例
#include<bits/stdc++.h>
using namespace std;double ma= 0, mi = 110; //设置比较的最大和最小值
double sum;
int n;int main ()
{//C++关流ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n;for(int i = 1; i<=n; i++){double x;cin >> x;ma = max(ma, x);mi = min(mi, x);sum += x;if(i >= 3){printf("%.2lf\n",(sum-ma-mi)/(i-2));}}return 0;
}
🍎3、 [传智杯 #4 初赛] 萝卜数据库
题目描述
花栗鼠很喜欢偷吃生产队的大萝卜,因此花栗鼠科技大学正在研究一种新型的数据库,叫做萝卜数据库。
具体来说,它支持 k ( 1 ≤ k ≤ 100 ) k(1 \leq k \leq 100) k(1≤k≤100) 个字段,每个字段名都是整数,里面存储的数值也都是整数。
现在你支持如下操作:
-
向数据库中插入一个记录,它可能只会包含 k k k 个字段的某一部分。具体的操作格式详见“输入格式”。
-
在数据库中查询有多少条符合条件的记录。
现在你总共有 n n n 次操作( 1 ≤ n ≤ 1000 1 \;\leq n \leq 1000 1≤n≤1000),请你对每个回答操作,输出结果。
输入格式
第一行两个整数 n , k n,k n,k ,意义如题所述。
接下来的若干行,每行代表一次操作,具体如下:
-
1 p x 1 y 1 , . . . , x p y p 1\ p\ x_1\ \ y_1,...,x_p\ y_p 1 p x1 y1,...,xp yp :表示一个插入操作,其中共有 p p p 个字段,第 i i i 字段的名字是 x i x_i xi ,值为 y i y_i yi .此处我们保证 1 ≤ x i ≤ k , 1 ≤ y i ≤ 1000 1 \leq x_i \leq k, 1\leq y_i \leq 1000 1≤xi≤k,1≤yi≤1000,并且 x i , y i x_i,y_i xi,yi 均为整数。
-
2 x y m i n y m a x 2\ x\ y_{min}\ y_{max} 2 x ymin ymax:表示一次查询操作,表示查询所有满足 字段 x x x 的值在 [ y m i n , y m a x ] [y_{min},y_{max}] [ymin,ymax] 之间的记录有多少个。
输出格式
对于每个查询操作,输出一行一个整数,表示符合条件的记录个数。
样例 #1
样例输入 #1
4 5
1 2 1 2 2 4
2 2 1 5
1 2 3 5 4 6
2 4 7 8
样例输出 #1
1
0
分析题意:
这道题是考模拟,模拟题目的要求,从而求出答案。我们通过读题可以知道这道题是求我们向(数据库)里插入一些数,然后给询问,问符合某一区间的数有几个,所以对样例1,有4次操作,数据库支持5个字段, 接下来n行,第一行第一个数是1,说明是插入,接下来是表示有两个字段,表示字段1的值是2,字段2的值是4,接下来一行开头是2,表示是查询 字段2在1到5之间的有几个…
所以,我们需要有两个数组,一个存字段号,另一个存值。
C++代码示例:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, k;
int a[N], b[N]; //一个存字段号,一个存值
int c, y, d, m;
int num1, num2;
int main ()
{cin >> n >> k;while(n --){int op, t;cin >> op;if(op == 1) //表示插入{cin >> t; //表示要插入的组数for(int i = 1; i <= t; i++){cin >> c >> d; //c 表示字段号,d表示值a[num1++] = c;b[num2++] = d;}}else//查询{int ans = 0;int l, r;cin >> t >> l >> r;for(int i = 0; i < num1; i++)if(a[i] == t)if(b[i] >= l && b[i] <= r) ans++;cout << ans << endl;}}return 0;
}
🍎总结
这次和大家分享了传智杯的几题普及/普及+难度的题,希望大家读后能有所收获!
相关文章:
【传智杯】儒略历、评委打分、萝卜数据库题解
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙请不要相信胜利就像山坡上的蒲公英一样唾手…...
java基础-IO
1、基础概念 1.1、文件(File) 文件的读写可以说是开发中必不可少的部分,因为系统会存在大量处理设备上的数据,这里的设备指硬盘,内存,键盘录入,网络传输等。当然这里需要考虑的问题不仅仅是实现,还包括同步…...
Java变量理解
成员变量VS局部变量的区别 语法形式:从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰…...
西南科技大学信号与系统A实验二(信号频谱分析)
一、实验目的 1.掌握用 matlab 软件绘制信号频谱的方法; 2.进一步理解抽样定理; 3.理解傅里叶变换的性质(频移特性). 二、实验原理 (一)fft 函数的调用 matlab 提供 fft 函数来计算信号 x(n)的快速离散傅里叶变换 (FFT). z 格式:y=fft(x) 计算信号 x 的快速离散傅里叶…...
C++-youtube cherno C++视频的一些知识点
对函数的调用在汇编中对应一句call func语句,其中func是一个函数的签名(signature)对程序而言,即使只有一个文件,链接器也需要链接,因为它需要链接程序入口点(entry point)一个程序的…...
sed命令
目录 一、sed 1.sed命令选项 2.语法选项 3.sed脚本格式 4.搜索替代 5.分组后向引用 1.提取版本号: 2.提取IP地址 3.提取数字权限 6.变量 二、免交互 1.多行重定向 2.免交互脚本 总结:本章主要介绍了seq和免交互的用法及相关知识 一、sed s…...
【经验分享】开发问题记录总结(持续更新)
目录 工具开发 界面类继承某自定义界面类时,出现布局混乱或者所有控件集中在左上角? 在继承自定义界面之后,以诸如 on_xxx_clicked() 模式设计的槽函数失效了? 使用pugi接口取出文本数据后,为什么该变量无法进行字符串比较&…...
MySQL导出数据库中每个表前 3000 条数据
以下是一个 Bash 脚本,它会连接到 MySQL 数据库,获取所有表名,并对每个表导出前 3000 条数据: #!/bin/bashUSERNAME"citycard" PASSWORD"密码" DATABASE"citycard" LIMIT3000# 导出数据库结构 mys…...
Spring事件注解@EventListener【观察】
一、背景 在开发工作中,我们常常会遇到这样一种情况:完成一项任务后,需要向其他模块广播消息或通知,以触发其他事件的处理。逐个发送请求固然可行,但更好的方式是采用事件监听,它是设计模式中的发布-订阅模…...
玩转Spring中强大的spel表达式!
玩转Spring中强大的spel表达式!值得推荐的好文:https://zhuanlan.zhihu.com/p/174786047...
HTTPS攻击原理 被攻击该如何防护
简单来说,HTTPS HTTP SSL/TLS。 在 HTTP 协议中,客户端通过网络传输消息与服务器进行通信。但该消息采用明文的原始格式。坏人(攻击者)很容易窃听消息。这就是我们需要 SSL/TLS 的原因。 HTTPS是一种安全的HTTP协议,…...
【.NET Core】委托(Delegate)应用详解
【.NET Core】委托(Delegate)应用详解 文章目录 【.NET Core】委托(Delegate)应用详解一、概述二、委托(Delegate)定义三、基础委托(Delegate) - 无返回值委托四、基础委托(Delegate) - 有返回值委托五、Mu…...
【LeetCode:1457. 二叉树中的伪回文路径 | 二叉树 + DFS +回文数】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
《golang设计模式》第三部分·行为型模式-06-备忘录模式(Memento)
文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 备忘录(Memento)用于在不破坏目标对象封装特性的基础上,将目标对象内部的状态存储到外部对象中,以备之后恢复状态时使用。 1.1 角色 Originato…...
Cache学习(4):Cache分配策略Cache更新策略Cache逐出策略
Cache的数据流 常用名词 Allocation 分配Eviction 驱逐分配策略和更新策略分别为当产生Cache miss和Cache hit的时候数据流的具体行为 1 Cache分配策略(Cache Allocation Policy) Cache的分配策略是指不同情况下为数据分配Cache Line的不同行为。Cac…...
角色管理--产品经理岗
研发组织管理--角色管理--产品经理岗 定位 相对稳定和简单产品的独立产品打造者,复杂产品的辅助者 所需资质 校招新人,拥有灵性拥有基础的产品力(认知,设计,创新,推进,学习)Axur…...
SQL数据迁移实战:从产品层级信息到AB测试表
文章目录 创建表插入数据清空数据表数据迁移和筛选查询数据结论 创建表 首先,代码中定义了两个表格:dim_prod_hierarchy_info 和 app_abtest_product_info,都位于 test 数据库中。 dim_prod_hierarchy_info 表用于存储产品层级信息…...
VMware系列:VMware安装Android虚拟机
VMware系列:VMware安装Android虚拟机 一. 下载镜像这里提供了三种下载镜像方式,也就是三个下载链接,这里推荐百度网盘下载二. 使用VMware Workstation Pro 创建新的虚拟机操作系统应该可以选择任意一个,笔者只试过下图中,如果读者感兴趣可以多试几个,但笔者不保证每个都可…...
链接1:编译器驱动程序
文章目录 GNU编译器示例编译 GNU编译器 GNU编译器(GNU Compiler)是由自由软件基金会(Free Software Foundation,FSF)开发和维护的一套编译器集合。这些编译器主要用于编译各种编程语言的源代码,将其转换为…...
经典滑动窗口试题(二)
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、水果成篮1、题目讲解2、讲解算法思路3、代码实现 二、找到字符串中所有字母异位词1、题目…...
RexUniNLU可部署方案:Docker镜像封装+FastAPI服务化生产环境落地教程
RexUniNLU可部署方案:Docker镜像封装FastAPI服务化生产环境落地教程 你是不是也遇到过这样的问题:想做一个智能客服或者信息提取工具,但一看到要标注成千上万条数据就头疼?标注成本高、周期长,而且换个业务场景&#…...
Qwen3Guard-Gen-WEB快速体验:网页界面一键审核内容安全
Qwen3Guard-Gen-WEB快速体验:网页界面一键审核内容安全 1. 为什么选择Qwen3Guard-Gen-WEB? 1.1 内容安全审核的痛点 在AI应用开发过程中,内容安全审核往往成为项目落地的最后一道障碍。传统方案面临三大挑战: 技术门槛高&…...
AI Agent Harness Engineering 时代的 UX_UI 设计原则
AI Agent Harness Engineering 时代的 UX/UI 设计原则 1. 引入与连接:与AI共舞的新纪元 1.1 一个未来场景的快照 让我们先进行一个思维实验。想象一下,2027年的一个普通工作日早晨: 你醒来,卧室的智能系统已经根据你的睡眠质量和当天日程调整了室温与照明。你走进厨房,…...
VOACAP 软件:从下载安装到首次电离层传播预测实战
1. VOACAP软件初探:短波通信的"天气预报员" 第一次听说VOACAP时,我正被短波通信的频率选择问题困扰。就像渔民出海需要查看天气预报一样,短波通信也需要提前知道"电离层天气"。VOACAP就是这样一个神奇的工具——它能预测…...
从错误码到精准定位:307系列基站定位实战排障指南
1. 当你的设备突然"失联":307系列基站定位排障入门 第一次用ML307A模组调试基站定位功能时,我盯着串口助手连续跳出的126错误码整整半小时。就像在玩解谜游戏,设备明明显示网络信号满格,AT指令也返回了OK,但…...
使用 Nginx 实现负载均衡与反向代理
Nginx作为一款高性能的Web服务器和反向代理工具,凭借其轻量级、高并发的特性,成为现代架构中负载均衡与反向代理的首选方案。无论是应对突发流量,还是提升服务可用性,Nginx都能通过简洁的配置实现高效分发请求。本文将深入探讨其核…...
2026年04月11日最热门的开源项目(Github)
根据提供的榜单,这里是对各个项目的分析和趋势观察: 1. 热门语言分析 Python 是榜单中最常用的编程语言(例如:NousResearch/hermes-agent, microsoft/markitdown, OpenBMB/VoxCPM等),显示出Python在开发代…...
保姆级教程:在Ubuntu 23.10虚拟机上,从零部署Dify源码(含PostgreSQL 17与Redis配置)
保姆级教程:Ubuntu 23.10虚拟机环境下的Dify全栈部署实战 在开发者的日常工作中,本地隔离环境的搭建往往是最容易被忽视却又至关重要的环节。想象一下这样的场景:你正在为一个重要客户开发基于大语言模型的智能应用,突然某个依赖库…...
链栈(链式栈) 超详细实现(C 语言 + 逐行精讲)
前言栈(Stack) 是一种后进先出(LIFO)的线性数据结构。前面我们学习了顺序栈(数组实现),今天我们学习它的兄弟 ——链栈(链式栈)。链栈 用单链表实现的栈它完美解决了顺序…...
SparkFun AVR ISP编程库:嵌入式量产级AVR烧录实现
1. SparkFun AVR ISP 编程库深度解析:面向嵌入式量产的底层ISP烧录实现1.1 库定位与工程价值SparkFun AVR ISP Programming Library 是一个轻量级、零依赖的纯C底层编程库,专为在嵌入式主控(如Arduino兼容板)上实现对AVR微控制器&…...
