Atcoder Beginner Contest 422

news/2025/10/10 9:12:54/文章来源:https://www.cnblogs.com/Tomori0505/p/19132356

A

按照题意输出即可。

/*********************************************************************程序名:作者: xAlec日期: 2025-10-01 15:45说明: sakana ~
*********************************************************************/
#include <bits/stdc++.h>
#define int long long
using namespace std;int x, y;
char ch;signed main() {cin >> x >> ch >> y;if (y < 8) cout << x << ch << y + 1 << '\n';else if (x < 8 && y == 8)cout << x + 1 << ch << 1 << '\n';
}

B

按照题意模拟即可。

/*********************************************************************程序名:作者: xAlec日期: 2025-10-01 15:45说明: sakana ~
*********************************************************************/
#include <bits/stdc++.h>
#define int long long
using namespace std;
int h, w;
char s[25][25];signed main() {scanf ("%lld %lld", &h, &w);for (int i = 1; i <= h; i++)scanf ("%s", s[i] + 1);bool flag = true;for (int i = 1; i <= h; i++) {for (int j = 1; j <= w; j++) {if (s[i][j] == '#') {int cnt = 0;cnt += (s[i - 1][j] == '#');cnt += (s[i][j - 1] == '#');cnt += (s[i + 1][j] == '#');cnt += (s[i][j + 1] == '#');if (cnt != 2 && cnt != 4) {flag = false;break;}}}if (!flag)break;}if (flag)puts("Yes");elseputs("No");return 0;
}

C

看完题第一反应是 \(\min(cnt_A,cnt_C)\),然后它 WA 了。

严肃思考后发现 \(cnt_B = 0\) 的时候需要特殊考虑,一般化就是因为三个位置要均分,最大的个数只能是 \(\lfloor\frac{n_A + n_B + n_C}{3}\rfloor\)

#include <bits/stdc++.h>
#define int long long
using namespace std;
int test;
int na, nb, nc;void sol() {scanf ("%lld %lld %lld", &na, &nb, &nc);int up = max(na, nc), down = min(na, nc);printf ("%lld\n", min(down, (na + nb + nc) / 3));
}signed main() {scanf ("%lld", &test);while (test--)sol();return 0;
}

D

读完题意可以发现,其实操作是线段树建树。由于总和均分,答案只有可能是 0/1。

#include <bits/stdc++.h>
#define int long long
using namespace std;
constexpr int MAXN = (1 << 20) + 3;
int n, K, a[MAXN], U;inline int qpow(int x, int exp) {int res = 1;for (; exp; exp /= 2) {if (exp & 1)res = res * x;x = x * x;}return res;
}void build(int l, int r, int sum) {if (l == r) {a[l] = sum;return;}int mid = (l + r) / 2;build(l, mid, sum / 2);build(mid + 1, r, sum - sum / 2);
}signed main() {scanf ("%lld %lld", &n, &K);n = qpow(2, n);build(1, n, K);for (int i = 1; i < n; i ++) {if (a[i] != a[i + 1]) {U = 1;break;}}printf ("%lld\n", U);for (int i = 1; i <= n; i++)printf ("%lld%c", a[i], " \n"[i == n]);return 0;
}

E

考虑两点 \((x_1, y_1), (x_2,y_2)\) 确定一条直线则有 \(ax_1 + by_1 + c = ax_2 + by_2 + c\),解得 \(\begin{cases}a = y_2 - y_1 \\ b = x_1 - x_2 \\ c = x_2y_1 - x_1y_2\end{cases}\)

考虑一波随机化,每次随机两个点确定一条直线来判,好像概率挺高的,高达 \(25\%\)

