@xiaoziyao
        
        2021-06-26T02:46:21.000000Z
        字数 601
        阅读 1355
    解题报告
给定,构造个元素互不相同的四元组,使得每个四元组的最大公约数为。
求所有元素最大值最小的一组构造。
有点套路的MO题。
首先把所有四元组除以,那么所有四元组的最大公约数为。
考虑任意一个四元组都只能存在一个偶数,那么奇数起码三个,于是我们答案的下界为。
构造一组方案达到下界:
由于,我们贪心的让方案内的差尽可能小,于是我们直接把最近的三个奇数和一个偶数放在一个四元组内,即第组为。
由不难得知两两之间都为,于是方案合法。
时间复杂度。
#include<stdio.h>int n,k;int main(){scanf("%d%d",&n,&k);printf("%d\n",(6*n-1)*k);for(int i=0;i<n;i++)printf("%d %d %d %d\n",(6*i+1)*k,(6*i+2)*k,(6*i+3)*k,(6*i+5)*k);return 0;}
