2024睿抗机器人开发者大赛CAIP编程赛题解(c++)

题目地址(补题)

PTA | 程序设计类实验辅助教学平台

RC-u1 热҈热҈热҈

简单模拟题,没什么好说的 : 

#include<bits/stdc++.h>
using namespace std ;
const int N = 55 ;int a[N] ;int main(){int n , w ; cin >> n >> w ;for(int i=1;i<=n;i++) cin >> a[i] ;int t = w ;int x = 0 , y  = 0 ;for(int i=1;i<=n;i++){if(a[i]>=35){if(t!=4) x++ ;else y++ ;}t  = (t + 8) % 7 ;}cout << x << " " << y << endl ;
}

RC-u2 谁进线下了?

简单模拟题,没什么好说的 : 

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
int yss[21] = {0, 12, 9, 7, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0};int get(int x){return yss[x] ;
}int main(){int n ; cin >> n ;vector<int> a(21,0) ;for(int i=1;i<=n;i++){for(int j=1;j<=20;j++){int p , k ; cin >> p >> k ;a[j] += k + get(p) ;}}for(int i=1;i<=20;i++){cout << i << " " << a[i] << endl ;}return 0;
}

RC-u3 暖炉与水豚

简单模拟题,没什么好说的 (注意看清题目就ok): 

#include<bits/stdc++.h>
using namespace std ;
const int N = 1010 ;int n , m ; 
char a[N][N] ;
bool st[N][N] ;/**
wm....mw
.w..ww..
..wm.wwm
w.w....w
.m.c.m..
w.....w.
*/void f(int i , int j){for(int x=-1;x<=1;x++){for(int y=-1;y<=1;y++){int xx = i+x , yy = j + y ;if(xx>=1&&xx<=n&&yy>=1&&yy<=m) {st[xx][yy] = true ;}}}
}bool pd(int i , int j){for(int x=-1;x<=1;x++){for(int y=-1;y<=1;y++){int xx = i+x , yy = j + y ;if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]=='c') {return false ;}}}return true ;
}int main(){cin >> n >> m ;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin >> a[i][j] ;if(a[i][j]=='m') f(i,j) ;}}int cnt = 0 ;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]=='w' && !st[i][j]){for(int x=-1;x<=1;x++){for(int y=-1;y<=1;y++){	int xx = i+x , yy = j + y ;if(a[xx][yy]=='.'&&pd(xx,yy)){cout << xx << " " << yy << '\n' ;cnt ++ ;}}}}}}if(cnt==0){cout << "Too cold!" ;}return 0 ;
}

RC-u4 章鱼图的判断

1 . 先用并查集求每一个连通块的环的个数 : 

        ps : 对于每一对点 , 如果祖先相同 , 那么必定存在环,环数++ , 不同,进行union操作

2 . 对于输出yes的答案 , 记录环中一对相邻点 , 用bfs求两点距离 ,则为环的大小 ;

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) ;
using namespace std ;
const int N = 1e5+10 ;
#define endl '\n'vector<int> e[N] ;
int n , m ;
int p[N]; //存储每个点的祖宗节点
int sz[N] ;// 维护联通图中环的数量 
int find(int x) {return x == p[x] ? x : p[x] = find(p[x]);}
int a , b ;
int d[N] ;// 存距离 // 所在连通图只有一个环的时候才满足题意 
// 假设只有一个章鱼环 , a , b为环中相邻的两个点 inline void solve(){cin >> n >> m ;for(int i=1;i<=n;i++) e[i].clear() , p[i] = i , d[i] = 0 , sz[i] = 0 ;for(int i=1;i<=m;i++){ int u , v ; cin >> u >> v ;e[u].push_back(v) ; e[v].push_back(u) ;int fu = find(u) , fv = find(v) ;if(fu==fv) sz[fu]++ , a = u , b = v ; // 必定存在环 else p[fu]=fv ,sz[fv]+=sz[fu] ;// union两个点 }	int ans = 0 ; // 求章鱼环的数量 for(int i=1;i<=n;i++) if(find(i)==i&&sz[i]==1) ans ++ ;if(ans != 1) {cout << "No" << " " << ans << endl ;return ;}// 求a->b中这个环中点的数量-->题目所求// 章鱼子图 点数>=3 , 直接bfs来求 a->b的距离(不是直接两点两边的距离,这个用continue跳过)queue<int> q ;q.push(a) ;while(!q.empty()){int u = q.front() ; q.pop() ;for(int v : e[u]){if(u==a&&v==b) continue ;if(!d[v]) d[v] = d[u] + 1,q.push(v) ;}}cout << "Yes" << " " << d[b]+1 << endl ;
}int main(){IOSint _ ; cin >> _ ;while(_--) solve() ;return 0 ;
}

