cf-920-div3

这篇具有很好参考价值的文章主要介绍了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 直接暴力查询,间隔大;小于等于的则前缀和维护,区间查询文章来源地址https://www.toymoban.com/news/detail-803620.html

代码实现

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;
}

到了这里,关于cf-920-div3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【简单图论】CF898 div4 H

    Problem - H - Codeforces 题意: 思路: 手玩一下样例就能发现简单结论: v 离它所在的树枝的根的距离 m 离这个根的距离时是 YES 否则就是NO 实现就很简单,先去树上找环,然后找出这个根,分别给a 和 b BFS一遍,得出两个dis数组,比较一下即可 对于只有的环情况 和 m = v 的情况需

    2024年02月07日
    浏览(48)
  • CF Round 821 (Div. 2)--C. Parity Shuffle Sorting

    You are given an array a with n non-negative integers. You can apply the following operation on it. Choose two indices l and r (1≤lr≤n). If al+ar is odd, do ar:=al. If al+ar is even, do al:=ar. Find any sequence of at most n operations that makes a non-decreasing. It can be proven that it is always possible. Note that you do not have to mi

    2024年02月11日
    浏览(40)
  • CF Round 479 (Div. 3)--E. Cyclic Components(DFS求无向图中独立环的个数)

    You are given an undirected graph consisting of n vertices and m edges. Your task is to find the number of connected components which are cycles. Here are some definitions of graph theory. An undirected graph consists of two sets: set of nodes (called vertices) and set of edges. Each edge connects a pair of vertices. All edges are bidirectional (i.e. if

    2024年02月09日
    浏览(34)
  • 【数据结构】哈希表(算法比赛向)

    目录 一:介绍 一:什么是哈希表 二、哈希表的应用 二:存储结构 a.拉链法: b.开放寻址法: 三:扩展 a.字符串哈希: 例题:      一:什么是哈希表 1、哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,插

    2023年04月25日
    浏览(49)
  • 快速入门 Codeforces 算法比赛/练习 网站

    Codeforces是一家为计算机编程爱好者提供在线评测系统的俄罗斯网站。同时也是广大ACM编程爱好者所喜爱,被使用的网站之一,但是有很多编程小白刚接触此类算法网站,不太熟悉如何使用,这里博主给出快速入门Codeforces的图文教程。 Codeforces官网: Codeforces 我们刚进入网站会

    2024年02月22日
    浏览(45)
  • 数学建模比赛题型划分、常用算法及其适用场景

    题型划分、常用算法及其适用场景 常见赛题类型 优化类 机理分析类 评价类 预测类 算法体系分类 数据处理模型 优化模型 预测模型 评价模型 聚类分析模型 常用算法分类 数据预处理模型及应用场景 1.插值拟合 主要用于对数据的补全处理; 其中 样本点较少时 (泛指样本点小

    2024年02月10日
    浏览(46)
  • (入门向)面向萌新的算法比赛入门指南

    算法是指解决问题或完成特定任务的一系列明确指令或步骤集合。它是一个定义良好、逐步执行的操作序列,用于将输入转换为输出。算法可用于计算、数据处理、自动化控制、问题解决等各个领域。 算法通常由一系列简单的操作组成,这些操作可以是基本的数学运算、逻辑

    2024年02月07日
    浏览(51)
  • 鲲鹏920(ARM64)移植javacpp

    JavaCPP 使得Java 应用可以在高效的访问本地C++方法,JavaCPP底层使用了JNI技术,可以广泛的用在Java SE应用中(也包括安卓),以下两个特性是JavaCPP的关键,稍后咱们会用到: 提供一些注解,将Java代码映射为C++代码 提供一个jar,用java -jar命令可以将C++代码转为java应用可以访问

    2024年02月09日
    浏览(49)
  • Intel、海光、鲲鹏920、飞腾2500 CPU性能对比

    为了让程序能快点,特意了解了CPU的各种原理,比如多核、超线程、NUMA、睿频、功耗、GPU、大小核再到分支预测、cache_line失效、加锁代价、IPC等各种指标(都有对应的代码和测试数据)都会在这系列文章中得到答案。当然一定会有程序员最关心的分支预测案例、Disruptor无锁

    2024年02月09日
    浏览(125)
  • 华为鲲鹏920 aarch64 版本 Ambari HDP 下载地址

    声明:为有效缓解各位同行兄弟们的痛,特推出此文 本文能够适配兼容 华为鲲鹏920 aarch64 版本,仅限 CentOS7、openEuler20.03-LTS 操作系统 以下是详细下载地址 CentOS7 aarch64 https://mirrors.huaweicloud.com/kunpeng/yum/el/7/bigdata/ https://mirrors.huaweicloud.com/kunpeng/yum/el/7/bigdata/ https://mirrors.huaweic

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包