AtCoder Beginner Contest 335 A-E 题解

比赛链接:https://atcoder.jp/contests/abc335/
比赛时间:2024 年 1 月 6 日 20:00-21:40

A题:2023

标签:字符串
题意:给定一个字符串,把最后一个字符串改成 4 4 4输出。
题解:字符串最后一个字符更改输出。
代码

#include <bits/stdc++.h>
using namespace std;int main() {string s;cin >> s;s[s.size() - 1] = '4';cout << s << endl;return 0;
}

B题:Tetrahedral Number

标签:枚举
题意:给定一个整数 N N N,升序输出所有 x + y + z ≤ N x+y+z≤N x+y+zN的非负整数 ( x , y , z ) (x,y,z) (x,y,z)三元组。 ( 0 < = n < = 21 ) (0<=n<=21) (0<=n<=21)
题解:按题目要求循环输出。
代码

#include <bits/stdc++.h>
using namespace std;int main() {int n;cin >> n;for (int i = 0; i <= n; i++)for (int j = 0; j <= n; j++)for (int k = 0; k <= n; k++) {if (i + j + k <= n) {cout << i << " " << j << " " << k << endl;}}return 0;
}

C题:Loong Tracking

标签:思维、模拟
题意:平面坐标系上给定 N N N个点,编号为 1 1 1 N N N,第 i i i个部分位于坐标 ( i , 0 ) (i,0) (i,0)处。进行 Q Q Q次操作,操作分为以下两种:
1 1 1 C C C:将头部朝 C C C方向移动 1 1 1 C C C R 、 L 、 U R、L、U RLU D D D中的一个,分别表示平面坐标系上的 x x x轴正方向、 x x x轴负方向、 y y y轴正方向、 y y y轴负方向。头部移动,其他部分也会跟着移动(类似贪吃蛇)。
2 2 2 p p p:找出原来第 p p p个部分现在的坐标。
( 2 < = N < = 1 0 6 , 1 < = Q < = 2 ∗ 1 0 5 ) (2<=N<=10^6, 1<=Q<=2*10^5) (2<=N<=106,1<=Q<=2105)
题解:把头部每次移动的坐标存一下,当头部第二次移动的时候,那原来第一次移动的位置就给了第二部分,以此类推,后面移动的时候都是紧跟着的。求第 p p p个部分的时候 分两种情况,一种是已经走上了头部走过的路,根据现在 头部移动的次数 c n t cnt cnt,那么第 p p p个部分是刚走到 c n t − p + 1 cnt-p+1 cntp+1之前头部走到的位置;一种是还在 y = 0 y=0 y=0的地方,根据现在 头部移动的次数 c n t cnt cnt,那第 p p p个部分往左移动到 ( p − c n t , 0 ) (p-cnt,0) (pcnt,0)坐标。
代码

#include <bits/stdc++.h>
using namespace std;typedef long long ll;
ll n, q, op, p, cnt = 0;
ll x[200005], y[200005];int main() {char c;x[0] = 1; y[0] = 0;cin >> n >> q;for (int i = 1; i <= q; i++) {cin >> op;if (op == 1) {cin >> c;cnt++;x[cnt] = x[cnt - 1]; y[cnt] = y[cnt - 1];if (c == 'U') y[cnt]++;if (c == 'D') y[cnt]--;if (c == 'L') x[cnt]--;if (c == 'R') x[cnt]++;}else {cin >> p;if (p <= cnt) cout << x[cnt - p + 1] << " " << y[cnt - p + 1] << endl;else {cout << p - cnt << " " << 0 << endl;}}}return 0;
}

D题:Loong and Takahashi

标签:模拟
题意:给定奇数 n n n,完成蛇形填数。 ( n < = 45 ) (n<=45) (n<=45)
举个例子: n = 5 n=5 n=5

1 2 3 4 5
16 17 18 19 6
15 24 T 20 7
14 23 22 21 8
13 12 11 10 9

题解:蛇形填数 经典题,最中间改成 T T T。轮流往四个方向填数,跑到边界或者已经填过数的位置停止。
代码

