KAJIMA CORPORATION CONTEST 2025 (AtCoder Beginner Contest 394)

news/2025/2/22 21:44:26/文章来源:https://www.cnblogs.com/maburb/p/18731468

A - 22222

点击查看代码
void solve() {std::string s;std::cin >> s;int cnt = std::count(s.begin(), s.end(), '2');std::cout << std::string(cnt, '2') << "\n";
}

B - cat

点击查看代码
void solve() {int n;std::cin >> n;std::vector<std::string> s(n);for (int i = 0; i < n; ++ i) {std::cin >> s[i];}std::sort(s.begin(), s.end(), [&](std::string & a, std::string & b) {return a.size() < b.size();});for (auto & x : s) {std::cout << x;}std::cout << "\n";
}

C - Debug

题意:给你一个字符串,把\(WA\)都改成\(AC\)

从后往前做。

点击查看代码
void solve() {std::string s;std::cin >> s;int n = s.size();for (int i = n - 1; i ; -- i) {if (s[i - 1] == 'W' && s[i] == 'A') {s[i - 1] = 'A'; s[i] = 'C';}}std::cout << s << "\n";
}

D - Colorful Bracket Sequence

题意:有三种括号,问这个序列是否是合法的括号序列。

用栈存左括号,每次遇到右括号看栈顶的括号能不能和它匹配就行。

点击查看代码
void solve() {std::string s;std::cin >> s;std::map<char, char> mp;mp['['] = ']';mp['('] = ')';mp['<'] = '>';std::stack<char> stk;for (auto & c : s) {if (mp.count(c)) {stk.push(c);} else if (stk.empty() || mp[stk.top()] != c) {std::cout << "No\n";return;} else {stk.pop();}}if (stk.size()) {std::cout << "No\n";return;}std::cout << "Yes\n";
}

E - Palindromic Shortest Path

题意:给你一个邻接矩阵,权值为一个小写字母,求每个\(i, j\)的路径是回文串的最短路是多少。

建立一个正向图和一个反向图,把\(d[i][i] = 0\)\(d[i][j] = 1, s[i][j] != '-'\)入队,那么\(d[i][j]\)表示从\(i\)\(j\)的回文路径最短距离,那么它们两个一个往反图扩展,一个往正图扩展就行。

点击查看代码
void solve() {int n;std::cin >> n;std::vector<std::string> s(n);for (int i = 0; i < n; ++ i) {std::cin >> s[i];}std::vector<std::array<std::vector<int>, 26>> adj1(n), adj2(n);for (int i = 0; i < n; ++ i) {for (int j = 0; j < n; ++ j) {if (s[i][j] != '-') {adj1[i][s[i][j] - 'a'].push_back(j);adj2[j][s[i][j] - 'a'].push_back(i);}}}std::vector d(n, std::vector<int>(n, -1));std::queue<std::pair<int, int>> q;for (int i = 0; i < n; ++ i) {d[i][i] = 0;q.push({i, i});}for (int i = 0; i < n; ++ i) {for (int j = 0; j < n; ++ j) {if (i == j) {continue;}if (s[i][j] != '-') {d[i][j] = 1;q.push({i, j});}}}while (q.size()) {auto [u, v] = q.front(); q.pop();for (int i = 0; i < 26; ++ i) {for (auto & x : adj2[u][i]) {for (auto & y : adj1[v][i]) {if (d[x][y] == -1) {d[x][y] = d[u][v] + 2;q.push({x, y});}}}}}for (int i = 0; i < n; ++ i) {for (int j = 0; j < n; ++ j) {std::cout << d[i][j] << " \n"[j == n - 1];}}
}

F - Alkane

题意:给你一棵树,要求满足每个点度数要么是1要么是4且最少有一个度数是4的节点的子图中节点数最多的。

考虑树形\(dp\),记\(f[u]\)表示以\(u\)为根的子树的最大值,那么初始\(f[u] = 1\),然后\(u\)需要选至少三个子节点,然后加上一个父节点就可以满足要求,那么选\(f\)值最大的三个子节点就行,如果子节点有四个以上,则可以直接拿最大的四个更新答案,但不要更新\(f[u]\)。然后如果有至少三个节点,那么拿三个最大的子节点加一个父节点更新答案。

