Codeforces Round 952 (Div. 4) 题解分享

A. Creating Words

思路

模拟,交换输出即可

code

inline void solve() {string a, b; cin >> a >> b;swap(a[0], b[0]);cout << a << ' ' << b << endl;return;
}

B. Maximum Multiple Sum

思路

暴力枚举

数学不会()

code


inline void solve() {int n; cin >> n;int ans = -1, res = -1;for (int x = 2; x <= n; x ++ ) {int sum = 0;for (int i = 1; i <= n / x; i ++ ) {sum += i * x;}if (sum > res) {res = sum;ans = x;}}cout << ans << endl;return;
}

C. Good Prefixes

思路

模拟,从左到右维护前缀和和最大值即可

code

inline void solve() {int n; cin >> n;vector<ll> a(n + 1);for (int i = 1; i <= n; i ++ ) cin >> a[i];ll sum = 0, maxv = -1;int ans = 0;for (int i = 1; i <= n; i ++ ) {maxv = max(maxv, a[i]);sum += a[i];if (sum - maxv == maxv) ans += 1;}cout << ans << endl;return;
}

D. Manhattan Circle

思路

找#最多的行和列即可

code

inline void solve() {int n, m; cin >> n >> m;vector<int> col(m + 1), row(n + 1);int cur1 = 0, cur2 = 0;for (int i = 1; i <= n; i ++ ) {for (int j = 1; j <= m; j ++ ) {char tmp; cin >> tmp;if (tmp == '#') {col[j] += 1;if (col[j] > col[cur2]) cur2 = j;row[i] += 1;if (row[i] > row[cur1]) cur1 = i;}}}cout << cur1 << ' ' << cur2 << endl;return;
}

E. Secret Box

思路

题目从这里变的开始有一点意思

记一开始给的为 a,b,c

我们选取的是 x,y,z

构成的答案为 (a - x + 1) * (b - y + 1) * (c - z + 1)

其中x,y,z要小于等于对应的边

div4,还是暴力枚举的难度

我们只要sqrtx枚举x,sqrt枚举y就可以了

code

inline void solve() {ll a, b, c, v; cin >> a >> b >> c >> v;ll ans = 0;for (ll x = 1; x <= v / x; x ++ ) {if (v % x == 0) {ll i = x, s = v / i;for (ll y = 1; y <= s / y; y ++ ) {ll j = y, k = s / j;if (s % y == 0) {if (i <= a && j <= b && k <= c) {ans = max(ans, (a - i + 1) * (b - j + 1) * (c - k + 1));}swap(j, k);if (i <= a && j <= b && k <= c) {ans = max(ans, (a - i + 1) * (b - j + 1) * (c - k + 1));}}}swap(i, s);for (ll y = 1; y <= s / y; y ++ ) {ll j = y, k = s / j;if (s % y == 0) {if (i <= a && j <= b && k <= c) {ans = max(ans, (a - i + 1) * (b - j + 1) * (c - k + 1));}swap(j, k);if (i <= a && j <= b && k <= c) {ans = max(ans, (a - i + 1) * (b - j + 1) * (c - k + 1));}}}}}cout << ans << endl;return;
}

F. Final Boss

思路

一开始没想到优先队列的做法()

不过早用早cd这点都知道,那么轮次越少打的伤害越少,反之亦成立

所以可以二分答案

code

const int N = 2e5 + 9;
ll h, n;
PLL a[N];
bool check(ll x) {ll res = 0;for (int i = 1; i <= n; i ++ ) {res += a[i].first;res += (x - 1) / a[i].second * a[i].first;if (res >= h) return true;}return false;
}
inline void solve() {cin >> h >> n;for (int i = 1; i <= n; i ++ ) cin >> a[i].first;for (int i = 1; i <= n; i ++ ) cin >> a[i].second;ll l = 0, r = (ll)4e10 + 9;while (l + 1 != r) {ll mid = (l + r) >> 1;if (check(mid)) r = mid;else l = mid;}cout << r << endl;return;
}

G. D-Function

思路

进位是一件极其麻烦的事情,但是自己试过以后,发现进位就不能满足题意,输出0

那么我们只需考虑每位上的选择即可,每位上的选择数为 x // k + 1

一点点的容斥原理+快速幂

code

inline void solve() {mod = MOD;int l, r, k; cin >> l >> r >> k;ll ans = qmi(9 / k + 1, r) - qmi(9 / k + 1, l);ans = (ans + mod) % mod;cout << ans << endl;return;
}

H1. Maximize the Largest Component (Easy Version)

思路

我们都会做修改哪一行或者哪一列让总数#最多,而这题只是多了一个连通块而已。

我们首先dfs遍历每个每一个连通块,用矩形将它框起来。

矩形的每一条边即对应了遍历到此连通块的行或者列的上下界。

再利用差分将连通块的数量记录即可。

code

