Codeforces Round 903 (Div. 3)

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.rhkb.cn/news/159041.html

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

相关文章

Windows端口号被占用的查看方法及解决办法

Windows端口号被占用的查看方法及解决办法 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2023-10-14 22:58:32.069 ERROR 6488 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***…

CustomNavBar 自定义导航栏视图

1. 创建偏好设置键 CustomNavBarTitlePreferenceKey.swift import Foundation import SwiftUI//State private var showBackButton: Bool true //State private var title: String "Title" //"" //State private var subtitle: String? "SubTitl…

算法练习13——跳跃游戏II

LeetCode 45 跳跃游戏 II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回…

螺杆支撑座对注塑机的生产过程有哪些重要影响?

螺杆支撑座对注塑机的生产过程具有重要影响&#xff0c;主要体现在以下几个方面&#xff1a; 1、精度和稳定性&#xff1a;螺杆支撑座能够提高注塑机的精度和稳定性&#xff0c;从而保证塑料制品的品质和一致性。通过提供稳定的支撑和承载&#xff0c;螺杆支撑座可以减少机器运…

React18入门(第三篇)——React Hooks详解,React内置Hooks、自定义Hooks使用

文章目录 概述一、内置 Hook——useState1.1 响应式数据更新1.2 什么是 state1.3 state 特点&#xff08;一&#xff09;——异步更新1.4 state 特点&#xff08;二&#xff09;——可能会被合并1.5 state 特点&#xff08;三&#xff09;——不可变数据&#xff08;重要&#…

MySQL的各种锁

1. MySQL有遇到过死锁的问题吗&#xff1f;你是如何解决的&#xff1f; 死锁&#xff0c;就是两个或两个以上的线程在执行过程中&#xff0c;去争夺同一个共享资源导致互相等待的现象&#xff0c;在没有外部干预的情况下&#xff0c;线程会一直处于阻塞状态&#xff0c;无法往下…

【RocketMQ系列二】通过docker部署单机RocketMQ

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

goland安装教程

安装版本&#xff1a; goland-2023.2.3.exe

spring boot+ vue位置信息大数据综合管理平台源码

spring boot vue位置信息大数据综合管理平台源码 UWB技术的人员定位系统源码 智慧工厂是产业升级的外在表现形式&#xff0c;利用物联网技术加强信息管理的新模式&#xff0c;人员定位管理通过物联网技术、位置信息大数据的综合处理应用&#xff0c;在智慧工厂人员管理方面具有…

git强制删除本地分支 git branch -D

git强制删除本地分支 git branch -D git删除本地分支_zhangphil的博客-CSDN博客git branch -d <分支名>可以通过: git branch 查看所有本地分支及其名字&#xff0c;然后删除特定分支。https://blog.csdn.net/zhangphil/article/details/82255002 使用git branch -d删除…

MacBook/MacOS如何更新到指定的版本

背景 现在是A版本&#xff0c;想要更新到B&#xff0c;而目前能最新更新到C。 是可以做到的&#xff0c;不一定更新就得更新到最新的。 只要下载好B之后更新即可。 方法 思路是下载好目标的版本后更新&#xff0c;这里可以下载&#xff1a; https://support.apple.com/zh-…

Arbitrum Stylus 的工作原理

理解 Arbitrum 如何协调 EVM 和 WASM 的共存是至关重要的。这不仅仅是拥有两个独立的引擎&#xff1b;这是一种增强两者优势的协同关系。 Arbitrum 的独特架构允许 EVM 和 WASM 之间进行无缝和同步的操作&#xff0c;这要归功于其统一的状态、跨 VM 调用和兼容的经济模型。 用…

uniapp小程序实现绘制内容,生成海报并保存截图(Painter和Canvas两种方式举例)

一、Painter方法 Painter插件传送门 1.下载资源包 2.将资源包的如下部分 3.使用页面引入组件 ui样式 <paintercustomStyle=margin-left: 40rpx; height: 1000rpx;palette="{{palette}}"bind:imgOK="onImgOK"/>data 中数据(绘制内容,替换区域) pai…

8.简易无线通信

预备知识 Zigbee无线通信&#xff0c;需要高频的载波来提供发射效率&#xff0c;Zigbee模块之间要可以正常的收发&#xff0c;接收模块必须把接收频率设置和发射模块的载波频率一致。Zigbee有27个载波可以进行通信&#xff0c;载波叫做信道&#xff08;无线通信的通道&#xf…

Umi + React + Ant Design Pro + TS 项目搭建

新建项目目录 mkdir 【项目名称】在对应目录 D:\react\demo 中&#xff0c;安装 Umi 脚手架&#xff1a; yarn create umi接下来&#xff0c;安装将要用到的相关依赖 umijs/plugins&#xff1a; npm i umijs/plugins -Dumijs/plugins 是 Umi 的官方插件集&#xff0c;包含了…

STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感器模块和LED接线 LED负极接B12,正极接VCC 光敏传感模块一DO端接B13,GND接GND&#xff0c;VCC接VCC,AO不接。 如图&#xff1a; 主程序代码&#xff1a;main.c #include "stm32f10x.h" #include "Delay.h" //delay函数所在头文件 #include …

HTTPS 加密全过程

加密协议以前是SSL,现在都是TLS, 而证书现在大多数都是SSL证书 抓包流程: TCP三次握手过后, 客户端发送Client Hello 服务器相应Server Hello 服务器再次响应发送证书: 服务器再发送公钥:

凉鞋的 Godot 笔记 109. 专题一 小结

109. 专题一 小结 在这一篇&#xff0c;我们来对第一个专题做一个小的总结。 到目前为止&#xff0c;大家应该能够感受到此教程的基调。 内容的难度非常简单&#xff0c;接近于零基础的程度&#xff0c;不过通过这些零基础内容所介绍的通识内容其实是笔者好多年的时间一点点…

Servlet的部署与安全

1 Servlet 部署 Servlet规范关于各个东西该放在哪里有许多严格的规则。 1.1 WAR war文件代表Web归档(Web Archive)&#xff0c;war实际就是一个JAR&#xff0c;只不过扩展名是.war而不是.jar。 其采用了一种可移植的压缩形式&#xff0c;把整个Web应用结构&#xff08;去掉…

go cpu、内存监控、性能分析:PProf

PProf PProf 是什么 PProf是 golang 官方提供的性能调优分析工具&#xff0c;用于分析和优化Go程序的性能。 PProf通过收集和分析程序的运行时数据来生成性能分析报告。它使用Go语言的运行时特性&#xff0c;如代码注释和特殊的程序运行标记&#xff0c;来收集性能数据。PPr…