蓝桥杯第十一届c++大学B组详解

目录

1.字符串排序

2.门牌制作

3.即约分数

4.蛇型填数

5.跑步锻炼

6.七段码

7.成绩统计

8.回文日期

9.字串分值和

10.平面切分


1.字符串排序

 题目解析:这个题目真没搞懂。有会的大佬教我一下谢谢。

2.门牌制作

题目解析:出过超级多这类题目,就是每位检查有2.

#include <iostream>
using namespace std;int add(int x)
{int sum = 0;while(x){int t = x % 10;if(t == 2)sum++;x /= 10;}return sum;
}int main()
{int Sum = 0;for(int i = 1; i <= 2020; i++){Sum += add(i);}cout << Sum << endl;return 0;
}

3.即约分数

 题目解析:就是求公约数==1;

#include <iostream>
using namespace std;int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}int main()
{int ans = 0;for(int i = 1; i <= 2020; i++){for(int j = 1; j <= 2020; j++){if(gcd(i, j) == 1){ans++;}}}cout << ans << endl;return 0;
}

4.蛇型填数

 题目解析:就是找规律,

第一行第一列:1

第二行第二列:1+1*4 = 5;

第三行第三列:1 + 1*4 + 2 * 4= 13;

...

所以第二十行第二十列:

1+1*4 + 2*4 + 3 *4 + ...+ 19*4;

#include <iostream>
using namespace std;int main()
{int n = 20;int sum = 1;for(int i = 0; i < 20; i++){sum += i * 4;}cout << sum << endl;return 0;
}

5.跑步锻炼

题目解析:日期类问题。

#include <iostream>
using namespace std;int ans = 0;
int Month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main()
{int year = 2000; int month = 1; int day = 1; int weekday = 6;while(1){ans += (weekday == 1 || day == 1) + 1;if(year == 2020 && month == 10 && day == 1){break;}day++;weekday = (weekday + 1) % 7;if(month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){if(day > Month[month] + 1){day = 1;month += 1;}}else if(day > Month[month]){day = 1;month += 1;}if(month == 13){month = 1;year += 1;}}cout << ans << endl;return 0;
}

6.七段码

 题目解析:将相邻的边全部放到矩阵当中,采用dfs深搜,将每种每一层进行遍历,方法进行记录并且加和。