#include <bits/stdc++.h>
using namespace std;int a[55][55];int main() {int n, c = 1, x = 0, y = 0;cin >> n;a[0][0] = 1;while (c < n * n) {while (y + 1 < n && !a[x][y + 1]) a[x][++y] = ++c; // 右while (x + 1 < n && !a[x + 1][y]) a[++x][y] = ++c; // 下while (y - 1 >= 0 && !a[x][y - 1]) a[x][--y] = ++c; // 左while (x - 1 >= 0 && !a[x - 1][y]) a[--x][y] = ++c; // 上}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (i == n / 2 && j == n / 2) {cout << "T ";continue;}cout << a[i][j] << " ";}cout << endl;}return 0;
}

E题:Non-Decreasing Colorful Path

标签:最短路、 d i j k s t r a dijkstra dijkstra
题意:给定一个 n n n个顶点和 m m m条边的无向图,每个顶点上有分数 a i a_i ai,求从顶点 1 1 1到顶点 n n n得分最高的路径。得分是路径中顶点分数不同的顶点数目,要保证路径上的顶点分数是不递减的(包含等于)
比如路径上顶点的分数分别为 10 10 10 20 20 20 20 20 20 30 30 30 40 40 40=> 那么得分为 4 4 4
题解:比较典型的 d i j k s t r a dijkstra dijkstra的变型题(加上约束条件),因为题目要求不递减,堆优化部分可以按每个顶点的分数从小到大排序,松弛部分操作的时候 保证是从低分数的顶点到高分数(相等也进入更新)的顶点,跑最长路;需要注意处理等于的时候,得分是顶点中分数不同的顶点数目。
代码

#include <bits/stdc++.h>
using namespace std;typedef long long ll;
ll a[200005], d[200005];
vector<ll> e[200005];
priority_queue< pair<ll, ll> > q;int main() {ll n, m;cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= m; i++) {ll u, v;cin >> u >> v;e[u].push_back(v);e[v].push_back(u);}d[1] = 1;q.push(make_pair(-a[1], 1));while (!q.empty()) {int u = q.top().second;q.pop();for (auto v: e[u]) {if (a[v] >= a[u]) {if (d[v] < d[u] + (a[v] != a[u])) {d[v] = d[u] + (a[v] != a[u]);q.push(make_pair(-a[v], v));}}}}cout << d[n];return 0;
}

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

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

相关文章

2023,程序员正式进入寒冬的一年。

是的&#xff0c;2023年的java行业如网上说的。 “行业寒冬&#xff01;&#xff01;” 后台有粉丝私信我&#xff0c;跟他同期进公司的同事&#xff0c;现在只剩下他自己了&#xff0c;并且每天有很多人来公司面试&#xff0c;很担心自己哪天就被炒了。 程序员就是这样&…

C语言:自定义类型——联合和枚举

一、联合体 1.1 联合体类型的声明 像结构体⼀样&#xff0c;联合体也是由⼀个或者多个成员构成&#xff0c;这些成员可以是不同的类型。 声明方式如下图&#xff1a; 那联合体和结构体究竟有什么区别呢&#xff1f;&#xff1f; 下面将重点讲解联合体的特点&#xff01;&am…

判断交叉编译工具是否支持C++20的标准

写个任意的测试程序hello_world 执行 arm-linux-gnueabihf-g -stdc14 main.cpp arm-linux-gnueabihf-g -stdc17 main.cpp arm-linux-gnueabihf-g -stdc20 main.cpp没报错则代表支持&#xff0c;报错则不支持.

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码&#xff0c;并对代码进行了详细的注释。最后&#xff0c;对算法的效果进行了测试。相信通过这个专栏&#xff0c;你可以对这些算法的原理及实现有深入的理解&#xff01;   如有疑问&#xf…

公司想做一套数字化管理系统,该怎么做?

引言 一个老板的心声&#xff1a;随着科技的迅猛发展&#xff0c;公司数字化已经成为提升业务竞争力不可或缺的关键因素。在这个数字时代&#xff0c;我们公司旨在顺应潮流&#xff0c;迎接挑战&#xff0c;以构建一套强大而高效的数字化管理系统为目标。通过本系统&#xff0…

linux-等保三级脚本(2)

该脚本主要是针对 CentOS Linux 7 合规基线加固的一些配置操作&#xff0c;包括创建用户、安全审计配置、入侵防范配置、访问控制配置、身份鉴别策略配置等。如果您需要在脚本中添加公司网址&#xff0c;您可以在适当的位置添加相应的内容。不过请注意&#xff0c;在实际生产环…

8路DI高速计数器,8路DO支持PWM输出,Modbus TCP模块 YL93 开关量输入输出

特点&#xff1a; ● 8路开关量输入&#xff0c;8路开关量输出 ● DI每一路都可用作计数器或者频率测量 ● DO每一路都可独立输出PWM信号 ● DI和DO都支持PNP&#xff0c;NPN切换功能 ● 支持Modbus TCP 通讯协议 ● 内置网页功能&#xff0c;可以通过网页查询电平状…

Gradle笔记

