Codeforces Round 903 (Div. 3)

news2024/11/25 10:53:53

D. Divide and Equalize

Example

input

Copy

 

7

5

100 2 50 10 1

3

1 1 1

4

8 2 4 2

4

30 50 27 20

2

75 40

2

4 4

3

2 3 1

output

Copy

YES
YES
NO
YES
NO
YES
NO

Note

The first test case is explained in the problem statement.

很重要很重要的知识点!!!

1)

一个数的因数,且这个因数是素数,则这个因数被称为质因数

2)

每个数都可以被分解成其质因数的乘积。也可以说,当一个数被分解成最小因数的时候,这些因数是质因数

例如:

6可以分解为2 * 3,其中2和3都是质数,是6的素因子,也是它的最小因数

72可以分解为2 * 2 * 2 * 3 * 3。然而,它也可以分解为2 * 6 * 6或3 * 4 * 6等

3)

分解成质因子的乘积则是唯一的

例如:

通常,我们会将一个数分解成质因子的乘积,这是因为,每个数都可以唯一地分解成质因数的乘积。

例如,72可以分解为2 * 2 * 2 * 3 * 3。分解成质因子的乘积则是唯一的。

分析:知道以上知识点,这道题就很容易了。我们采用逆推的思维。

从答案入手,如果每个数都相等,那么每种质因数的数量一定能被n整除,这样才能保证每种质数被平均分,从而保证每个数都相等。

map<int, int> mp;

void Devide(int x) {
	for (int i = 2; i <= x / i; i++) {
		while (x % i == 0) {
			mp[i]++;
			x /= i;
		}
	}
	mp[x]++;
}

signed main() {
	int T; cin >> T;
	while (T--) {
		mp.clear();
		int n; cin >> n;
		for (int i = 0; i < n; i++) {
			int b; cin >> b;
			Devide(b);
		}

		int f = 0;
		for (auto it = mp.begin(); it != mp.end(); it++) {
			if (it->first <= 1) continue;
			if (it->second % n != 0) {
				cout << "NO" << endl;
				f = 1;
				break;
			}
		}
		if (!f) cout << "YES" << endl;
	}


	return 0;
}

E. Block Sequence

Example

input

Copy

 

7

7

3 3 4 5 2 6 1

4

5 6 3 2

6

3 4 1 6 7 7

3

1 4 3

5

1 2 3 4 5

5

1 2 3 1 2

5

4 5 5 1 5

output

Copy

0
4
1
1
2
1
0

Note

In the first test case of the example, the given sequence is already beautiful, as shown in the statement.

In the second test case of the example, the sequence can only be made beautiful by removing all elements from it.

In the fifth test case of the example, the sequence can be made beautiful by removing the first and last elements. Then the sequence will become [2, 3, 42, 3, 4].

分析:删与不删,容易想到是dp。我的惯性思维是从前往后dp,但有个问题,就是无法判断当前序列是否beautiful。

观察到每一块的第一个元素代表这一块接下来的长度,有一种向后延伸的感觉,但dp从前往后,显然无法顾及到后面的部分(例如在dp[i]时,不知道dp[i+n]的情况)。

因此要想到从后往前dp,这样就可以顾及到dp[i]后面的部分,然而dp[i]前面的部分是什么样子,其实可以不用关心。

接下来考虑删和不删

删:dp[i] = dp[i+1]+1

不删:有前提条件的!如果n-i<a[i],也就是说,让a[i]当这组的长度,长度太长了,一定不能满足条件,那a[i]这个数是一定要删的,否则就可以选择不删

int a[N], dp[N];
signed main() {
	int T; cin >> T;
	while (T--) {
		memset(dp, 0, sizeof(dp));
		int n; cin >> n;
		for (int i = 1; i <= n; i++) {
			cin >> a[i];
		}

		for (int i = n; i >= 1; i--) {
			dp[i] = dp[i + 1] + 1;//删
			if (n - i >= a[i]) {
				dp[i] = min(dp[i], dp[i + a[i] + 1]);
			}
		}
		//cout << "答案:";
		cout << dp[1] << endl;
	}


	return 0;
}

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

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

