【蓝桥杯】2020年十一届省赛大学B组真题(共10道题) c、c++解法 1.回文日期2.字串排序3.成绩统计4.平面切分5.门牌制作6.既约分数7.蛇形填数8.七段码9.跑步锻炼10.子串分值和

您所在的位置:网站首页 蓝桥杯多会儿出成绩 【蓝桥杯】2020年十一届省赛大学B组真题(共10道题) c、c++解法 1.回文日期2.字串排序3.成绩统计4.平面切分5.门牌制作6.既约分数7.蛇形填数8.七段码9.跑步锻炼10.子串分值和

【蓝桥杯】2020年十一届省赛大学B组真题(共10道题) c、c++解法 1.回文日期2.字串排序3.成绩统计4.平面切分5.门牌制作6.既约分数7.蛇形填数8.七段码9.跑步锻炼10.子串分值和

2024-07-15 13:30| 来源: 网络整理| 查看: 265

目录

1.题目:回文日期

题目描述

输入描述

输出描述

输入输出样例

示例 1

示例 2

运行限制

题解:

2.题目:字串排序

题目描述

输入描述

输出描述

输入输出样例

示例 1

示例 2

运行限制

题解:

3.题目:成绩统计

题目描述

输入描述

输出描述

输入输出样例

示例

运行限制

题解:

4.题目:平面切分

题目描述

输入描述

输出描述

输入输出样例

示例

运行限制

题解:

5.题目:门牌制作

题目描述

运行限制

题解:

6.题目:既约分数

题目描述

运行限制

 题解:

7.题目:蛇形填数

题目描述

运行限制

 题解:

8.题目:七段码

题目描述

运行限制

题解:

1.

2.

9.题目:跑步锻炼

题目描述

运行限制

题解:

10.题目:子串分值和

题目描述

输入描述

输出描述

输入输出样例

示例 1

运行限制

题解:

1.题目:回文日期 题目描述

在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。

牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。

牛牛认为,一个日期是回文的,当且仅当表示这个日期的 8 位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存在的日期是回文的。

提示:

一个 8 位数字是回文的,当且仅当对于所有的 i (1≤i≤8)i (1≤i≤8) 从左向右数的第 ii 个数字和第 9 - ii 个数字(即从右向左数的第 ii 个数字)是相同的。

例如:

对于 2016 年 11 月 19 日,用 8 位数字 20161119 表示,它不是回文的。

对于 2010 年 1 月 2 日,用 8 位数字 20100102 表示,它是回文的。

对于 2010 年 10 月 2 日,用 8 位数字 20101002 表示,它不是回文的。

每一年中都有 12 个月份:

其中,1,3,5,7,8,10,12 月每个月有 31 天;4,6,9,11 月每个月有 30 天;而对于 2 月,闰年时有 29 天,平年时有 28 天。

一个年份是闰年当且仅当它满足下列两种情况其中的一种:

这个年份是 4 的整数倍,但不是 100 的整数倍;

这个年份是 400 的整数倍。

例如:

以下几个年份都是闰年:2000,2012,2016。

以下几个年份是平年:1900,2011,2014。

输入描述

输入两行,每行包括一个 8 位数字。

第一行表示牛牛指定的起始日期。

第二行表示牛牛指定的终止日期。

保证 dateidatei​ 和都是真实存在的日期,且年份部分一定为 4 位数字,且首位数字不为 0。

保证 date1date1​ 一定不晚于 date2date2​。

输出描述

输出一个整数,表示在 date1date1​ 和 date2date2​ 之间,有多少个日期是回文的。

输入输出样例 示例 1

输入

20110101 20111231

输出

1

示例 2

输入

20000101 20101231

输出

2

运行限制 最大运行时间:1s最大运行内存: 256M 题解: #include #include int main(int argc, char *argv[]) { int a[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int n,m; scanf("%d",&n); getchar(); scanf("%d",&m); int ans=0; //根据月份和天数直接构造回文年份,看是是否在题目要求范围内 for(int i=1;in; if(n==4)cout> V; //从1开始枚举长度,直到len可以产生的最大逆序对大于V for(int i = 1 ; ; i ++) { if(get_max(i) >= V) { len = i; break ; } } //构造字符串ans,从i开始枚举,枚举每个位置上的字母,字典序小 for(int i = 1 ; i a>>b; if(s.find({a,b}) != s.end()) // 完全相同的直线只能操作一次 continue; res++;// 每添加一条直线,平面数都得 +1 setjd;// 记录添加一条执行,它与平面内直线的交点(一个交点只能被统计一次) for(auto it = s.begin();it !=s.end();it++) { double x = (it->second - b)*1.0 / (a - it->first); // 计算交点的坐标值(x,y) double y = a*x+b; if(a != it->first && (jd.find({x,y})==jd.end() || jd.empty())) { res += 1; jd.insert({x,y}); } } s.insert({a,b}); } cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3