[关闭]
@xiaoziyao 2021-06-26T02:46:21.000000Z 字数 601 阅读 752

CF476D Dreamoon and Sets解题报告

解题报告


CF476D Dreamoon and Sets解题报告:

更好的阅读体验

题意

给定,构造个元素互不相同的四元组,使得每个四元组的最大公约数为

求所有元素最大值最小的一组构造。

分析

有点套路的MO题。

首先把所有四元组除以,那么所有四元组的最大公约数为

考虑任意一个四元组都只能存在一个偶数,那么奇数起码三个,于是我们答案的下界为

构造一组方案达到下界:

由于,我们贪心的让方案内的差尽可能小,于是我们直接把最近的三个奇数和一个偶数放在一个四元组内,即第组为

不难得知两两之间都为,于是方案合法。

时间复杂度

代码

  1. #include<stdio.h>
  2. int n,k;
  3. int main(){
  4. scanf("%d%d",&n,&k);
  5. printf("%d\n",(6*n-1)*k);
  6. for(int i=0;i<n;i++)
  7. printf("%d %d %d %d\n",(6*i+1)*k,(6*i+2)*k,(6*i+3)*k,(6*i+5)*k);
  8. return 0;
  9. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注