Codeforces Round 957 (Div. 3)

A题:Only Pluses

思路:

数据范围小,直接暴力枚举。

code:

inline void solve() {int a, b, c; cin >> a >> b >> c;int ans = 0;for (int i = a; i <= a + 5; i ++ ) {for (int j = b; j <= b + 5; j ++ ) {for (int k = c; k <= c + 5; k ++ ) {if (i + j + k <= a + b + c + 5) {ans = max(ans, i * j * k);}}}}cout << ans << endl;return;
}

优化:

极差越小,立方体的体积越大。

inline void solve() {priority_queue<int, vector<int>, greater<int>> q;for (int i = 0; i < 3; i ++ ) {int x; cin >> x;q.push(x);}int cnt = 5;while (cnt -- ) {int p = q.top() + 1; q.pop();q.push(p);}int sum = 1;while (q.size()) {sum *= q.top(); q.pop();}cout << sum << endl;return;
}

 

B题:Angry Monk 

思路:

由题意,如果我们要将 3 和 2 进行合并,那么就要将2 全部拆成 1,再把 3 和 1进行一一合并。

显然地,我们要去拆 k - 1个,让原本的数全都变成1,然后再将1与剩下来的那一个数进行合并。

对于一个数 x ,进行拆+合并的操作次数为 x - 1 + x 次

那么,我们就知道了,剩下来的那一个数一定是最大的那一个,而将其他的数全部拆掉与其合并即可。

code:

inline void solve() {ll n, k; cin >> n >> k;vector<ll> a(k + 1);for (int i = 1; i <= k; i ++ ) cin >> a[i];sort(a.begin() + 1, a.end());ll ans = 0;for (int i = 1; i <= k - 1; i ++ ) {ans += (a[i] - 1) + a[i];}cout << ans << endl;return;
}

优化:

我们只需统计总数和最大的数即可。

inline void solve() {ll n, k; cin >> n >> k;ll sum = 0, maxv = -1;for (int i = 1; i <= k; i ++ ) {ll x; cin >> x;sum += x;maxv = max(maxv, x);}cout << (sum - maxv) * 2 - (k - 1) << endl;return;
}

 

C题:Gorilla and Permutation 

思路:

最简单的想法就是输出一个降序的排列。

但是很明显的,错了。

错在小于等于取值的情况,因为这样先取了2,再取了1,这样2的贡献是2 * 2,总的是5。

如果是先取1,再取2,这样的贡献是1 * 2 + 2 = 4 。

那么我们只要前面降序后面升序即可。

code:

inline void solve() {ll n, m, k; cin >> n >> m >> k;for (int i = n; i >= m + 1 ; i -- ) cout << i << ' ';for (int i = 1; i <= m; i ++ ) cout << i << ' ';cout << endl;return;
}

D题:Test of Love 

思路:

被卡了一下的题。

首先在水中不能跳跃,我们只能一格格移动,但是用while遍历的话肯定要超时,所以我们用pos[i]指代 i 的位置上到其后的第一个不是W的格子的位置。

我们又可以知道,在L上时,我们最优的策略一定是跳到下一个L上

因为我们能够跳跃的距离是一定的,跳到下一个L,相当于白嫖了一段距离。

如果不能跳到的话,那么我们一定是跳到最远处,不然可能会遇到C或者使得在水中的次数增加导致亏损。

所以

我们如果在W中时,只能不断向右,遇到C直接失败。

如果到了L,进行L的最优跳跃。

还要注意一开始在岸边的跳跃情况,这时候由于m小,我们可以直接遍历开头。

返回情况用cnt和k的比较就行。

code:

inline void solve() {int n, m, k; cin >> n >> m >> k;string s; cin >> s;s = " " + s + "Q";int last1 = n + 1, last2 = n + 1;vector<int> pos(n + 1);for (int i = n; i >= 1; i -- ) {if (s[i] == 'L') {pos[i] = last1;last1 = i;}if (s[i] != 'W') {last2 = i;}else {pos[i] = last2;}}function<bool(int)> check = [&](int cur) {int cnt = 0;while (cur != n + 1) {cur += 1;if (cur == n + 1) return cnt <= k;if (s[cur] == 'C') return false;else if (s[cur] == 'W') {cnt += pos[cur] - cur;cur = pos[cur] - 1;}else {if (pos[cur] - cur <= m) cur = pos[cur] - 1;else {cur = min(cur + m, n + 1) - 1;}  }}return cnt <= k;};if (m >= n + 1) cout << "YES\n";else {bool ok = false;for (int i = 0; i < m; i ++ ) {if (check(i)) {ok = true;break;}}cout << (ok ? "YES\n" : "NO\n");}return;
}

