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

相关文章

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. 将日期转换为二进制表示 思路分析

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-