CF 943 (Div. 3) A~E

文章目录

  • A Maximize?(模拟/枚举)
  • B Prefiquence(贪心/双指针)
  • C Assembly via Remainders(构造)
  • D Permutation Game (枚举/贪心)
  • E Cells Arrangement(构造)

A Maximize?(模拟/枚举)

题意
给定 x x x,找一个 y y y( 1 ≤ y ≤ x 1 \leq y \leq x 1yx),使得 g c d ( x , y ) + y gcd(x,y)+y gcd(x,y)+y尽量大。
思路1: 枚举 y y y,找满足条件的最大值。
思路2: 输出x-1即可。
标程1:

#include <bits/stdc++.h>
using namespace std; 
int main() {
	int T; cin >> T;
	while (T--) {
		int x; cin >> x;
		int ans = 0, y = 0;
		for (int i = 1; i < x; i++) {
			if (__gcd(x, i) + i > ans) {
				ans = __gcd(x, i) + i;
				y = i;
			}
		}
		cout << y << "\n";
	}
	return 0;
}

标程2:

#include <bits/stdc++.h>
using namespace std; 
int main() {
	int T; cin >> T;
	while (T--) {
		int x; cin >> x;
		cout<<x-1<<"\n";
	}
}

B Prefiquence(贪心/双指针)

题意:给定字符串 a a a b b b, 要使 a a a的前 k k k项,恰好是 b b b的子序列,请问 k k k最大是多少?
思路: j j j遍历字符串 b b b,只要 b j b_j bj中跟 a i a_i ai相等,则优先选择此 i i i j j j,同时 i + + i++ i++看是否还存在相等的。
标程1:

#include <bits/stdc++.h>
using namespace std;

int main() {
	int T; cin >> T;
	while (T--) {
		int n, m, ans = 0; 
		cin >> n >> m;
		string a, b;
		cin >> a >> b;
		int i = 0, j = 0;//a字符串 b字符串 
		for (; i < n && j < m; j++ ) {
			if(b[j] == a[i]) {
				i++;
			}
		}
		cout << i << "\n";
	}
	return 0;
}

C Assembly via Remainders(构造)

题意:给定数组 x 2 , x 3 . . . x n x_2,x_3...x_n x2,x3...xn,构造一个数组 a 1 , a 2 . . . a n a_1,a_2...a_n a1,a2...an,使得 a i a_i ai % a i − 1 = x i a_{i-1} = x_i ai1=xi
思路: x i x_i xi范围是0~500,因为要取模运算,所以 a i > 500 a_i > 500 ai>500,我们把第1项设为501,剩下的可倒推,余数 x i x_i xi+模 a i − 1 a_{i-1} ai1 = a i a_i ai
标程1:

#include <bits/stdc++.h>
using namespace std;

int main() {
	int T; cin >> T;
	while (T--) {
		int n, last = 501; 
		cin >> n ;
		cout << 501 << " ";
		for(int i = 2; i <= n; i++){
			int t; cin >> t;
			last += t;
			cout << last << " ";
		}
		cout << '\n';
	}
	return 0;
}

D Permutation Game (枚举/贪心)

题意:给定排列 p p p,数组 a a a,和两个人的初始位置,玩k轮游戏,问两人胜负情况,假设二人足够聪明。每轮游戏定义如下:玩家在位置 x x x,获得 a x a_x ax分,然后选择留在原地或者跳到 p z p_z pz位置。
思路: 枚举所有情况,计算最大的分,比较二人分数。 因为 p p p是一个排列,可以跳一圈回来,也就是最终会在一个好位置上一直原地跳,所以枚举这个好位置即可,也就是可能在 p b p_b pb位置跳 k k k次,也可能在 p b p_b pb位置跳1次再到下一个位置跳 k − 1 k-1 k1次…
标程:

#include <bits/stdc++.h>
using namespace std;
long long p[200005], a[200005];
int main(){
	int q;
	cin >> q;
	while(q--) {
		int n, k, pb, ps;
		cin >> n >> k >> pb >> ps;
		for(int i = 1; i <= n;i ++) cin >> p[i];
		for(int i = 1; i <= n;i ++) cin >> a[i];
		long long zq1 = 1, i1 = pb, max1 = a[pb] * k, sum1 = a[pb];
		i1 = p[i1];
		while(i1 != pb&& k > zq1){			
			max1 = max(max1, sum1 + (k-zq1)*a[i1]);
			zq1++, sum1 +=  a[i1]; 
			i1 = p[i1];
		} 
		long long zq2 = 1, i2 = ps, max2 = a[ps] * k, sum2 = a[ps];
		i2 = p[i2];
		while(i2 != ps && k > zq2){	
//			cout << i2 << '*';		
			max2 = max(max2, sum2 + (k-zq2)*a[i2]);
			zq2++, sum2 +=  a[i2]; 
			i2 = p[i2];
		} 
//		cout << max1 << " " << max2 << '\n'	 ;
		if(max1 > max2) cout << "Bodya\n";
		if(max1 < max2) cout << "Sasha\n";
		if(max1 == max2) cout << "Draw\n";
		
	}
	return 0;
} 