相关文章

如何使用JMeter测试导入接口/导出接口

今天一上班&#xff0c;被开发问了一个问题&#xff1a;JMeter调试接口&#xff0c;文件导入接口怎么老是不通&#xff1f;还有导出文件接口&#xff0c;不知道文件导到哪里去了&#xff1f; 我一听&#xff0c;这不是JMeter做接口测试经常遇到的嘛&#xff0c;但是一时半会又…

【爬虫实战】用pyhon爬百度故事会专栏

一.爬虫需求 获取对应所有专栏数据&#xff1b;自动实现分页&#xff1b;多线程爬取&#xff1b;批量多账号爬取&#xff1b;保存到mysql、csv&#xff08;本案例以mysql为例&#xff09;&#xff1b;保存数据时已存在就更新&#xff0c;无数据就添加&#xff1b; 二.最终效果…

PLC和工控机的网络特性

现场总线技术是工业自动化***深刻变革之一。PLC和工控机采用现场总线后可方便地作为I/O站和监控站连接在DCS系统中。现场总线是一种取代4&#xff5e;20mA标准&#xff0c;用于连接智能现场设备和控制设备的双向数字通讯技术&#xff0c;现场总线具有开放性和互操作性&#xff…

MongoDB 集群配置

一、副本集 Replica Sets 1.1 简介 MongoDB 中的副本集&#xff08;Replica Set&#xff09;是一组维护相同数据集的 mongod 服务。 副本集可提供冗余和高可用性&#xff0c;是所有生产部署的基础。 也可以说&#xff0c;副本集类似于有自动故障恢复功能的主从集群。通俗的讲就…

视觉里程计- 位姿

SLAM中的位姿概念对新手很难&#xff0c;这里讨论下。首先放出一张图&#xff0c;下文会反复说道这张图。 注意到位姿节点之间的变换并不是位姿&#xff0c;之前一直有误解&#xff1b;一般地有如下概念&#xff1a; 路标节点&#xff1a;也就是观测方程【数学形式下见】的观测…

运算放大器基本原理与参数解读-优先看

运算放大器基本原理与参数解读 运算放大器的出现&#xff0c;大大降低了硬件模拟前端电路设计的难度。但是对于高精度的模拟信号处理电路中&#xff0c;用好运放也不是一件容易的事&#xff0c;更不用说压着最低的物料成本设计出符合系统要求的运放电路了。高端的电路往往蕴含着…

第二证券:跨行转账为什么迟迟不到账?

现在&#xff0c;越来越多的人挑选使用跨行转账来结束日常资金生意。不过&#xff0c;有时候在进行跨行转账时&#xff0c;或许会出现迟迟不到账的状况。这种状况常常让人感到困惑和焦虑。所以&#xff0c;我们需求深入分析这个问题&#xff0c;找出原因&#xff0c;以便可以防…

光伏PV三相并网逆变器MATLAB/Simulink仿真分析

微❤关注“电击小子程高兴的MATLAB小屋”获得资料&#xff08;专享优惠&#xff09; 光伏PV三相并网逆变器Matlab/Simulink仿真 光伏PV三相并网逆变器MATLABf仿真下载 引言&#xff1a; 随着可再生能源的日益重视和发展&#xff0c;光伏发电系统在电力系统中的地位越来越重…

C/C++笔试易错题+图解知识点(二)—— C++部分(持续跟新中)

目录 1.构造函数初始化列表 1.1 构造函数初始化列表与函数体内初始化区别 1.2 必须在初始化列表初始化的成员 2. 引用初始化以后不能被改变&#xff0c;指针可以改变所指的对象 1.构造函数初始化列表 有一个类A&#xff0c;其数据成员如下&#xff1a; 则构造函数中&#xff0c…

vue项目打包,使用externals抽离公共的第三方库