Repositories使用 repositories {mavenLocal()mavenCentral()maven {url "https://kanwan-sdk-java-public.kanwan.id/releases"content {includeGroupByRegex "id\\.kanwan.*"}}maven {url "https://kanwan-sdk-java-public.kanwan.id/snapshots&qu…

安达发|APS计划排产排程排单软件功能解析

APS计划排产排程排单软件是一种用于生产计划和排程的工具&#xff0c;它可以帮助制造企业实现高效、准确的生产计划和排程。该软件具有多种功能&#xff0c;包括可视化人机互动排产、一键式全自动排产、设备产能约束排产、模具约束排产、人员约束排产、半成品约束排产、物料齐套…

Unity | 渡鸦避难所-7 | 攻击碰撞检测

1 前言 英雄的宝剑并非只是装饰物&#xff0c;利剑出鞘时可以对怪物造成伤害。同样&#xff0c;怪物挥出铁拳时也会对英雄造成伤害。当然&#xff0c;都有同样的前提&#xff1a;在武器碰到对方的情况下&#xff0c;才会造成伤害。利用物理引擎&#xff0c;可以轻松的实现碰撞…

SparkSQL——(扩展) Cataylst

(扩展) Cataylst 优化器 RDD 和 SparkSQL 运行时的区别 RDD 的运行流程 大致运行步骤&#xff1a; 先将 RDD 解析为由 Stage 组成的 DAG, 后将 Stage 转为 Task 直接运行 问题&#xff1a; 任务会按照代码所示运行, 依赖开发者的优化, 开发者的会在很大程度上影响运行效率 解决…

图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要使用数据标注工具 Labelme 对自行车&#xff08;bike&#xff09;和摩托车&#xff08;motorcycle&#xff09;这两种训练样本进行标注&#xff0c;使用预训练模型 VGG16 作为卷积基&#xff0c;并在其之上添加了全连接…

openssl3.2 - 官方demo学习 - mac - gmac.c

文章目录 openssl3.2 - 官方demo学习 - mac - gmac.c概述笔记END openssl3.2 - 官方demo学习 - mac - gmac.c 概述 使用GMAC算法, 设置参数(指定加密算法 e.g. AES-128-GCM, 设置iv) 用key执行初始化, 然后对明文生成MAC数据 官方注释给出建议, key, iv最好不要硬编码出现在程…

【OpenCV学习笔记14】- 图像的几何变换

这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子&#xff0c;也会给出自己根据官方的例子完成的更改代码&#xff0c;同样彩蛋的实现也会结合多个知识点一起实现一些小功能&#xff0c;来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔…

Notepad++运行C语言输出乱码

方法一&#xff1a;编码-编码字符集-中文-GB2312 这时原程序中文会变成乱码&#xff0c;我是重新输入中文 重新编译执行即可 缺陷&#xff1a;重开一个程序有中文还是会显示乱码&#xff0c;需要重新设置编码&#xff0c;比较麻烦 方法二&#xff1a;设置-首选项-新建-右侧编…

[SWPUCTF 2022 新生赛]ez_rce

[SWPUCTF 2022 新生赛]ez_rce wp 题目页面&#xff1a; 这个页面真的什么都没有。 目录爆破 dirsearch -u "http://node5.anna.nssctf.cn:28677/"返回结果&#xff1a; 访问 /.gitignore 页面 提示 thinkphp 。 访问 /robots.txt 页面 发现目录&#xff1a;/NSS/…

医院住院综合服务管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 课题背景 互…

c++中超级好用的json库--json for morden c++

文章目录 json简介在线解析json的工具json for morden c简介简单使用 json简介 json是一种轻量简单的数据结构&#xff0c;常用于网络数据传输&#xff0c;相较于xml他更加简介轻量&#xff0c;相较于protobuf它的学习成本更低几乎看个十几分钟就能上手&#xff0c;因为就是一…

jQuery 正则表达式 验证表单

文章目录 简介&#xff1a;什么是正则表达式以及作用&#xff1a;●文本框内容的验证&#xff1a;代码演示示例&#xff1a; 简介&#xff1a; jQuery Form插件是一个优秀的Ajax表单插件&#xff0c;可以非常容易地、无侵入地升级HTML表单以支持Ajax。jQuery Form有两个核心方法…

【J-Flash基本使用总结】

【J-Flash基本使用总结】 VX&#xff1a;hao541022348 ■ 烧录文件■ 创建新的工程■ 烧录模式-SWD模式■ J-Flash下载程序到单片机 ■ J-Flash拼接多个hex或bin文件■ J-Flash读单片机的option byte■ J-Flash读单片机Flash数据■ 将读出来的文件用jflash烧录到其他的芯片■ 设…