#include <iostream>
using namespace std;int graph[7][7] = {//转化成矩阵{1,1,0,0,0,1,0},{1,1,1,0,0,0,1},{0,1,1,1,0,0,1},{0,0,1,1,1,0,0},{0,0,0,1,1,1,1},{1,0,0,0,1,1,1},{0,1,1,0,1,1,1}
};int f[7] = { 0 };
int dfs(int n, int i) 
{int sum = 1;for (int k = 0; k < n; k++){if (graph[i][k] == 1 && f[k] == 0){f[k] = 1;sum +=dfs(7, k);f[k] = 0;//回溯}}return sum;
}
int main()
{cout << dfs(7, 0) / 2;return 0;
}

7.成绩统计

 题目解析:简单统计

#include <iostream>
using namespace std;
int main()
{double a = 0;double b = 0;double c;cin >> c;int n;for (int i = 0; i < c; i++){cin >> n;if (n >= 60){a++;}if (n >= 85){b++;}}int x =(a * 100.0)/c+0.5;int y =(b * 100.0)/c+0.5;cout << x << "%" << endl << y << "%";return 0;
}

8.回文日期

题目解析:可以先找到年份在输入年份之间,再对于年份逆置变成月份和日份,并且符合真正日历时间就是一种答案。

#include<iostream>using namespace std;
int daymonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};bool check(int date)
{int year = date / 10000;int month = (date / 100) % 100;int day = date % 100;if(month < 0 || month > 12) return false;if(day ==0 || month != 2 && day > daymonth[month]) return false;if(month == 2 ){int leap = year % 100 && year % 4 == 0 || year % 400 == 0;if(day > daymonth[month] + leap) return false;}
}int main()
{int date1, date2;cin >> date1 >> date2;int ans = 0;for(int i = 1000; i <= 10000; i++){//年份范围int date = i, x = i;for(int j = 0; j < 4; j ++ )    date = date * 10 + x % 10, x /= 10;if(date1 <= date && date <= date2 && check(date)){ans++;}}cout << ans << endl;return 0;
}

9.字串分值和

题目解析: 题目意思可以用一个例子来表示:

f[a] = 1;

f[ab] = 2;

f[aba] = 1;

那么就是相同的字符就会影响贡献点。那么就要想到不把相同的字符放到一起求f[]。

axxxxaxxxxa

那么就要将再次出现的字符和前一次出现的字符之间的字符进行放到f[]求贡献点以及与长度进行相乘。

#include <iostream>
#include<cstring>
using namespace std;int num[26];
int main()
{string s;cin >> s;int len = s.size();memset(num, -1, sizeof(num));long long ans = 0;for(int i = 0; i < len; i++){ans += (long long)(i - num[s[i] - 'a']) * (len - i);num[s[i] - 'a'] = i;}cout << ans << endl;return 0;
}

10.平面切分

 题目解析:根据下面的图片可以分析出来规律。

(1)如果线是重合不增加面的个数;

(2)线相互平行就在原来基础增加一个面;

(3)相交(但是交点不重合)原来基础增加一个面;

(4)相交(焦点重合)增加一个面。

#include<bits/stdc++.h>
using namespace std;
double A[100005];
double B[100005];
double x[100005];
double y[100005];
int zll(int n)
{//进入该函数,寻找第n条直线与其他直线相交或平行的情况 int remark,num=1;//进入该函数至少加1,所以初始化为1 ,也是整体+1 for(int j=0;j<n;j++){if(A[n]==A[j]) continue;//第n条直线与前面j条平行,跳入下一次循环,因为平行只增加一个平面 remark=0;	              //若是第n条直线碰到第2条甚至更多平行的直线,不再增加新的平面 x[j]=(B[n]-B[j])/(A[j]-A[n]);//执行到这里只剩下了两种情况,一种是第n条直线与第j条直线相交产生了新的交点 y[j]=A[n]*x[n]+B[n];         //第二种是第n条直线与第j条直线相交,却交到了第j条与其它直线相交的旧交点上 for(int k=0;k<j;k++){if(x[j]==x[k]&&y[j]==y[k]){remark=1;//这是第2种情况,不再+1 }}if(remark!=1){num++;//不是第2种情况就是第1种情况,产生一个新交点我就再+1 }}return num;
}
int main(){int n,mark=0,sum=1;cin>>n; for(int i=0;i<n;i++){cin>>A[i]>>B[i];mark=0;for(int j=0;j<i;j++){if(A[i]==A[j]&&B[i]==B[j]){//遍历第i条线的前面i-1条是否重复 mark=1;break;}}if(mark==1)//只要找到重复的,直接跳到下一次循环 continue;//此时实际并没有产生新的平面 ,排除掉了唯一不增加平面的情况 if(i==0){sum=2;}else{//进入else内部每一次相加,zll()的值最少为1 sum=sum+zll(i);}}cout<<sum;return 0;
}

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

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

相关文章

NumPy进阶(二)

2. NumPy进阶(二) 2.1 Numpy数组操作 2.1.1 添加元素 numpy.append 函数在数组的末尾添加值。 追加操作会分配整个数组&#xff0c;并把原来的数组复制到新数组中 注意&#xff1a; 插入的维度要保证所有数组的长度是相同的如果没有指定轴&#xff0c;数组会被扁平处理 ndarr…

教你如何玩转副业:开启编程副业新篇章

前言 在浩瀚的编程海洋中&#xff0c;C语言以其简洁、高效、贴近硬件的特性&#xff0c;成为无数程序员心中的“白月光”。作为一位程序员&#xff0c;如果你不仅掌握了这门语言的精髓&#xff0c;更渴望通过副业来挑战自我、实现价值。那么&#xff0c;如何用C语言开启你的副…

亚信安慧AntDB:在数据的宇宙中探索无限可能

亚信安慧AntDB数据库探索出自主可控的数据库架构&#xff0c;在架构层面消除应用对特定数据库的依赖。它以其稳定可靠的性能和高度可伸缩性而备受赞誉。AntDB数据库架构通过引入创新的分布式体系结构&#xff0c;充分利用集群资源&#xff0c;实现数据的高效分布和快速存取。 …

【计算机考研】408算法大题怎么练?

先说结论&#xff1a;基础阶段学好各个数据结构与&#xff0c;重点是数组、链表、树、图。然后强化阶段突破算法提 在基础阶段&#xff0c;并不需要过于专门地练习算法。相反&#xff0c;基础阶段的重点应该放在对各种数据结构原理的深入理解上。在我个人的经验中&#xff0c;…

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

【Erlang】【RabbitMQ】Linux(CentOS7)安装Erlang和RabbitMQ

一、系统环境 查版本对应&#xff0c;CentOS-7&#xff0c;选择Erlang 23.3.4&#xff0c;RabbitMQ 3.9.16 二、操作步骤 安装 Erlang repository curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash安装 Erlang package s…

CAXA电子图版2019版 下载地址及安装教程

CAXA电子图板是一款由国内软件公司CAXA开发的专业CAD&#xff08;计算机辅助设计&#xff09;软件。它主要用于绘制和编辑各种类型的二维图纸和工程图纸&#xff0c;广泛应用于建筑、机械、电气和电子等行业。 CAXA电子图板具有以下主要功能和特点&#xff1a; 二维绘图&…

Godot 常用UI+布局容器简单介绍

文章目录 前言相关链接Canvasitem&#xff1a;画布Control&#xff1a;UI布局基类Container&#xff1a;布局容器基类AspectRatioContainer&#xff1a;伸缩居中布局BoxContainer&#xff1a;盒子布局ColorPicker:取色器 CenterContainer&#xff1a;不伸缩居中FlowContainer&a…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能接…

【RAG实践】Rerank,让大模型 RAG 更近一步

RAGRerank原理 上一篇【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人 我们介绍了什么是RAG&#xff0c;以及如何基于LLaMaIndex和Qwen1.5搭建基于本地知识库的问答机器人&#xff0c;原理图和步骤如下&#xff1a; 这里面主要包括包括三个基本步骤&#…

3.1k Star的特斯拉数据伴侣神器

微信公众号:[开源日记],分享10kStart的优质开源项目。 TeslaMate 适用于你的 Tesla 的功能强大的自托管数据记录器。 用 Elixir 编写数据存储在 Postgres 数据库使用 Grafana 进行可视化和数据分析车辆数据发布到本地 MQTT Broker GitHub数据 3.1k stars121 watching458 forks…

2023一个前端人的杂谈

酒香也怕巷子深 年底提车,回河北过年,一路总是旅游的牌子,后来去满城滑雪,随拍了几张照片,才更加感受河北的魅力。 感觉仅仅是这一抹黄昏,就让这一行物超所值了,原来那句宣传语所言非虚:这么近,那么美,周末到河北,然而我认为实际的好处,可能不止如此。 作为一个出…

记录一次hss不能防护主机的问题

场景&#xff1a;hss的控制台显示不在防护中&#xff0c;其他云主机并没有这个情况。 故障发生的时间是昨天下午15点半左右&#xff0c;运维同事做了重启网卡的操作。service network restart 排查分析&#xff1a; 于是仔细的查看日志&#xff0c;发现报错如下&#xff1a…

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …

ChatGPT与生成式AI:教育领域内新的浪潮与挑战

随着ChatGPT和其他生成式AI技术&#xff0c;如GPT-3.5、GPT-4的出现&#xff0c;我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步&#xff0c;也为学习者带来了全新的机遇和挑战。 NO.1教育变革的新浪潮 生成式AI技术&#xff0c;特别是ChatGPT&…

FPGA(Verilog)实现按键消抖

实现按键消抖功能&#xff1a; 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

[C++][C++11][六] -- [线程库]

目录 1.thread类的简单介绍2.线程对象的构造方法1.无参构造2.带参构造3.移动构造4.注意 3.thread提供的成员函数4.获取线程id5.线程函数的参数问题1.指针2.借助std::ref函数3.借助lambda表达式 6.join和detach1.join()2.detach() 7.[mutex](http://在C11中&#xff0c;Mutex总共…

无忧网络验证系统 getInfo SQL注入漏洞复现

0x01 产品简介 无忧网络验证是一套安全稳定高效的网络验证系统,基于统一核心的通用互联网+信息化服务解决方案,是为软件作者设计的一套完整免费的网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行销售、充值、登陆等操作,并且提供防破解验证功能…

c# wpf LiveCharts 饼图 简单试验

1.概要 c# wpf LiveCharts 饼图 简单试验 2.代码 <Window x:Class"WpfApp3.Window5"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…

javaScript中原型链

一、原型链 js 的对象分为普通对象和函数对象。每个对象都有__proto__ 但是只有函数对象 (非箭头函数) 才有 prototype 属性。 new的过程&#xff1a; 1、创建一个空的简单 javaScript对象 2、将空对象的 __proto__连接到该函数的 prototype 3、将函数的this指向新创建的对象…