【传智杯】儒略历、评委打分、萝卜数据库题解

🍎 博客主页:🌙@披星戴月的贾维斯
🍎 欢迎关注:👍点赞🍃收藏🔥留言
🍇系列专栏:🌙 蓝桥杯
🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙
🍉一起加油,去追寻、去成为更好的自己!

文章目录

  • 🍎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(3n106) 名评委参与打分(分数范围是 0 到 100 的整数),每个评委依次亮出自己的得分。

为了节目效果,要求从第三个评委开始,每当第 i i i 个评委给出打分后,立刻计算出出这个选手在前 i i i 名评委的打分中,去掉一个最高分和一个最低分,剩下 i − 2 i-2 i2 个评委的平均分,保留 2 2 2 位小数。

输入格式

第一行输入一个整数 n n n,表示评委人数。

第二行输出 n n n 个整数,表示各个评委的打分。

输出格式

输出共 n − 2 n-2 n2 行,每行表示对应的答案。

样例 #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(1k100) 个字段,每个字段名都是整数,里面存储的数值也都是整数。

现在你支持如下操作:

  • 向数据库中插入一个记录,它可能只会包含 k k k 个字段的某一部分。具体的操作格式详见“输入格式”。

  • 在数据库中查询有多少条符合条件的记录。

现在你总共有 n n n 次操作( 1 ≤ n ≤ 1000 1 \;\leq n \leq 1000 1n1000),请你对每个回答操作,输出结果。

输入格式

第一行两个整数 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 1xik,1yi1000,并且 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;
}

🍎总结

    这次和大家分享了传智杯的几题普及/普及+难度的题,希望大家读后能有所收获!

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

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

相关文章

Vue框架学习笔记——事件scroll和wheel的区别

文章目录 前文提要滚动条滚动事件 scroll鼠标滚动事件 wheel二者不同点 前文提要 本人仅做个人学习记录&#xff0c;如有错误&#xff0c;请多包涵 滚动条滚动事件 scroll scroll事件绑定html页面中的指定滚动条&#xff0c;无论你拖拽滚动条&#xff0c;选中滚动条之后按键盘…

【深度学习】CNN中pooling层的作用

1、pooling是在卷积网络&#xff08;CNN&#xff09;中一般在卷积层&#xff08;conv&#xff09;之后使用的特征提取层&#xff0c;使用pooling技术将卷积层后得到的小邻域内的特征点整合得到新的特征。一方面防止无用参数增加时间复杂度&#xff0c;一方面增加了特征的整合度…

揭秘周杰伦《最伟大的作品》MV,绝美UI配色方案竟然藏在这里

色彩在UI设计的基本框架中占据着举足轻重的位置。实际上&#xff0c;精心挑选和组合的色彩配色&#xff0c;往往就是UI设计成功的不二法门。在打造出一个实用的UI配色方案过程中&#xff0c;我们需要有坚实的色彩理论知识&#xff0c;同时还需要擅于从生活中观察和提取灵感。以…

C++进阶篇5---番外-位图和布隆过滤器

哈希的应用 一、位图 情景&#xff1a;给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff1f;&#xff1f;&#xff1f; 看到查找元素的范围&#xff0c;暴力肯定是过不了的&#xff0c;我们要么…

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…

【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

文章目录 概要读取图像获取轮廓轮廓排序小结 概要 在图像处理中&#xff0c;经常需要进行与物体轮廓相关的操作&#xff0c;比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息&#xff0c;通常使用OpenCV的findContours函数。然而&#xff0c;一旦获得轮廓信息后&#…

Redis跳跃表

前言 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每一个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。 跳跃表支持平均O(logN)&#xff0c;最坏O(N)&#xff0c;复杂度的节点查找&#xff0c;还可以通过顺序性来批量处理节点…

城市管理实景三维:打造智慧城市的新引擎

城市管理实景三维&#xff1a;打造智慧城市的新引擎 在城市管理领域&#xff0c;实景三维技术正逐渐成为推动城市发展的新引擎。通过以精准的数字模型呈现城市真实场景&#xff0c;实景三维技术为城市决策提供了全新的思路和工具。从规划设计到交通管理&#xff0c;从环境保护到…

HOOPS Web平台助力开发3D应用,实现超大规模3D web轻量化渲染与数据格式转换!