#include <bits/stdc++.h>
#define int long long
using namespace std;
random_device seed;
mt19937 rd(seed());
constexpr int MAXN = 5e5 + 10;
int n, a = -1, b = -1, c = -1;
pair<int,int> p[MAXN];signed main() {scanf ("%lld", &n);for (int i = 1; i <= n; i++)scanf ("%lld %lld", &p[i].first, &p[i].second);for (int _ = 1; _ <= 100; _++) {int x = rd() % n + 1, y = rd() % n + 1;// cout << x << ' ' << y << '\n';if (x != y) {int ta = p[y].second - p[x].second,tb = p[x].first - p[y].first,tc = p[y].first * p[x].second - p[x].first * p[y].second,tot = 0;for (int i = 1; i <= n; i++) tot += (ta * p[i].first + tb * p[i].second + tc == 0);if (tot >= n / 2 + 1) {a = ta, b = tb, c = tc;break;}}}if (a == -1 && b == -1 && c == -1)printf ("No\n");else printf ("Yes\n %lld %lld %lld\n", a, b, c);return 0;
}

F

对于 \(u\) 节点的 \(W_u\),如果此时从它开始还有 \(x\) 步走到目的地,则它会被计算 \(x\) 次。

考虑记 \(f_{u,x}\) 表示当前在 \(u\) 节点,还有 \(x\) 步走到目的地的燃料最小花费。有转移:\(f_{v,x - 1} = \max\{f_{u,x} + w_u \times x\}\)

答案即为每个 \(f_{i,0}\)

#include <bits/stdc++.h>
#define FASTIO
#define int long long
using namespace std;
#ifdef FASTIOstatic int ostk[33];char buf[1 << 23], *p1, *p2;#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 23, stdin), p1 == p2) ? EOF : *p1++)inline int read() {int res = 0, f = 1;char ch = getchar();while (!isdigit(ch))f = ch == '-' ? -1 : 1, ch = getchar();while (isdigit(ch))res = res * 10 + (ch ^ 48), ch = getchar();return res * f;}inline void write(int x) {int top = 0;if (x < 0)x = -x, putchar('-');do {ostk[top++] = x % 10;x /= 10;} while(x);while(top)putchar(ostk[--top] + '0');}
#endifconstexpr int MAXN = 5005;
int n, m, idx;
int head[MAXN], w[MAXN];
int f[MAXN][MAXN];
struct graph {int v, nxt;
} e[MAXN << 1];inline void addedge(int u, int v) {e[idx].v = v;e[idx].nxt = head[u];head[u] = idx++;
}signed main() {n = read();m = read();memset(head, -1, sizeof(head));for (int i = 1; i <= n; i++)w[i] = read();for (int i = 1; i <= m; i++) {int u = read(), v = read();addedge(u, v), addedge(v, u);}memset(f, 0x3f, sizeof(f));for (int u = 0; u <= n; u++)f[1][u] = 0;for (int j = n; j >= 1; j--) {for (int u = 1; u <= n; u++) {for (int i = head[u]; ~i; i = e[i].nxt) {int v = e[i].v;f[v][j - 1] = min(f[v][j - 1], f[u][j] + w[u] * j);}}}for (int i = 1; i <= n; i++)write(f[i][0]), putchar('\n');return 0;
}

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

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

相关文章

【Android】解决安卓在隐藏强大的系统栏后usb鼠标被隐藏的疑问

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

centos安装libgdiplus-6.1

centos安装libgdiplus-6.1参考:https://chat.deepseek.com/share/fhak78p0eprkm8reeh 源码:# 从Mono官方下载完整源码包 wget https://download.mono-project.com/sources/libgdiplus/libgdiplus-6.1.tar.gz tar -xz…

RapidJSON 自定义内存分配器详解与实战 - 详解

RapidJSON 自定义内存分配器详解与实战 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

完整教程:考研408计算机网络第47题(2024年)

完整教程:考研408计算机网络第47题(2024年)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

进步与现代化

线性方程组 线性无关、系数矩阵行列式、解的情况 简化行阶梯型矩阵:主元全 \(1\),所在行左侧全 \(0\),所在列剩余全 \(0\) 生成子空间:\(\langle A\rangle\),线性表出の所有向量 \(A\) 线性无关 \(\Longleftright…

2025 最新推荐!溴化锂回收公司精选榜单:含制冷机 / 溶液 / 机组回收服务商权威测评及选择指南

随着工业与商业领域溴化锂制冷设备迭代加速,老旧设备处置需求激增,但市场仍存在服务标准混乱、环保措施缺失、技术能力参差不齐等痛点。部分机构拆解流程不规范,既造成铜、铝等资源浪费,又易因溴化锂溶液泄漏引发污…

使用OpenCvSharp , Emgu.CV 手搓 视觉识别算法 以及 成果展示

举个🌰 一个培养皿里有若干条鱼苗,需要将它全部区分识别出来, 像如下图所示的小蝌蚪就是(培养皿里三个黑点是热带鱼苗,做实验用的,一毫米长) 用的是海康威视的黑白工业相机拍摄。 先讲讲思路,图片是一组庞大的…

PKC7300高频电流探头在新能源汽车车载充电机稳态电流测试中的应用方案

一、应用背景 新能源汽车车载充电机(OBC)是将外部电网电能转换为车载动力电池电能的关键部件。在工作过程中,它需要处理0-300A的电流,而其内部的高频开关电路容易产生干扰信号。因此,对电流测量的量程、高频信号捕…

质量检验知识专题讲座之六:抽样检验步骤

抽样检验步骤抽样检验是从一批产品中随机抽取部分样本进行检验,再根据样本结果判断整批产品是否合格的过程,主要步骤如下: 1)、确定抽样检验的对象和目的 明确需要检验的产品批次、检验的质量特性(如尺寸、性能、…

羡慕线段树

顺颂 YFST 板子 & 使用例 题。首先树剖,然后变成在 \(\text{dfn}\) 区间上插一个关于 \(\text{dis}\) 的一次函数。这个很神奇,一般的李超树是,在 \(x\) 轴区间上插入关于 \(x\) 的一次函数。然而这里,\(\text…

质量检验知识专题讲座之七:来料检验

来料检验(IQC)1、来料检验的定义: 来料检验是指对采购进来的原材料、部件或产品做品质确认和查核,即在供应商送原材料或部件时通过抽样的方式对品质进行检验,并最后做出判断该批产品是允收还是拒收。 来料检验是企业…

windows 10分区教程,win10自带分区教程

win10怎么分区?win10自带磁盘分区,有几个人会?win10磁盘分区 不需要任何软件,win10系统本身就有这个功能,下面开始操作 第一步 按快捷键【wins+X】的组合键,在弹出的选项中选择【磁盘管理】选项;如下图: ​​ …

巴斯勒相机:30 年工艺沉淀,重新定义机器视觉效率​

巴斯勒相机:30 年工艺沉淀,重新定义机器视觉效率​2025-10-10 08:43 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

决斗(模拟赛题目T3)分析

感觉很典,所以就记下来了。我们考虑一个非常重要的事实: - 田忌赛马对于每一个 $a_i$ 找的是第一个比他大的 $b_i$。 - 而字典序最大又需要前面的尽可能大。这似乎产生了矛盾,让这道题目看起来有点难。我们考虑不用…

Guidde:AI驱动的视频文档创建工具 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

大学C语言课摸鱼记

2025.10.10 终于开启了大学的第一节C语言课。不得不说,C语言课当早八是真抽象。 什么叫C语言理论课不在机房???什么叫开学第十周才上机学习??? C语言教材第三章才教 scanf 和 printf ,😓 太抽象了。

2025.10.10——1绿

普及+/提高- P1503 鬼子进村 原以为线段树维护最后的1,后来发现可以用二分+树状数组log(n)^2解决

gitlen中,已经提交了内容,如何回退到修改前?

在 Git 中,如果已经提交了内容并想要回退到修改前的状态,可以根据具体需求使用以下几种方法: 1. 撤销最近一次提交(保留修改内容) 如果你想撤销最近的提交,但保留工作区的修改(以便重新修改后再次提交),可以使…

HCIP-IoT/H52-111 真题详解(章节C),接入实用的技术和网络设计 /Part1

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CF1989F

思路 简单有趣的一道题。 发现操作一次不会使得 \(y=-x+b\) 和 \(x=k\) 这两条直线上的奇偶性发生改变。 两条不平行直线确定一个交点,可以直接找出原始的点。