inline void solve() {int n, m; cin >> n >> m;vector<vector<char>> mp(n + 1, vector<char>(m + 1));vector<int> row(n + 1), col(m + 1);for (int i = 1; i <= n; i ++ ) {for (int j = 1; j <= m; j ++ ) {cin >> mp[i][j];if (mp[i][j] == '#') {row[i] += 1;col[j] += 1;}}}//for (int i = 1; i <= n; i ++ ) cout << row[i] << endl;//for (int i = 1; i <= m; i ++ ) cout << col[i] << endl;vector<vector<int>> vis(n + 1, vector<int>(m + 1));vector<ll> r(n + 3), c(m + 3);int up = 1e9, down = -1e9, left = 1e9, right = -1e9, cnt = 0;function<void(int, int)> dfs = [&](int x, int y) {if (vis[x][y]) return;vis[x][y] = 1;if (mp[x][y] != '#') return;up = min(up, x), down = max(down, x), left = min(left, y), right = max(right, y);cnt += 1;if (x - 1 >= 1) dfs(x - 1, y);if (x + 1 <= n) dfs(x + 1, y);if (y - 1 >= 1) dfs(x, y - 1);if (y + 1 <= m) dfs(x, y + 1);};for (int i = 1; i <= n; i ++ ) {for (int j = 1; j <= m; j ++ ) {if (mp[i][j] == '#' && !vis[i][j]) {dfs(i, j);r[up - 1] += cnt, r[down + 2] -= cnt;c[left - 1] += cnt, c[right + 2] -= cnt;//cerr << "cnt:" << cnt << endl;up = 1e9, down = -1e9, left = 1e9, right = -1e9, cnt = 0;}}}ll ans = 0;for (int i = 1; i <= n; i ++ ) r[i] += r[i - 1];for (int i = 1; i <= m; i ++ ) c[i] += c[i - 1];for (int i = 1; i <= n; i ++ ) {ans = max(ans, (ll)(r[i] + m - row[i]));}for (int i = 1; i <= m; i ++ ) {ans = max(ans, (ll)(c[i] + n - col[i]));}cout << ans << endl;return;
}

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

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

相关文章

python | jsondiff,一个神奇的 Python 库!

本文来源公众号“python”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;jsondiff&#xff0c;一个神奇的 Python 库&#xff01; 大家好&#xff0c;今天为大家分享一个神奇的 Python 库 - jsondiff。 Github地址&#xff1a;h…

蓝牙BLE上位机工具开发理论线索梳理_1.Win32设备(Windows 属性系统)

1.Windows 属性系统 Windows 属性系统是一个可扩展的数据定义读/写系统&#xff0c;它提供一种统一的方式来表达有关 Shell 项的元数据。 Windows Vista 及更高版本中的 Windows 属性系统使你能够存储和检索 Shell 项的元数据。 Shell 项是任何单个内容&#xff0c;例如文件、文…

韩国版AlphaFold?深度学习模型AlphaPPIMd:用于蛋白质-蛋白质复合物构象集合探索

在生命的舞台上&#xff0c;蛋白质扮演着不可或缺的角色。它们是生物体中最为活跃的分子&#xff0c;参与细胞的构建、修复、能量转换、信号传递以及无数关键的生物学功能。同时&#xff0c;蛋白质的结构与其功能密切相关&#xff0c;而它们的功能又通过与蛋白质、多肽、核苷酸…

【方法】Word文档如何添加“打开密码”?

Word文档是很常用的办公文档&#xff0c;对于重要的文档&#xff0c;不想被他人随意查看&#xff0c;或者只有指定的人可以查看&#xff0c;我们可以给Word文档设置密码保护&#xff0c;这样只有知道密码的人才可以打开文档。 下面分享两种Word文档添加“打开密码”的方法&…

uniapp上传头像并裁剪图片

第一步写上uniapp自带的选择图片button按钮 点击之后会弹出选择图片的方式 拍照或从相册选择图片后将会跳到图片裁剪 然后我们裁剪完之后点击确定在上传图片 这里是上传图片的接口 拿到本地图片 上传的话自己想以那种方式上传都可以

linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录

在Linux系统中,当你删除了HADOOP_HOME和JAVA_HOME环境变量后,它们依然指向旧目录,可能是因为这些变量在其他地方被设置了。以下是一些常见的原因和解决方法: 系统级配置文件: 检查系统级的环境变量配置文件,如/etc/profile、/etc/bashrc、/etc/environment,以及/etc/pro…

【前端面试】动态表单篇

问题&#xff1a;什么是动态表单&#xff1f; 动态表单是一种可以根据用户的输入或者选择&#xff0c;动态改变其结构和元素的表单。比如&#xff0c;当用户在一个下拉列表中选择不同的选项时&#xff0c;表单中可能会出现不同的输入框、复选框、单选按钮等。 问题&#xff1a…

新人学习笔记之(初识C语言)

