cf-920-div3


title: cf 920 div3
date: 2024-01-17 20:10:16
tags: vp
categories: 比赛

A. Square

题目大意

给出四个坐标点,求正方形面积

解题思路

最小的最小,最大的最大。

代码实现

void solve()
{int xmax = -1e9, xmin = 1e9, ymax = -1e9, ymin = 1e9;for (int i = 0; i < 4; i++) {int x, y;cin >> x >> y;xmax = max(x, xmax);xmin = min(x, xmin);ymax = max(y, ymax);ymin = min(ymin, y);}cout << (xmax - xmin) * (ymax - ymin) << endl;
}

B. Arranging Cats

题目大意

有三种操作,求字符串 s s s 变成字符串 t t t 的最少次数

解题思路

显然,相同的不变,只需要对不同的进行操作,统计两个字符串的 1 1 1 的数量,取最多。

代码实现

void solve()
{int n; cin >> n;string a, b;cin >> a >> b;int c1 = 0, c2 = 0;for (int i = 0; i < n; i++) {if (a[i] != b[i]) {if (a[i] == '1') {++c1;}else ++c2;}}cout << max(c1, c2) << endl;
}

C. Sending Messages

题目大意

给出 n n n 条信息,电量为 f f f,每秒钟耗电量 a a a,开机关机耗电量 b b b。求出能否在电量耗尽前发完信息

解题思路

模拟实现即可,发送信息的间隔,所耗电量与关机开机耗电量进行取最小即可

代码实现

void solve()
{int n, f, a, b;cin >> n >> f >> a >> b;vector<int> m(n + 1,0);for (int i = 1; i <= n; i++) cin >> m[i];int flag = 1;for (int i = 1; i <= n; i++) {int x = min(b, (m[i] - m[i - 1]) * a);f -= x;if (f <= 0) {flag = 0;break;}}if (flag) cout << "YES" << endl;else cout << "NO" << endl;
}

D. Very Different Array

题目大意

找出 n n n a a a n n n b b b 的最大差值

解题思路

a 、 b a、b ab 数组排序,最大的和最小的匹配即可

代码实现

void solve()
{int n, m;cin >> n >> m;vector<int> a(n), b(m);for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < m; i++) cin >> b[i];sort(a.begin(), a.end());sort(b.begin(), b.end());int ans = 0;for (int i = 0; i < n; i++) ans += abs(a[n - i - 1] - b[i]);int cur = ans;for (int i = 0; i < n; i++) {cur -= abs(a[i] - b[n - i - 1]);cur += abs(a[i] - b[m - i - 1]);ans = max(ans, cur);}cout << ans << endl;
}

E. Eat the Chip

题目大意

两人在棋盘上玩游戏,按照规定的走法走,谁先能够移动到对方的当前位置获胜,否则平局

解题思路

博弈论;分情况讨论,若是 B o b Bob Bob A l i c e Alice Alice 上面,则平局;第一种情况就是,两人相差奇数行,并且列数相差小于 1 1 1 或者能够逼到墙角边界,则 A l i c e Alice Alice 获胜,否则平局;第二种情况则是偶数行,同理分析

代码实现

void solve()
{int h, w, x1, y1, x2, y2;cin >> h >> w >> x1 >> y1 >> x2 >> y2;if (x1 >= x2) {cout << "Draw" << endl;}else if ((x2 - x1) & 1) {int t = (x2 - x1 + 1) / 2;if (abs(y1 - y2) <= 1 || y2 < y1 && y1 - 1 <= t || y1 < y2 && w - y1 <= t) {cout << "Alice" << endl;}else cout << "Draw" << endl;}else {int t = (x2 - x1) / 2;if (y1 == y2 || y1 < y2 && y2 - 1 <= t || y2 < y1 && w - y2 <= t) {cout << "Bob" << endl;}else cout << "Draw" << endl;}
}

F. Sum of Progression

题目大意

给出一个数组 a a a q q q 次查询 s 、 d 、 k s、d、k sdk a s + a s + d ∗ 2 + a s + 2 ∗ d ∗ 3 + … … + a s + ( k − 1 ) ∗ d ∗ k a_s + a_{s + d} * 2 + a_{s + 2 * d} * 3 + …… + a_{s + (k - 1) * d} * k as+as+d2+as+2d3+……+as+(k1)dk 的和

解题思路