RC-u5 工作安排

先看赛时代码   : 

先按截止时间排序 ,然后dp ;

dp[i][j] 代表前i个任务,截止时间为j的最大值 ;

转移方程 : dp[i][j] = max(dp[i][j],dp[i-1][k]+a[i].p) ;

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) ;
using namespace std ;
#define endl '\n'
int n ;
struct Node{int t,d,p ;
};
bool cmp(Node& x , Node& y){return x.d < y.d ;
}inline void solve(){cin >> n ;int ma = 0 ;int tx = 1 ;vector<Node> a(n+1) ;for(int i=1;i<=n;i++){int x , y , z ; cin >> x >> y >> z ;if(x>y) continue ;a[tx].t = x ;a[tx].d = y ;a[tx++].p = z ;ma = max(ma , y) ;}tx -= 1 ;
//	cout << tx << endl ;sort(a.begin()+1,a.begin()+1+tx,cmp) ;vector<vector<int>> dp(tx+1,vector<int>(ma+1,0)) ;for(int i=1;i<=tx;i++){for(int j=1;j<=a[i].d;j++){dp[i][j] = max(dp[i-1][j] , dp[i][j-1]) ;int k = j - a[i].t ;if(k>=0){dp[i][j] = max(dp[i][j],dp[i-1][k]+a[i].p) ;}}}cout << dp[tx][ma] << endl ;
}int main(){IOSint _ ; cin >> _ ;while(_--){solve() ;}return 0 ;
}

ps : 这个代码爆空间了 , 丢了5分 , 正解应该是一个01背包 ; 

欢迎交流!

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

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

相关文章

【Android面试八股文】荣耀面试算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵

文章目录 1. 算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵1.1 题目描述1.2 算法实现1.2.1 步骤说明:1.2.2 算法实现1.2.3 代码实现:1.2.4 程序说明:1.2.5 示例详细讲解如何将一个矩阵顺时针旋转90度1. 算法题:输入一个N阶方…

Spring -- 三层架构

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 应用分层 介绍 在阿里的开发手册里,关于工程结构部分,定义的常见工程的应用分层结构 那么什么是应用分层呢? 应用分层是一种软件开发设计思想,他将应用程序分层N个层次.这N个层次分别负责各…

Oracle小白菜鸟从入门到精通教程

前言 Oracle公司&#xff08;甲骨文&#xff09;是全球最大的信息管理软件及服务供应商&#xff0c;成立于1977年&#xff0c;总部位于美国加州Redwood shore&#xff0c;面向全球开放oracle认证。Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财…

Hi6274 反激式20瓦电源芯片

HI6274为高性能多模式 PWM 反激式20瓦电源芯片。HI6274较少的外围元器件、较低的系统成本可设计出高性能的"无Y"开关电源。HI6274提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、过载保护、软启动、芯片过温保护、可编程输出过压保护功能…

云原生项目纪事系列 - 项目管理的鲜活事例

大规模云原生系统的新颖性、建设性和挑战性&#xff0c;吸引着许多有数学思想、哲学意识和美学观念的系统架构师&#xff0c;老模也是其中一员。 老模即是文史家庭出身&#xff0c;又有理工学业背景&#xff0c;他基于平时记录的翔实细节&#xff0c;秉持客观原则&#xff0c;使…

【Langchain大语言模型开发教程】记忆

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…

世界启动Ⅷ--AI视频制作-方案与创新

1.文本/图片生成视频顾名思义&#xff0c;就是输入一段文本描述/上传一张图片即可生成对应的视频。我们常见的Runway、Pika、NeverEnds、Pixverse、svd等都属于此类。比如runway的影视风格Pika的动漫风格NeverEnds的人像模特当然还有一些外延应用&#xff0c;例如最近比较火的阿…

【Webpack】提高打包速度