点击查看代码
void solve() {int n;std::cin >> n;std::vector<std::vector<int>> adj(n);for (int i = 1; i < n; ++ i) {int u, v;std::cin >> u >> v;-- u, -- v;adj[u].push_back(v);adj[v].push_back(u);}std::vector<int> f(n);int ans = 0;auto dfs = [&](auto self, int u, int fa) -> void {f[u] = 1;std::vector<int> a;for (auto & v : adj[u]) {if (v == fa) {continue;}self(self, v, u);a.push_back(f[v]);}std::sort(a.begin(), a.end(), std::greater<int>());if (a.size() >= 3) {f[u] = std::max(f[u], a[0] + a[1] + a[2] + 1);if (a.size() >= 4) {ans = std::max(ans, a[0] + a[1] + a[2] + a[3] + 1);}if (u != 0) {ans = std::max(ans, f[u] + 1);}}};dfs(dfs, 0, -1);if (ans == 0) {ans = -1;}std::cout << ans << "\n";
}

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

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

相关文章

基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真

1.课题概述基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真。利用电压外环PI调节器得到有功 电流指令值结合由负载侧电流检测 到 的无功 电流指令值 ,经由 状态解耦PI调节的电流内环控制器输出直接得到的是输出电压的指令值,用此信号作为采用控制…

【库】Coravel Schedule任务调度

Coravel 通过使高级应用程序功能(如任务/作业调度、排队、缓存、邮件(以及更多!))易于访问且易于使用,帮助开发人员快速启动并运行 .NET 应用程序。具有简单、富有表现力和直接的语法。   下面是简单的用法,通过注入Scheduler和在中间件中定义调度的实现,来完成简单的…

【库】用Rin透视Web请求

Rin 可以捕获对 ASP.NET Core 应用程序的 HTTP 请求,并为捕获的数据提供查看器。它是调试 Web 应用程序(例如,网站、API 应用)的有用工具。先看如下代码:var builder = WebApplication.CreateBuilder(args); builder.Logging.AddRinLogger(); builder.Services.AddRin(); …

【蓝桥训练记录】第 26 场 蓝桥月赛

训练情况赛后反思 这场怎么都是猜猜乐+典题,做不出来的题真的不会了 A题 显然 2025 里面有多少个 15,除法向上取整即可点击查看代码 #include <bits/stdc++.h> // #define int long long #define endl \nusing namespace std;void solve(){cout<<ceil(1.0*2025/15…

光纤三维布里渊温度和应变分布matlab模拟与仿真

1.程序功能描述 光纤三维布里渊温度和应变分布matlab模拟与仿真。其中 , 布里渊散射是光波与声波在光纤中传播时相互作用而产生的光散射过程 , 在不 同的条件下 , 布里渊散射又分别以自发散射和受激散射两种形式表现出来 。 2.测试软件版本以及运行结果展示MATLAB2022A版…

基于一阶梯度的图像亚像素位移matlab仿真,带GUI界面

1.算法运行效果图预览 (完整程序运行后无水印)2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)% --- Executes on button press in checkbox1. function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to…

Java基础学习(十六)

Java基础学习(十六):多线程 目录Java基础学习(十六):多线程概念多线程的实现方式常见成员方法线程安全问题同步代码块同步方法Lock 锁生产者消费者模式(等待唤醒机制)线程池 本文为个人学习记录,内容学习自 黑马程序员概念进程:程序的基本执行实体 线程:操作系统能够…

AXI4-Stream Data FIFO(2.0)

IP核具体设置如下,数据宽度64bit,深度32,启用了包传输。打开Example Design三个IP核和两个AXI读写模块。 clk_wiz_0是mmcm IP核,提供工作时钟,proc_sys_reset_0是系统复位 IP核,提供复位信号,axis_data_fifo是本次的仿真IP 核。 axis_data_fifo_example_master是写模块,…

DeepSeek宣布下周开源5大项目,这才是真OpenAI!

近日,DeepSeek 团队宣布将在下周连续开源 5 个项目。这一举措不仅吸引了众多开发者的目光,还在技术社区引发了热烈讨论,不少网友甚至将 DeepSeek 誉为 “真正的 OpenAI”。一、DeepSeek开源计划详情(一)开源时间与方式DeepSeek团队决定开展“OpenSourceWeek”(开源周)活…

NOIP 2024 游记 | Loser.

Loser. p.s. 本文章比较废话()Day 1 早上 6:30 被拽起来了。吃饭。出门。坐地铁。到! 华科大门,比,华师气派多了诶诶。扯了个横幅,拍照。拍照。拍照。 诶诶,怎么 7:45 就拽着我们进去了。 进考场。我怎么是第一排第一个 /jk 看见了 @Hakureireimu_cjrljpx,但是他不认识…

利用 vscode 进行远程开发

打开远程项目路径在远程服务器上安装 vscode 插件 Go、GitLens、Git History、Git Graph、MarsCode AI对于本地已经安装的插件,点击Install In SSH:xxx就能把插件安装到远程服务器对于本地没有安装的插件,直接查找插件,选中安装,即是安装到远程服务器git 不高亮显示修改行从…