一、C语言的简介 1.C语言&#xff1a;1978年1月1日美国贝尔实验室推出的一门非常哇塞计算机语言 2.计算机语言&#xff1a;人与计算机之间进行信息交流沟通的一种特殊语言 二、C语言能做什么 1.操作系统 2.驱动开发 3.引擎开发 4.游戏开发 5.嵌入式开发 三、学习C语言的好处 …

5.0 Python 函数简介

1.函数 1.1 基本定义 定义: 将一组语句的集合通过函数进行封装, 简单来说是具有一定功能的代码容器, 想要执行这些语句, 只需要调用函数的名称即可. 特性: * 1. 可重复使用, 减少代码冗余. * 2. 组织结构清晰, 可读性增强. * 3. 可扩展性提高, 便于维护. 1.2 使用规则 函…

oracle块跟踪

1.查询块跟踪 select status,filename,bytes from v$block_change_tracking;2.打开块跟踪 ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE /home/oracle/block_change_tracking.log;3.关闭块跟踪 ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;4.解释 Oracle数据…

LabVIEW开发指针式压力仪表图像识别

系统利用LabVIEW编程实现对指针式压力仪表的读取&#xff0c;通过相机、光源、固定支架等硬件捕捉仪表图像&#xff0c;并通过图像识别技术解析压力值。系统分为两个阶段&#xff1a;第一阶段固定相机更换仪表&#xff0c;第二阶段移动相机识别多个固定仪表。本文介绍硬件选择、…

Java | Leetcode Java题解之第141题环形链表

题目&#xff1a; 题解&#xff1a; public class Solution {public boolean hasCycle(ListNode head) {if (head null || head.next null) {return false;}ListNode slow head;ListNode fast head.next;while (slow ! fast) {if (fast null || fast.next null) {return…

空气净化器是智商税吗?空气净化器哪款品牌效果最好?

随着科技的发展和人们生活水平的提高&#xff0c;空气净化器逐渐走进千家万户。然而&#xff0c;有人认为空气净化器的实际效用被夸大&#xff0c;只是商家营销的手段&#xff0c;成为了“智商税”。那么&#xff0c;空气净化器真的有用吗&#xff1f;在众多品牌中&#xff0c;…

Unity UGUI ScrollRect 滑动显示左右箭头

目录 一、前言 二、效果 三、代码解析 EnhancedScrollRect.cs 解析 Start 方法 HandleArrowVisibility 方法 EnhancedScrollRectEditor.cs 解析 OnEnable 方法 OnInspectorGUI 方法 四、完整代码 EnhancedScrollRect.cs EnhancedScrollRectEditor.cs 五、总结 De…

Mysql开启binlog

# server-id表示单个结点的id&#xff0c;这里由于只有一个结点&#xff0c;所以可以把id随机指定为一个数&#xff0c;这里将id设置成1。若集群中有多个结点&#xff0c;则id不能相同 server-id1 # log-bin日志文件的名字为mysql-bin&#xff0c;以及其存储路径 log-bin/usr/l…

pointnet

train_classification.py 把第91行修改为自己的路径&#xff0c;就可以运行了 test_cla.py&#xff0c;需要训练完才能运行测试&#xff0c;我没训练完&#xff0c;所以报错显示我没有best.pth文件 网盘里面是我运行的训练和测试的视频&#xff0c;以及源代码&#xff0c;数…

STM32CUBEIDE使用技巧

一、创建文件 二、菜单栏和工具栏说明 三、编译/下载/仿真调试 1、编译的两种模式 Debug模式和Release模式&#xff0c;Debug模式在调试阶段时使用&#xff0c;Release模式在项目完结发给客户时使用&#xff0c;Release模式不能使用单步调试功能。 2、下载方式 下载可以在ST…

构建数字孪生微电网,实现能源系统一体化管控

图扑利用自主研发引擎 HT for Web 将 Web 智慧“双碳”微电网场景进行数字孪生&#xff0c;有效实现源网荷储一体化管控。整体场景采用了轻量化建模的方式&#xff0c;重点围绕智慧园区电网联通中的源、网、荷、储四方面的设备和建筑进行建模还原&#xff0c;为用户带来“赛博朋…

Causal Effect Identification in Uncertain Causal Networks

我们采用以下六个分类标准为: 数据模态: 观察数据: 这类数据是在没有研究人员任何干预的情况下收集的。它通常很容易获得,但由于潜在的混杂变量而带来挑战。例如,在流行病学中,由于实验的伦理限制,观察性研究很常见。参考文献[6]讨论了观察性研究中因果效应的识别和估计…

17种JMeter 逻辑控制器

前言 JMeter提供了17种逻辑控制器&#xff0c;它们各个功能都不尽相同&#xff0c;其作用域只对其子节点的sampler有效&#xff0c;作用是控制采样器的执行顺序。 控制测试计划执行过程中节点的逻辑执行顺序&#xff0c;如&#xff1a;Loop Controller、If Controller等&…