【codeforces C. Mere Array】
文章图片
题目
题意: 给你一个序列,如果这个序列中的两个数满足 g c d ( a i , a j ) = m i n i = 1 n a gcd(a_i,a_j)=min^n_{i=1}a gcd(ai?,aj?)=mini=1n?a,那么这两个数字就可以进行置换,问最后能不能通过置换将这个序列变成一个不递减的序列。
思路: 如果要满足 g c d ( a i , a j ) = m i n i = 1 n a gcd(a_i,a_j)=min^n_{i=1}a gcd(ai?,aj?)=mini=1n?a,那么肯定有 a i % M i n = a j % M i n = 0 a_i\%Min=a_j\%Min=0 ai?%Min=aj?%Min=0,所以我们可以用 M i n Min Min进行交换,这样就可以不用考虑 g c d ( a i , a j ) = M i n gcd(a_i,a_j)=Min gcd(ai?,aj?)=Min是否成立了,因为有可能会出现 g c d ( a i , a j ) = M i n ? k gcd(a_i,a_j)=Min*k gcd(ai?,aj?)=Min?k,但是也可以通过 M i n Min Min实现置换。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
推荐阅读
- codeforces B. Young Explorers
- codeforces D. Omkar and Bed Wars
- codeforces C. Omkar and Waterslide
- codeforces B. Omkar and Infinity Clock
- codeforces B. Ternary Sequence
- 题库-CF|【Codeforces Round 370 (Div 2) E】【线段树 等比数列 区间合并】Memory and Casinos 赌场区间[l,r] l进r先出的概率
- 题库-CF|【Codeforces Round 263 (Div 2)C】【贪心 哈弗曼思维】Appleman and Toastman 每个非1size子树延展为2子树的最大权
- Codeforces|Codeforces Round #605 (Div. 3) D. Remove One Element
- Codeforces|Codeforces Round #643 (Div. 2) B.Young Explorers