CSDN第17次竞赛题解与总结

news2024/11/20 14:27:30

前言

临近期末考,博主时间较少,本文质量可能不高,请见谅。

在这里插入图片描述2022/12/21 19:00~21:00 CSDN第17次竞赛开考

本场竞赛由「清华大学出版社 & CSDN」联合主办。

《算法竞赛》 本书解析了算法竞赛考核的数据结构、算法;组织了每个知识点的理论解析和经典例题;给出了简洁精要的模板代码;通过明快清晰的文字、透彻的图解,实现了较好的易读性。点击了解更多详情。

博主因为有部分细节的错误,只拿到90分,喜提帆布包

T1判断胜负

已知两个字符串A,B。 连续进行读入n次。 每次读入的字符串都为A|B。 输出读入次数最多的字符串。

分析

送分题,直接统计A,B出现的数量,最后比较输出即可

#include<bits/stdc++.h>
using namespace std;
string s[1001];
int a,b;
int main(){
	int n;
	cin >> n;
	for(int i=1;i<=n;i++){
		cin >> s[i];
		if(s[i] == s[1]) a++;
		else b++;
	}
	if(a > b) cout << s[1];
	else if(a == b) cout << "dogfall";
	else for(int i=2;i<=n;i++)
	if(s[i] != s[1]){
		cout << s[i];
		return 0;
	}
	return 0;
}

T2买铅笔

老师需要去商店买n支铅笔作为小朋友们参加编程比赛的礼物。她发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。 商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋 友们发礼物。 现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱

分析

小学数学题,总共n人,对于共a只铅笔,价值b元的一包铅笔,需要的价钱为:
⌈ n / a ⌉ ∗ b ⌈n/a⌉*b n/ab
比较找出最小值即可

#include<bits/stdc++.h>
using namespace std;
int n,ans=900000000;
int a[4],b[4];
int main(){
	cin >> n;
	for(int i=1;i<=3;i++){
		cin >> a[i] >> b[i];
		ans = min(ans,int(ceil(n*1.0/a[i])*b[i]));
	}
	cout << ans;
	return 0;
}

T3拯救爱情

小艺酱走到一个花之占卜店中。 店员小Q看到小艺酱可怜的样子,允许小艺酱免费占卜一次。 花瓣占卜:

  1. 一瓣“在一起”,一瓣“不在一起”;开始的花瓣表示“在一起”。
  2. 直到最后一个花瓣落地游戏结束。
  3. 可以选择多朵花,选择撕一朵花就必须撕完。

分析

本题义不是很清楚,我根据样例和题意猜出了答案的构造方式

  • 先将所有数加起来,记作 s u m sum sum
  • s u m sum sum是奇数,直接输出
  • 否则答案为 s u m − 最小的奇数 sum-最小的奇数 sum最小的奇数
  • 特别的,如果花瓣没有奇数,直接输出0

不过这样做只能过70%,我也不知道哪里有问题,而且不止我一个人出现这种情况

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int n,a[N],minn=100000;
long long sum;
int main(){
	cin >> n;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		sum += a[i];
	}
	if(sum % 2 == 1)
		cout << sum;
	else{
		for(int i=1;i<=n;i++)
			if(a[i] % 2 == 1)
				minn = min(minn,a[i]);
		if(minn == 100000) cout << 0;
		else cout << sum-minn;
	}
	return 0;
}

T4拯救公主

在Flower Kingdom里,住着一位美丽的公主Ana,有一天Ana得了一种怪病,神医告知国王,在遥远的幽谷中有一种药
能治愈Ana, 但是神医只有一份不完整的地图,地图的描述如下:
该地图的共有3行,第一行有m列,m为奇数,第二行有m+1列,第三行有m+2列;
每一行用一个字符串表示,只有【两种字符】;‘.'表示草地,可以从它上面通过,‘*’ 表示岩石,每一行最多一个; 入口
在左上角,由于在对角线方向上,因此即使对角线两边都有岩石,但是缝隙较大,人可以通过,故人可以向八个方向行走;
真实地图是由该地图的【每一行无限循环】得到的,这种神奇的药草就生长在第x行第y列的草地上,药草可能会在岩石上;
国王决定派遣勇敢的骑士David前去寻找拯救公主的解药; 现在聪明的你是否知道David能否找到该药?

分析

本题是一道不错的思维题,由题目容易得到以下情况会无解

  • 解药这格是岩石
  • 在解药这列左方存在一列三行均为岩石