E题:Novice's Mistake 

思路:

直接遍历

我们直接遍历a和b肯定是不现实的,但是b跟位数有关系,所以我们只需遍历a,然后遍历位数即可,因为按照题意就是删去b位a的末尾字符串。

第一层遍历我们遍历a,第二层遍历我们遍历留下来的位数。

min(6, dig * a) 因为最后剩下来的不超过1e6,所以用了这个。

code:

int cal(int x) {int res = 0;while (x) res += 1, x /= 10;return res;
}
inline void solve() {int n; cin >> n;int dig = cal(n);vector<PII> res;for (int a = 1; a <= 1e4; a ++ ) {for (int i = 1; i <= min(6, dig * a); i ++ ) {string s = to_string(n);while (s.size() < i) s = s + s;while (s.size() > i) s.pop_back();int m = stoll(s);if (m == a * n - (dig * a - i) && i != dig * a) {res.push_back({a, dig * a - i});}}}cout << res.size() << endl;for (auto [x, y] : res) cout << x << ' ' << y << endl;return;
}

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

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

相关文章

qt udp 协议 详解

1.qt udp 协议链接举例 在Qt框架中&#xff0c;使用UDP协议进行通信主要依赖于QUdpSocket类。以下是一个基于Qt的UDP通信示例&#xff0c;包括UDP套接字的创建、绑定端口、发送和接收数据报的步骤。 1. 创建UDP套接字 首先&#xff0c;需要创建一个QUdpSocket对象。这通常在…

BM42:混合搜索的新基准 - Qdrant

在过去的 40 年里&#xff0c;BM25 一直是搜索引擎的标准。它是一种简单但功能强大的算法&#xff0c;已被许多搜索引擎使用&#xff0c;包括 Google、Bing 和 Yahoo。 虽然看起来向量搜索的出现会削弱其影响力&#xff0c;但效果并不明显。目前最先进的检索方法试图将 BM25 与…

python库(11):Box库简化字典和对象之间的转换

1Box库简介 Box是一个Python库&#xff0c;它提供了一种将数据封装在字典和列表中的方式&#xff0c;同时提供了一些额外的功能&#xff0c;比如数据验证、默认值设置等。这使得Box库非常适合用于配置管理、数据传输对象&#xff08;DTO&#xff09;的创建&#xff0c;以及任何…

sqlmap使用之-post注入、head注入(ua、cookie、referer)

1、post注入 1.1、方法一&#xff0c;通过保存数据包文件进行注入 bp抓包获取post数据 将数据保存到post.txt文件 加上-r指定数据文件 1.2、方法二、通过URL注入 D:\Python3.8.6\SQLmap>python sqlmap.py -u "http://localhost/login.php" --data "userna…

替换:show-overflow-tooltip=“true“ ,使用插槽tooltip,达到内容可复制

原生的show-overflow-tooltip“true” 不能满足条件&#xff0c;使用插槽自定义编辑&#xff1b; 旧code <el-table-column prop"reason" label"原因" align"center" :show-overflow-tooltip"true" /> <el-table-column pro…

如何预防网站数据泄露

如何预防网站数据泄露?在数字化浪潮中&#xff0c;网站不仅是企业展示形象与服务的窗口&#xff0c;更是数据存储与传输的枢纽。随着网络攻击技术的日益复杂&#xff0c;网站数据泄露的风险也随之攀升。一旦敏感数据如客户信息、财务记录等被不法分子窃取&#xff0c;企业将面…

压缩文件的解析方式

Java中我们用ZipInputStream和ZipOutputStream来完成对zip文件和rar文件的读写 I /O流&#xff1a; Input:输入&#xff0c;通过“输入流”进行文件的读取操作 output:输出&#xff0c;通过“输出流”进行文件的写入操作 一、将压缩包解压缩 1.解压缩.zip格式文件&#xf…

微信小程序毕业设计-汽车维修项目管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

NoSQL 之Redis集群模式