一、包含的软件开发工具包 HOOPS Web平台帮助开发人员构建基于Web的工程应用程序&#xff0c;提供高级3D Web可视化、准确快速的CAD数据访问和3D数据发布。 HOOPS Web平台包括三个集成软件开发工具包 (SDK)&#xff1a; &#xff08;1&#xff09;Web端3D可视化引擎 HOOPSCom…

五子棋游戏

import pygame #导入pygame模块 pygame.init()#初始化 screen pygame.display.set_mode((750,750))#设置游戏屏幕大小 running True#建立一个事件 while running:#事件运行for event in pygame.event.get():if event.type pygame.QUIT:#当点击事件后退出running False #事…

什么是神经网络(Neural Network,NN)

1 定义 神经网络是一种模拟人类大脑工作方式的计算模型&#xff0c;它是深度学习和机器学习领域的基础。神经网络由大量的节点&#xff08;或称为“神经元”&#xff09;组成&#xff0c;这些节点在网络中相互连接&#xff0c;可以处理复杂的数据输入&#xff0c;执行各种任务…

【蓝桥杯】刷题

刷题网站 记录总结刷题过程中遇到的一些问题 1、最大公约数与最小公倍数 a,bmap(int,input().split())sa*bwhile a%b:a,bb,a%bprint(b,s//b)2.迭代法求平方根(题号1021) #include<stdio.h> #include<math.h> int main() {double x11.0,x2;int a;scanf("%d&…

Self-Supervised Exploration via Disagreement论文笔记

通过分歧进行自我监督探索 0、问题 使用可微的ri直接去更新动作策略的参数的&#xff0c;那是不是就不需要去计算价值函数或者critic网络了&#xff1f; 1、Motivation 高效的探索是RL中长期存在的问题。以前的大多数方式要么陷入具有随机动力学的环境&#xff0c;要么效率…

C++之模版初阶(简单使用模版)

前言 在学习C的模版之前&#xff0c;咱们先来说一说模版的概念&#xff0c;模版在我们的日常生活中非常常见&#xff0c;比如我们要做一个ppt&#xff0c;我们会去在WPS找个ppt的模版&#xff0c;我们只需要写入内容即可&#xff1b;比如我们的数学公式&#xff0c;给公式套值&…

Linux:配置Ubuntu系统的镜像软件下载地址

一、原理介绍 好处&#xff1a;从国内服务器下载APT软件&#xff0c;速度快。 二、配置 我这里配置的是清华大学的镜像服务器地址 https://mirrors.tuna.tsinghua.edu.cn/ 1、备份文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、清空sources.list ec…

软件测评中心进行安全测试有哪些流程?安全测试报告如何收费?

在当今数字化时代&#xff0c;软件安全测试是每个软件开发团队都不能忽视的重要环节。安全测试是指对软件产品进行系统、全面的安全性评测与检测的过程。它旨在发现并修复软件中存在的漏洞和安全隐患&#xff0c;以确保软件能够在使用过程中保护用户的数据和隐私不被非法访问和…

RabbitMQ 的网页界面操作说明

启动 上面给用户添加了角色和权限&#xff0c; 我们就可以登录了 先手动创建两个队列&#xff0c;然后再把这两个队列和交换机绑定&#xff0c;就可以发布消息 回到队列中看看有什么变化 队列中显示绑定了交换机 再看一下队列中发生的变化 可以看到队列中收到了信息

gitlab

Gitlab 安装git yum安装 [rootgit ~]# yum -y install git编译安装 Git官网 #安装依赖关系 [rootgit ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker # 编译安装 [rootgit ~]# tar -zxf git-2.0…

【算法】FFT-1(递归实现)(不包括IFFT)

FFT 多项式多项式乘法复数及运算导数泰勒公式及展开式欧拉公式单位根 FFTCode IFFT 多项式 我们从课本中可以知道&#xff0c;一个 n − 1 n-1 n−1 次的多项式可以写成 a 0 a 1 x a 2 x 2 a 3 x 3 ⋯ a n − 1 x n − 1 a_{0}a_{1}xa_{2}x^2a_{3}x^3\dotsa_{n-1}x^{n-…

智能优化算法应用:基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝴蝶算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…