经测试,本题数据较水,枚举不会超时
所以我直接枚举是否存在一列全是岩石,不过似乎有小bug导致只能过90%,但我懒得再改了

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll T,m,x,y,z[5];
string a,b,c;
int FIND(string s){
for(unsigned int i=0;i<s.size();i++)
if(s[i] == '*') return i+1;
return 0;
}
int main(){
	cin >> T;
	while(T--){
		cin >> m >> x >> y;
		cin >> a >> b >> c;
		z[1] = FIND(a);
		z[2] = FIND(b);
		z[3] = FIND(c);
		bool flag = false;
		while(z[x] < y){
			if(z[1] == z[2] && z[2] == z[3]){
				cout << "NO\n";
				flag = true;
				break;
			}
			z[1] += m;
			z[2] += m+1;
			z[3] += m+2;
			if(z[2] - z[1] >= m) z[1] += m;
			if(z[3] - z[1] >= m) z[1] += m;
			if(z[3] - z[2] >= m+1) z[2] += m+1;
		}
		if(!flag)
			if(z[x] != y) cout << "YES\n";
			else cout << "NO\n";
		else;
	}
	return 0;
}

最后

建议官方公布一下第三题的数据

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

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

相关文章

Python基础库及机器学习笔记

1.介绍 本节将主要介绍Python中的常用第三方库。这些库都是实现了各种计算功能的开源库&#xff0c;它们极大地丰富了Python的应用场景和计算能力&#xff0c;这里主要介绍NumPy、pandas和Matplotlib三个库的基础使用。其中NumPy是Python用来进行矩阵运算、高维度数组运算的数…

jQuery Ajax

文章目录jQuery Ajax概述load()简单使用加载部分内容传递数据回调函数$.get()$.post()$.getJSON()$.getScript()jQuery Ajax 概述 Ajax&#xff0c;全称“Asynchronous JavaScript and XML”&#xff0c;即“异步的JavaScript和XML”。其核心是通过JavaScript的XMLHttpReques…

分布式开源工作流引擎有什么特点?

在竞争越来越激烈的社会中&#xff0c;拥有提质增效的办公软件&#xff0c;可以为企业带来更可观的市场价值。分布式开源工作流引擎在企业数字化发展进程中深受欢迎&#xff0c;在帮助企业提升办公效率上发挥了重要的作用。今天&#xff0c;我们就一起里盘点下分布式开源工作流…

【轻松掌握C语言】程序环境和预处理

目录 一、程序的翻译和执行环境 1、翻译环境 2、执行环境 二、预处理详解 1、预定义符号 2、#define 3、#undef 4、命令行定义 5、条件编译 6、文件包含 一、程序的翻译和执行环境 1、翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 2、执行环境&#xff0…

笔记本怎么录制屏幕?只需2分钟,快速学会

如今&#xff0c;大多数人会在笔记本电脑上使用屏幕录制功能&#xff0c;如&#xff1a;在线直播课程、在线会议、电影和电视剧等场景。笔记本怎么录制屏幕&#xff1f;事实上&#xff0c;用电脑录制视频并不像你想象的那么困难。我们每天使用的电脑都有自己的屏幕录制功能&…

高性能数据分析时代,HPDA平台需要什么样的数据存储?

在海量基因数据中进行全基因数据分析&#xff0c;了解各种疾病与DNA之间的隐秘联系&#xff1b;对海洋气候进行预测&#xff0c;利用强大的数据分析性能&#xff0c;实现分钟级的数据刷新、精准预测海洋气候&#xff1b;利用高速相机模拟人脑上亿个神经元之间联接与工作&#x…

善康医药冲刺科创板上市:计划募资13亿元,上半年亏损5000万元

近日&#xff0c;深圳善康医药科技股份有限公司&#xff08;下称“善康医药”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺上市&#xff0c;善康医药计划募资13.27亿元&#xff0c;将用于新药研发项目、创新药高端制剂生产基地建设项目、营销…

redis学习第二天

Redis事务 Redis事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令插队。 Redis事务的主要作用就是串联多个命令防止别的命令插队。 Multi、Exec、discard 从输入Multi命令开始、…

【c++基础】第六章 STL标准模板库

第六章 STL标准模板库认识STLstring字符容器库vector容器迭代器与空间配置器deque容器容器适配置list容器set容器map容器观察者设计模型认识STL STL的概述 STL采用泛型思想&#xff0c;把C中所用到的所有的数据结构&#xff0c;按照一定的标准&#xff0c;全部封装成了一个个…