封装了一个插件&#xff0c;用来vue打包抽离公共的第三方库&#xff0c;使用unplugin进行插件开发&#xff0c;vite对应的功能使用了vite-plugin-externals进行二次开发 github地址 npm地址 hfex-auto-externals-plugin 自动注入插件,使用 unplugin 和 html-webpack-plugin进…

01 | Spring Data JPA 初识

Spring Boot 和 Spring Data JPA 的 Demo演示 我们利用 JPA Spring Boot 简单做一个 RESTful API 接口&#xff0c;方便你来了解 Spring Data JPA 是干什么用的&#xff0c;具体步骤如下。 第一步&#xff1a;利用 IDEA 和 SpringBoot 2.3.3 快速创建一个案例项目。 点击“…

2.MySQL表的操作

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 表的操作 (1)表的创建 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 存储引擎的不同会导致创建表的文件不同。 换个引擎。 t…

【C语言】结构体、位段、枚举、联合(共用体)

结构体 结构&#xff1a;一些值的集合&#xff0c;这些值称为成员变量。结构体的每个成员可以是不同类型的变量&#xff1b; 结构体声明&#xff1a;struct是结构体关键字&#xff0c;结构体声明不能省略struct&#xff1b; 匿名结构体&#xff1a;只能在声明结构体的时候声…

伦敦银单位转换很简单

伦敦银源自于英国伦敦的电子化的白银投资方式&#xff0c;高杠杆和高收益的它的基本属性&#xff0c;但有别于国内大家所熟悉的投资品种&#xff0c;伦敦银在交易过程中有很多不一样的地方&#xff0c;需要大家地去留意。 比如伦敦银的计价单位是盎司&#xff0c;而且具体来说…

【Qt上位机】打开本地表格文件并获取其中全部数据

前言 其实本文所实现的功能并非博主要实现的全部功能&#xff0c;只是全部功能中的一小部分&#xff0c;这里只是为了记录一下实现方法&#xff0c;防止后续忘记&#xff0c;仅供参考。 文章目录 一、实现效果二、UI设计三、程序设计3.1 选择本地表格文件3.2 获取表格总行列数3…

百度Echarts实现饼图,较官网示例更多项显示

本来是想直接使用官网示例修改几个地方就用起来&#xff0c;但是用户希望一眼就看到百分占比&#xff0c;但是官网示例没有使用lable的&#xff0c;找了半天都没找到&#xff0c;后来通过对比其他饼图发现lable这个项&#xff0c;再次记录一下 首先看效果图&#xff1a; 2. 代码…

国海证券:36氪(KRKR):新经济内容平台龙头,多元变现可期

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;国海证券今日发布了关于36氪的新经济内容平台龙头&#xff0c;多元变现可期研报。国海证券主要内容如下&#xff1a;1、新经济产业发展迅猛&#xff0c;36氪定位为以媒体为旗舰的新经济服务集团&a…

下载安装Ipa Guard

下载安装Ipa Guard 可以前往ipaguard工具官网下载&#xff0c;工具是免费下载&#xff0c;免费体验使用的。下载地址是https://www.ipaguard.com。 下载后解压工具便ok了&#xff0c;工具是绿色软件&#xff0c;无需其他安装流程。双击Ipa Guard.exe 启动ipaguard。 ipaguard…

【问题思考】如何通过参数式求出方向向量?(待深入本质)

问题 今天在做23李六第二套的时候看到了一道题&#xff1a; 答案里面说的直接再加一个yy和上面的两个方程就凑成了三个方程&#xff08;x关于y的&#xff0c;y关于y的&#xff0c;z关于y的&#xff0c;最后每个方程都对y求导&#xff0c;再代入y1&#xff0c;就有了方向向量&…

Netapp数据恢复—Netapp存储误删除lun的数据恢复过程

Netapp存储数据恢复环境&#xff1a; 北京某公司一台netAPP存储&#xff0c;72块SAS硬盘划分了若干个lun。 Netapp存储故障&#xff1a; 工作人员误操作删除了12个lun。 Netapp存储数据恢复过程&#xff1a; 1、将故障存储中所有磁盘编号后取出&#xff0c;以只读方式做全盘镜…