E Cells Arrangement(构造)

题意:给定 n × n n\times n n×n的矩阵,寻找 n n n个点,使得任意两点曼哈顿距离构成的非重复集合数量最大。
思路: 按照对角线选点 ( 1 , 1 ) , ( 2 , 2 ) . . . . , ( n , n ) (1,1),(2,2)....,(n,n) (1,1),(2,2)....,(n,n),则任意两点构成的距离集合 0 , 2 , 4 , 6...... n + n − 2 {0,2,4,6......n+n-2} 0,2,4,6......n+n2,能表示所有偶数距离,但不是最大数量,因此可以把(2,2)换成(1,2),则集合是 0 , 1 , 3 , 4 , 5 , 6..... {0,1,3,4,5,6.....} 0,1,3,4,5,6.....
标程1:

#include <bits/stdc++.h>
using namespace std; 
int main() {
	int T; cin >> T;
	while (T--) {
		int x; cin >> x;
		int ans = 0, y = 0;
		for (int i = 1; i < x; i++) {
			if (__gcd(x, i) + i > ans) {
				ans = __gcd(x, i) + i;
				y = i;
			}
		}
		cout << y << "\n";
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能|机器学习——强大的 Scikit-learn 可视化让模型说话

一、显示 API 简介 使用 utils.discovery.all_displays 查找可用的 API。 Sklearn 的utils.discovery.all_displays可以让你看到哪些类可以使用。 from sklearn.utils.discovery import all_displays displays all_displays() displays Scikit-learn (sklearn) 总是会在新版本…

Stack数据结构设计模板

第三章 栈、队列、数组 1.栈 1.1 顺序栈 #define MaxSize 20 typedef int ElemType; //顺序栈的定义 typedef struct {ElemType data[MaxSize];int top; }SqStack; // 初始化顺序栈 void InitSqStack(SqStack &S){S.top -1; }; // 入栈(增) bool Push(SqStack &S,El…

推荐5个免费的国内平替版GPT

提起AI&#xff0c;大家第一个想到的就是GPT。 虽然它确实很厉害&#xff0c;但奈何于我们水土不服&#xff0c;使用门槛有些高。 不过随着GPT的爆火&#xff0c;现在AI智能工具已经遍布到各行各业了&#xff0c;随着时间的推移&#xff0c;国内的AI工具也已经“百花盛放”了…

【R语言从0到精通】-4-回归建模

通过之前的文章&#xff0c;我们已经基本掌握了R语言的基本使用方法&#xff0c;那从本次教程开始&#xff0c;我们开始聚焦如何使用R语言进行回归建模。 4.1 回归简介 回归分析是一种统计学方法&#xff0c;用于研究两个或多个变量之间的相互关系和依赖程度。它可以帮助我们了…

Java性能优化(一):Java基础-ArrayList和LinkedList

引言 集合作为一种存储数据的容器&#xff0c;是我们日常开发中使用最频繁的对象类型之一。JDK为开发者提供了一系列的集合类型&#xff0c;这些集合类型使用不同的数据结构来实现。因此&#xff0c;不同的集合类型&#xff0c;使用场景也不同。 很多同学在面试的时候&#x…

数控六面钻适用场景-不止家具制造

在快节奏的现代生活中&#xff0c;家具作为我们生活的重要组成部分&#xff0c;其美观度和实用性日益受到人们的关注。而在这背后&#xff0c;一个不可或缺的“工匠”正默默地发挥着它的作用——那就是数控六面钻。 数控六面钻&#xff0c;顾名思义&#xff0c;是一种高度自动…

OS复习笔记ch5-2

引言 在上一篇笔记中&#xff0c;我们介绍到了进程同步和进程互斥&#xff0c;以及用硬件层面上的三种方法分别实现进程互斥。其实&#xff0c;软件层面上也有四种方法&#xff0c;但是这些方法大部分都存在着一些问题&#xff1a; “上锁”与“检查”是非原子操作&#xff0…

error: pathspec ‘XXX‘ did not match any file(s) known to git

使用vscode&#xff0c;在本地开发切换分支时&#xff0c;报以下错误&#xff1a; error: pathspec XXX did not match any file(s) known to git 该问题是由于没有对应分支的原因。 首先使用一下命令&#xff0c;查看本地及远程的所有分支。 git branch -a 若没有对应的分…

47.Redis学习笔记

小林coding -> 图解redis的学习笔记 文章目录 Rediswindwos安装docker安装redis启动redis使用RDM访问虚拟机中的redispython连接redis缓存穿透、击穿、雪崩基本数据类型高级数据类型高并发指标布隆过滤器分布式锁Redis 的有序集合底层为什么要用跳表&#xff0c;而不用平衡…

谷歌推出10门免费AI课程,无需教科书及费用

谷歌面向小白以及开发者分别推出了不同的AI课程~ 包含初级、中级和高级。课程章节大致包括&#xff1a;&#xff08;含教学视频、参考材料、测验&#xff09; 基础入门&#xff1a;45分钟深入了解生成式AI 简单实操&#xff1a;30分钟掌握大语言模型 了解如何释放生成式 AI S…

基于小程序实现的投票评选系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

CSS选择器(基本+复合+伪类)

目录 CSS选择器 基本选择器 标签选择器&#xff1a;使用标签名作为选择器->选中同名标签设置样式 类选择器&#xff1a;给类选择器定义一个名字.类名&#xff0c;并给标签添加class"类名" id选择器&#xff1a;跟类选择器非常相似&#xff0c;给id选择器定义…

数据库数据恢复—SQL Server数据库ndf文件变为0KB的数据恢复案例

SQL Server数据库故障&#xff1a; 存储设备损坏导致存储中SQL Server数据库崩溃。对数据库文件进行恢复后&#xff0c;用户发现有4个ndf文件的大小变为0KB。该SQL Server数据库每10天生成一个大小相同的NDF文件&#xff0c;该SQL Server数据库包含两个LDF文件。 SQL Server数据…

Node.js里面 Path 模块的介绍和使用

Node.js path 模块提供了一些用于处理文件路径的小工具&#xff0c;我们可以通过以下方式引入该模块&#xff1a; var path require("path") 方法描述 序号方法 & 描述1path.normalize(p) 规范化路径&#xff0c;注意.. 和 .。2path.join([path1][, path2][,…

将矩阵按对角线排序(Lc1329)——排序

矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线&#xff0c;沿右下方向一直到矩阵末尾的元素。例如&#xff0c;矩阵 mat 有 6 行 3 列&#xff0c;从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2] 。 给你一个 m * n 的整…

Vue创建todolist

电子书 第三章&#xff1a; https://www.dedao.cn/ebook/reader?idV5R16yPmaYOMqGRAv82jkX4KDe175w7xRQ0rbx6pNgznl9VZPLJQyEBodb89mqoO 没有使用VUE CLI创建项目。 创建步骤&#xff1a; 1&#xff0c; 用Vite 创建项目 2&#xff0c; npm run dev 运行程序 参照之前的文…

[Kubernetes] Rancher 2.7.5 部署 k8s

server: 192.168.66.100 master: 192.168.66.101 node1: 192.168.66.102 文章目录 1.rancher server 安装docker2.部署k8s3.kubeconfig 1.rancher server 安装docker 所有主机开通ipv4 vi /etc/sysctl.conf#加入 net.ipv4.ip_forward 1#配置生效 sysctl -prancher-server开通…

k8s部署Kubeflow v1.7.0

文章目录 环境介绍部署访问kubeflow ui问题记录 环境介绍 K8S版本&#xff1a;v1.23.17&#xff0c;需要配置默认的sc 参考&#xff1a;https://github.com/kubeflow/manifests/tree/v1.7.0 部署 #获取安装包 wget https://github.com/kubeflow/manifests/archive/refs/tag…

【Redis分布式缓存】分片集群

Redis 分片集群 搭建分片集群 集群结构 分片集群需要的节点数量较多&#xff0c;这里我们搭建一个最小的分片集群&#xff0c;包含3个master节点&#xff0c;每个master包含一个slave节点&#xff0c;结构如下&#xff1a; 这里我们会在同一台虚拟机中开启6个redis实例&…

学QT的第二天~

小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好&#xff0c;真爱粉"; this->close(); } else { speecher->sa…
最新文章