1 条题解

  • 0
    @ 2025-8-24 22:50:27

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 封禁用户
    None

    搬运于2025-08-24 22:50:27,当前版本为作者最后更新于2023-09-27 12:06:39,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    读题,第一反应构造。

    情况一:

    n n 个数的最大公约数之和为 x x

    显然,构造 n2 n-2 个 1,2 个 xn+2 x-n+2 ,最大公约数之和为 n2+xn+2=x n-2+x-n+2=x

    情况二:

    n n 个数的最小公倍数之和为 x x

    显然,构造 n2 n-2 个 1,1 个 xn+2 x-n+2 ,最小公倍数之和为 n2+xn+2=x n-2+x-n+2=x

    Code:

    #include<cstdio>
    using namespace std;
    const int N=5e5+7;
    int T,a[N];
    signed main(){
    	scanf("%d",&T);
    	while(T--){
    		int op,n,x;
    		scanf("%d%d%d",&op,&n,&x);
    		if(op==1){
    			int num=x-n+2;
    			if(num<=0){
    				putchar('-'),putchar('1');
    				goto print;
    			}
    			for(int i=1;i<=n-2;i++){
    				putchar('1'),putchar(' ');
    			}
    			for(int i=n-1;i<=n;i++){
    				printf("%d ",num);
    			}
    		}
    		else{
    			int num=x-n+2;
    			if(num<=0){
    				putchar('-'),putchar('1');
    				goto print;
    			}
    			for(int i=1;i<=n-1;i++){
    				putchar('1'),putchar(' ');
    			}
    			printf("%d",num);
    		}
    		print:
    			putchar('\n');
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    8289
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者