虚拟机docker网络问题处理

问题 我们有2台设备&#xff0c;ip 为 172.20.30.1 172.20.30.2 &#xff0c;虚拟机上的服务需要连接这2台设备&#xff0c;网络已经做通了&#xff0c;可以正常连接虚拟机异常关闭&#xff0c;重新开启后。发现服务有些问题&#xff0c;就打算将docker服务重新部署&#xff0…

Vue后台项目的记录 (一)

一、下载模板 简洁版: https://github.com/PanJiaChen/vue-admin-template 下载下来的文件介绍 build ----index.js webpack配置文件【很少修改这个文件】 mock ----mock数据的文件夹【模拟一些假的数据mockjs实现的】&#xff0c;因为咱们实际开发的时候&#xff0c;利用的是…

STM32——FATFS文件系统

可裁剪意味着可以选择部分功能&#xff0c;减小占用的空间。 与Windows兼容意味着可以在电脑上直接读取文件。 ①底层接口&#xff0c;包括存储媒介读&#xff0f;写接口&#xff08;disk I/O&#xff09;和供给文件创建修改时间的实时时钟&#xff0c;需要我们根据平台和存储…

深度学习笔记(1)| 导数、偏导数、梯度和方向导数的理解

1. 梯度&#xff08;Gradient&#xff09;的理解 深度学习尝试在权重空间中找到一个方向&#xff0c;沿着该方向能降低损失函数的损失值。其实不需要随机寻找方向&#xff0c;因为可以直接计算出最好的方向&#xff0c;这就是从数学上计算出最陡峭的方向。这个方向就是损失函数…

单页扒手-基于Node的实现

做网站的朋友经常遇见别人的好看的页面&#xff0c;想保存到本地自己用&#xff0c;可是用以前的老办法网页另存为&#xff0c;发现很不好&#xff0c;规则不好处理&#xff0c;路径也不好处理&#xff0c;用这个网页克隆&#xff08;单页模板扒手&#xff09;就很好处理了&…

阿里「杀手锏」级语音识别模型来了!推理效率较传统模型提升10倍,已开源

阿里达摩院&#xff0c;又搞事儿了。 这两天&#xff0c;它们发布了一个全新的语音识别模型&#xff1a; Paraformer。 开发人员直言不讳&#xff1a;这是我们“杀手锏”级的作品。 ——不仅识别准确率“屠榜”几大权威数据集&#xff0c;一路SOTA&#xff0c;推理效率上相比…

Zookeeper 4 Zookeeper JavaAPI 操作 4.7 Curator API 常用操作【Watch 事件监听】

Zookeeper 【黑马程序员Zookeeper视频教程&#xff0c;快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.7 Curator API 常用操作4.7.1 Watch 事件监听4 Zookeeper JavaAPI 操作 4.7 Curator API 常用操作 4.7.1 Watch 事件监听 【基本概念】 ZooKeep…

异常见闻录-Java.lang.UnsupportedClassVersionError涨知识啦

今天有学生说自己的Eclipse的Java代码只能在新建的项目中运行&#xff0c;运行导入项目中类就报错 异常信息 java.lang.UnsupportedClassVersionError: com/demo1/Demo1Application has been compiled by a more recent version of the Java Runtime (class file version 5…

CMake入门

1. CMake的介绍&#xff1a; 当多人开发同一个项目时&#xff0c;最终要输出一个可执行文件或者共享库&#xff08;dll、so等&#xff09;&#xff0c;就可以使用cmake了 所有操作都是通过 CMakeLists.txt&#xff08;严格区分大小写&#xff09; 来完成的 ----> 简单 2. …

C51——超声波测距 函数封装和舵机代码结合

要注意舵机转动中 延时函数要放在哪里 #include "reg52.h" sbit D5 P3^7;// sbit D6 P3^6;// sbit Trig P1^5; sbit Echo P1^6; sbit sg90_con P1^1; int cnt; int jd; double time; void Delay10us() //11.0592MHz { unsigned ch…

操作系统管程-地址-重定位-内存管理与存储管理

管程的基本概念&#xff1a;为什么会出现管程&#xff1f;信号量机制的不足&#xff1a;程序编写困难、易出错解决&#xff1a;Brinch Hansen(1973)Boare(1974)方案&#xff1a;在程序设计语言中引入管程成分一种高级同步机制管程的定义&#xff1a;是一个特殊的模块有一个名字…