2024.5.15晚训题解

2024-05-16 13:12
文章标签 15 题解 晚训 2024.5

本文主要是介绍2024.5.15晚训题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

毫无难度啊。

A - Trick Taking
硬模拟就行。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int n, t, c[maxn], r[maxn];
signed main(){cin >> n >> t;bool flag = 0;for(int i = 1; i <= n; i++) {cin >> c[i];if(c[i] == t) flag = 1;}int maxx1 = 0, maxx2 = 0, pos1 = -1, pos2 = -1;for(int i = 1; i <= n; i++) {cin >> r[i];if(c[i] == t && maxx1 < r[i]) maxx1 = r[i], pos1 = i;if(c[i] == c[1] && maxx2 < r[i]) maxx2 = r[i], pos2 = i;}cout << (flag ? pos1 : pos2);return 0;
}

B - Same Map in the RPG World
数据范围很小,可以直接枚举(s, t)的所有组合,判断即可。
当然码力弱的人未必能写。

#include<bits/stdc++.h>
using namespace std;
int n, m;
char a[35][35], b[35][35];
bool check(int s, int t) {bool flag = 1;for(int i = 1, j = s; i <= n; i++, j++) {if(j > n) j = 1;for(int k = t, h = 1; h <= m; k++, h++) {if(k > m) k = 1;if(a[i][h] != b[j][k]) {flag = 0;break;}}if(!flag) break;}return flag;
}
signed main(){cin >> n >> m;for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)cin >> a[i][j];for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)cin >> b[i][j];for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)if(check(i, j)) {cout << "Yes";return 0;}cout << "No";return 0;
}

C - Cross
直接枚举各个长度的十字架就完事了。
这场看起来相当暴力。

# include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
char c[maxn][maxn];
int n, m, ans[maxn];
int d[][2] = {{-1, -1}, {-1, 1}, {1,  1}, {1,  -1}};
int check(int x, int y) {int ret = 0, t = 1;while(1) {for(int i = 0; i < 4; i++) {int dx = x + d[i][0] * t, dy = y + d[i][1] * t;if(dx < 1 || dx > n || dy < 1 || dy > m) return ret;if(c[dx][dy] == '.') return ret;}ret = t;t++;}
}
signed main() {cin >> n >> m;for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)cin >> c[i][j];for(int i = 1; i <= n; i++)for(int j = 0; j < m; j++)if(c[i][j] == '#')ans[check(i, j)]++;for(int i = 1; i <= min(n, m); i++) cout << ans[i] << " ";return 0;
}

D - Cards Query Problem
典型的STL题:
对于操作1和操作2,我们可以开个vector数组,那么把数组 i i i 放入 j j j 实际上就可以用v[j].push_back(i)来搞定,输出同理,排个序就完事了。
对于操作3来说有排序和去重操作,所以我们可以用set维护。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int n, m;
vector<int> v[maxn];
set<int> s[maxn];
int main() {cin >> n >> m;for(int i = 0; i < m; i++) {int opt, x; cin >> opt >> x;if(opt == 1) {int y; cin >> y;v[y].push_back(x), s[x].insert(y);} else if(opt == 2) {sort(v[x].begin(), v[x].end());for(auto val : v[x]) cout << val << " ";cout << endl;} else {for(auto val : s[x]) cout << val << " ";cout << endl;}}return 0;
}

E - Coloring Matrix

转4次不就完事了。跟温州市赛那题毫无区别,这题甚至还给了旋转公式,代码就不放了。

这篇关于2024.5.15晚训题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995005

相关文章

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析