根号分治。大于 n \sqrt{n} n 直接暴力查询,间隔大;小于等于的则前缀和维护,区间查询

代码实现

int f[320][N], g[320][N];
int a[N];void solve()
{int n, q;cin >> n >> q;int wc = sqrt(n);for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= wc; i++) {for (int j = 1; j <= n; j++) {f[i][j] = (j - i >= 1 ? f[i][j - i] : 0) + (ll)a[j] * (j / i);g[i][j] = (j - i >= 1 ? g[i][j - i] : 0) + a[j];}}while (q--) {int s, d, k;cin >> s >> d >> k;int ans = 0;if (d > wc) {//暴力for (int i = 1, j = s; i <= k; i++, j += d) {ans += a[j] * i;}}else {//区间查询ans = f[d][s + (k - 1) * d] - (s - d >= 1 ? f[d][s - d] : 0);ans -= (s / d - 1) * (g[d][s + (k - 1) * d] - (s - d >= 1 ? g[d][s - d] : 0));}cout << ans << ' ';}cout << endl;
}

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

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

相关文章

始祖鸟母公司亚玛芬冲刺IPO:持续大额亏损,凸显安踏全球化野心

2024年赴美上市第一枪&#xff0c;由户外运动品牌始祖鸟母公司亚玛芬打响。 近日&#xff0c;安踏体育&#xff08;HK:02020&#xff0c;下称“安踏”&#xff09;旗下合营公司Amer Sports Holding&#xff08;Cayman&#xff09;Limited&#xff08;下称“AS Holding”&#…

Pyspark 安装(Mac M2版)

引言 本文为个人本地部署pyspark遇到的问题以及解决办法&#xff0c;包含个人的一些理解&#xff0c;仅供参考。设备&#xff1a; Mac M2 安装过程 安装HomeBrew Mac 上用来管理安装包的&#xff0c;可能早期的 Macos 自带但是起码我个人的 Mac 是需要安装的(以下安装方法个…

Jmeter-BeanShell脚本中for循环里面使用random随机数函数,每次生成的都一样

预想的是每次循环生成的随机数不一样&#xff0c;但实际使用Random函数生成的是重复的。 以下是部分原代码&#xff1a; List updateList new ArrayList(); for(Object o: fieldList){Map map new HashMap();map.put("id", o.get("id"));map.put("…

异步Merkle Tree

1. 引言 前序博客&#xff1a; 利用多核的Rust快速Merkle tree Anoushk Kharangate 2023年论文《Asynchronous Merkle Trees》&#xff0c;其对Merkle tree数据结构进行修改&#xff0c;使得可跨多线程异步计算。 开源代码实现见&#xff1a; https://github.com/anoushk1…

【MySQL】所有文章传送门【自用】(暂不更新)

目录 1. MySQL 教程2. MySQL 实战项目 1. MySQL 教程 MySQL教程【自用&#xff0c;暂不公开】【数据库——MySQL】&#xff08;1&#xff09;数据库原理与设计【数据库——MySQL】&#xff08;2&#xff09;数据库和表的操作【数据库——MySQL】&#xff08;3&#xff09;对于…

Java SE入门及基础(19)

二维数组 1. 数组的本质 数组从本质上来说只有一维&#xff0c;二维数组是指在一维数组中再放入一个一维数组。三维数组、四维数组依次类推。 2. 二维数组的定义 语法 数据类型[][] 数组名 new 数据类型[数组的长度][数组的长度]; 示例 public static void main ( Str…

解密Oracle数据库引擎:揭开数据存储的神秘面纱

目录 1、介绍Oracle数据库引擎 1.1 什么是Oracle数据库引擎 1.2 Oracle数据库引擎的作用和功能 1.3 Oracle数据库引擎的历史和发展 2、Oracle数据库引擎的体系结构 2.1 Oracle数据库实例的组成部分 2.2 Oracle数据库引擎的层次结构 2.3 Oracle数据库引擎的关键组件 3、…

Uniapp多选Popup(弹出层)

uniapp中多选组件很少&#xff0c;故个人简单开发了一个&#xff0c;可简单使用&#xff0c;也可根据个人需求稍微改进 支持的功能 单选多选&#xff08;默认&#xff09;限制选择数量默认选中禁用选项 属性说明 属性默认值说明singlefalsetrue为开启单选&#xff0c;否则为…

FFMPEG命令生成各国国旗

文章目录 亚洲篇中国~待完善朝鲜~待补充韩国~待补充蒙古~待补充日本越南~待补充老挝 欧洲篇挪威~待补充瑞典~待补充芬兰~待补充冰岛~待补充丹麦~待补充爱沙尼亚拉脱维亚立陶宛白俄罗斯~待补充乌克兰摩尔多瓦~待补充俄罗斯德国 亚洲篇 中国~待完善 先画个五角星 在100x100的画…

Tokenization 指南:字节对编码,WordPiece等方法Python代码详解

在2022年11月OpenAI的ChatGPT发布之后&#xff0c;大型语言模型(llm)变得非常受欢迎。从那时起&#xff0c;这些语言模型的使用得到了爆炸式的发展&#xff0c;这在一定程度上得益于HuggingFace的Transformer库和PyTorch等库。 计算机要处理语言&#xff0c;首先需要将文本转…

在自定义数据集上训练 YOLOv8 进行目标检测

这是目标检测中令人惊叹的 AI 模型之一。在这种情况下&#xff0c;您无需克隆存储库、设置要求并配置模型&#xff0c;就像在 YOLOv5 及其之前的版本中所做的那样。 在 YOLOv8 中&#xff0c;不需要执行这些手动任务。您只需安装 Ultralytics 即可&#xff0c;我将向您展示如何…

uniapp开发小程序—scroll-view实现内容滚动时, 标题也滚动

一、需求 scroll-view实现内容滚动时&#xff0c; 标题也滚动 二、效果 三、代码实现 <template><view class"content"><view class"head">头部固定区域</view><view class"list_box"><!-- 菜单左边 -->&l…

React16源码: React中的beginWork的源码实现

beginWork 1 &#xff09;概述 在 renderRoot 之后&#xff0c;要对我们的 Fiber 树每一个节点进行对应的更新更新节点的一个入口方法&#xff0c;就是 beginWork这个入口方法会有帮助我们去优化整棵树的更新过程 react 它的节点其实是非常多的&#xff0c;如果每一次子节点的…

学习 SSR(Server-Side Rendering)的心得和体会

学习SSR&#xff08;Server-Side Rendering&#xff09;的心得和体会 引言 在现代的前端开发中&#xff0c;性能优化和用户体验始终是核心考量之一。而在众多优化策略中&#xff0c;服务器端渲染&#xff08;Server-Side Rendering&#xff0c;简称SSR&#xff09;是一个重要…

netty 使用证书

1创建私钥&#xff08;.key&#xff09; openssl genrsa -out server.key 2048 2基于私钥&#xff08;.key&#xff09;创建证书签名请求&#xff08;.csr&#xff09; openssl req -new -key server.key -out server.csr -config ./…/ssl.cnf 3.生成CA私钥&#xff08;ca…

【c++】栈(satck)和队列(queue)

目录 一、stack 1.stack的介绍 2.stack的使用 3.stack的模拟实现 二、queue 1.queue的介绍 2.queue的使用 3.queue的模拟实现 三、priority_queue 1.priority_queue的介绍 2.priority_queue的使用 一、stack 1.stack的介绍 &#xff08;1&#xff09;stack是一种容…

kotlin 和 java 的区别

一、什么是kotlin&#xff1f; Kotlin&#xff08;科特林&#xff09;是一个用于现代多平台应用的静态编程语言&#xff0c;由 JetBrains 开发。Kotlin可以编译成Java字节码&#xff0c;也可以编译成JavaScript&#xff0c;方便在没有JVM的设备上运行。除此之外Kotlin还可以编…

pytest -- 基本使用详解

1. pytest基本介绍 pytest 是一个功能强大且易于使用的 Python 测试框架&#xff0c;用于编写单元测试、集成测试和功能测试。 它提供了丰富的功能和灵活的用法&#xff0c;使得编写和运行测试变得简单而高效。 --------------->>>>> pytest框架优点&#xff1a…

Git中config配置

文章目录 简介一、config级别二、config基本配置 简介 Git是一个开源的分布式版本控制系统&#xff0c;用于处理各种规模的项目版本管理。它由Linus Torvalds设计&#xff0c;主要用于Linux内核开发。Git的特点包括速度、简单的设计、对非线性开发模式的支持、完全的分布式能力…

springboot(ssm仓库管理系统 wms智能仓储管理系统Java系统

springboot(ssm仓库管理系统 wms智能仓储管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; …