【传智杯】儒略历、评委打分、萝卜数据库题解
🍎 博客主页:🌙@披星戴月的贾维斯
🍎 欢迎关注:👍点赞🍃收藏🔥留言
🍇系列专栏:🌙 蓝桥杯
🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙
🍉一起加油,去追寻、去成为更好的自己!
文章目录
- 🍎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、题目…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