升级 webpack 版本&#xff1a;Webpack 不断更新优化打包速度&#xff0c;升级到最新版本可以获得更好的性能。 减少模块解析范围&#xff1a;通过设置resolve.modules、resolve.extensions、resolve.alias等选项&#xff0c;可以让Webpack减少查找和解析模块的范围&#xff0…

《从C/C++到Java入门指南》- 17.命令行参数

命令行参数 一直写代码的童鞋可能留意到了&#xff0c;main函数中会传入一个String args[]的字符串数组。 这个数组由JVM接收用户输入并传给main函数。 import java.util.*; public class Main {public static void main(String[] args) {for (String arg : args) {System.out…

FLINK-运行架构

为什么要学习Flink运行架构&#xff1f; 虽然现在大厂的开发工具都非常高效、只需要进行参数配置、Flink-sql写业务逻辑&#xff0c;但是在资源配置逻辑优化上不可避免需要了解底层的组件配置。面试时可能也会被问到FLINK是如何进行资源分配、作业运行的等。 以下是在学习时记录…

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图&#xff08;二D&#xff09; 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 等高线图使用filled.contour函数示例…

Python学习—open函数,json与pickle知识点,Os模块详解

目录 1. Open函数 2.json与pickle模块 json模块 1. json.dumps() 2. json.dump() 3. json.loads() 4. json.load() pickle 模块 1. pickle.dumps() 2. pickle.dump() 3. pickle.loads() 4. pickle.load() 3.Os模块 1. Open函数 在Python中&#xff0c;open() 函数…

Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作&#xff0c;本次操作需要java8的版本&#xff0c;将之前安装的java17卸…

IoTDB 分段查询语句详解:GROUP BY + 时序语义

GROUP BY 查询子句的时序语义展开&#xff0c;IoTDB 支持的分段方式总结&#xff01; 存储的数据通过分析来发挥价值&#xff0c;当一组被存储的数据通过查询得到分析后的结果时&#xff0c;这些数据才真正在数据库中实现了价值闭环。 在关系型数据库中&#xff0c;GROUP BY 子…

陀螺仪LSM6DS3TR-C的简单使用

文章目录 一、前言二、硬件1.引脚说明2.原理图 三、软件1.IIC读写函数1.1 读函数1.2 写函数 2.初始化2.1 检测设备是否存在2.2 读取LSM6DS3TRC器件ID2.3 LSM6DS3TRC重启&#xff0c;重置寄存器2.5 LSM6DS3TRC设置块数据更新2.6 LSM6DS3TRC设置加速度计的数据采样率2.7 LSM6DS3T…

剪画小程序:刷到好听的音频怎么将音频保存到手机里

在这个短视频盛行的时代&#xff0c;相信很多朋友都和我一样&#xff0c;常常会被那些精彩视频中的背景音乐深深吸引。 比如我&#xff0c;特别喜欢听歌&#xff0c;这段时间在短视频平台上刷到了好多好看的视频&#xff0c;里面的背景音乐简直绝绝子&#xff01; 那么&#x…

【数据分享】2013-2022年我国省市县三级的逐年SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000——2022年的省市县三级的逐年PM2.5数据和2013-2022年的省市县三级的逐年CO数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享的是我国2013——2022年的省…

《样式设计011:模组-瓷片区》

描述&#xff1a;在开发小程序过程中&#xff0c;发现一些不错的案例&#xff0c;平时使用也比较多&#xff0c;稍微总结了下经验&#xff0c;以下内容可以直接复制使用&#xff0c;希望对大家有所帮助&#xff0c;废话不多说直接上干货&#xff01; 一、小程序&#xff1a;模组…

TeraTerm 使用技巧

参考资料 自分がよく使うTeratermマクロによる自動ログインのやり方をまとめてみたよTera Term マクロでログインを自動化してみたTera Term のススメ 目录 简介一. 常用基础设置1.1 语言变更1.2 log设置 二. 小技巧2.1 指定host别名2.2 新开窗口2.3 设置粘贴多行命令时的行间…

【C++11】initializer_list、可变参数模板详解

目录 一、统一的列表初始化1.&#xff5b;&#xff5d;初始化2.initializer_list 二、可变模版参数1.可变模版参数简介2.模板参数包展开的方式3.示例 emplace_back 一、统一的列表初始化 1.&#xff5b;&#xff5d;初始化 在C98标准中&#xff0c;允许使用花括号{}对数组或者…