一&#xff1a;Redis集群方式 Redis有三种模式&#xff1a;分别是主从复制、哨兵模式、Cluster 1&#xff1a;主从模式: 主从复制是高可用Redis的基础&#xff0c;哨兵和群集都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的…

netscaler LDAP+RADIUS传统的双因素认证方式(之一)

如果使用传统的双因素认证方式&#xff0c;可以通过在Citrix ADC (NetScaler) 13.1上配置Gateway Virtual Server来实现LDAP和RADIUS的双因素认证。当前配置方式&#xff0c;采用Cateway vServer两个Basic Authtication Policy方式实现&#xff0c;以下是详细步骤&#xff1a; …

【码题集】习题

目录 史莱姆融合 松鼠接松果 新月轩就餐 史莱姆融合 根据题意就是一道集合合并的题&#xff0c;所以要用并查集&#xff0c;不过最后我们要输出整个序列&#xff0c;所以要在合并的时候维护一个链表&#xff0c;以便最终合并成一个大集合的时候&#xff0c;输出整个链表就是…

针对不支持AJAX异步查询的虚拟空间做跨站点查询

最近在做一个ASPACCESS的企业小站&#xff0c;因为有中文、英文版分开不同空间不同域名的需求。原构想用AJAX做异步查询相关质保数据&#xff0c;但上线了才发现新网的虚拟空间不支持AJAX异步&#xff0c;咨询客服后也没有效的方法。后来想到&#xff1a;远程JS应该是每天的&am…

Kotlin Misk Web框架

Kotlin Misk Web框架 1 添加依赖1.1 build.gradle.kts1.2 settings.gradle.kts1.3 gradle.properties 2 请求接口3 程序模块4 主服务类5 测试结果 Misk 是由 Square 公司开发的一个开源的多语言服务器框架&#xff0c;主要用于构建微服务。它主要使用 Kotlin 语言&#xff0c;但…

UGC与AI引领的下一个10年,丝芭传媒已经准备好

丝芭传媒最近传来的消息&#xff0c;都跟技术相关。 基于自研AI大模型“Paro&#xff08;心乐舞河&#xff09;”的AIGPT及AIGC生成工具APP“鹦鹉人”开启用户内测。2023年3月技术测试的图形化智能社交基座“美踏元宇宙”&#xff0c;也将开放首轮用户内测。 此外&#xff0c…

Vue 3中 watch 和 watchEffect的区别?

​ 在 Vue 3 中&#xff0c;响应式系统允许我们声明性的绑定数据和 DOM&#xff0c;当数据变化时&#xff0c;DOM 也会自动更新。为了实现这一点&#xff0c;Vue 提供了特殊的 API&#xff0c;其中包括 reactive 和 ref&#xff0c;用于分别创建响应式对象和响应式基本类型值。…

【linux】log 保存和过滤

log 保存 ./run.sh 2>&1 | tee -a /home/name/log.txt log 过滤 import os import re# Expanded regular expression to match a wider range of error patterns error_patterns re.compile(# r(error|exception|traceback|fail|failed|fatal|critical|warn|warning…

notes for datawhale 2th summer camp NLP task1

//I wrote this note in obsidian and copied it here. The strange format in this note is due to lack of obsidian plugins. tags: AI-studyML status: done 目标&#xff1a;跑通baseline&#xff0c;体验NLP模型解决问题的流程&#xff0c;基本了解赛题要求&#xff0c;…

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

第31天&#xff0c;贪心最后一节(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解&#xff1a;代码随想录合并区间 视频讲解&#xff1a;手撕合并区间 题目&#xf…

高效图纸管理:彩虹图纸管理软件助您一臂之力

高效图纸管理&#xff1a;彩虹图纸管理软件助您一臂之力 在制造业的激烈竞争中&#xff0c;高效图纸管理是企业提升竞争力和降低成本的关键。然而&#xff0c;传统的图纸管理方式往往存在效率低下、信息混乱等问题。此时&#xff0c;彩虹图纸管理软件凭借其卓越的性能和丰富的功…

一个vue页面复用方案

前言 问大家一个问题&#xff0c;曾经的你是否也遇到过&#xff0c;一个项目中有好几个页面长得基本相同&#xff0c;但又差那么一点&#xff0c;想用 vue extends 继承它又不能按需继承html模板部分&#xff0c;恰好 B 页面需要用的 A 页面 80% 的模板&#xff0c;剩下的 20%…