题目链接

题意:

1-m中,四个数凑成一组,满足任意2个数的gcd=k,求一个最小的m使得凑成n组解。并输出

分析: 直接粘一下两个很有意思的分析。。

分析1:

那我们就弄成每组数字都互质,然后全体乘以k不就行了么……

然后看了看样例……

这个该怎么说……我是觉得额这道题的output暴露了数据规律怎么破……我算是看出规律再证明的方式A的这道题

当时我看到22那个样例的时候……在想他干嘛要把22放这里……然后发现 2/4/6/10 14/16/18/22也是行的哇……

化成乘以k之前的数据…… 1/2/3/5和7/8/9/11……我就试了试——每组公差都是6?……然后就A了……

分析2:

本题的目标是选择4n个数填入到n行,每行四个数,要求是使得每行中的四个数两两的最大公约数等于K。问怎样选择使得选择的最大的数字最小,并且要求输出这个最大的数以及每一行所填的数字。
那么我们转化一下,将所有的数除以K。问题即转化成使得每行四个数两两互质。
易知,每一行最多一个偶数,因为偶数之间不互质。
现在我们假设每一行都有一个偶数,那么至少我们需要选择3n个奇数,假设我们选择最小的3n个奇数,那么最大的数即6n-1(我们假设偶数不会大于最大的奇数,事实上最大的数一定是奇数,接下来我们会给出证明),每少一个偶数,则最大的数的大小便增加2。
好了,现在我们假设只用最小的3n个奇数以及n个均不大于6n-1的偶数可以满足题目要求!
那么,第一行的答案就是6n-1。
接下来n行我们以下面的形式构造:
1 2 3 5
7 8 9 11
……
6i-5 6i-4 6i-3 6i-1
……
6n-5 6n-4 6n-3 6n-1

这样便得到了最终的答案。
以这样的构造方法交上去便可AC。

但是我们能否证明呢?显然是可以的。
对于其中的某一行我们有i i+1 i+2 i+4(i为6x-5,其中x为正整数,同时我们可以知道i为正整数且i为奇数)。
由于i,i+1,i+2两两互质。
i和i+2不互质当且仅当i,i+2为偶数,但由上面的定义我们可知i必定为奇数,所以i,i+1,i+2两两互质。
同理i+2,i+4也互质。
所以我们只需要i,i+4互质且i+1,i+4互质即可。
因为i与i+4不互质当且仅当i为4的倍数,i+1与i+4不互质当且仅当i+1为3的倍数。
因为i为奇数,所以i必定与i+4互质。
因为i+1 = 6x-4 = 2*(3x-2),不是3的倍数,所以i+1与i+4互质。
因此,这样的构造是可行且最小的。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <cmath>
#include <algorithm>
#define LL __int64
const int maxn = +;
using namespace std;
int n, k; int main()
{
int i;
while(~scanf("%d%d", &n, &k))
{
cout<<k*(*n-)<<endl;
for(i = ; i < *n; i += )
{
printf("%d %d %d %d\n", k*i, k*(i+), k*(i+), k*(i+));
}
}
return ;
}

Codeforces Round #272 (Div. 2) D. Dreamoon and Sets (思维 数学 规律)的更多相关文章

  1. Codeforces Round #272 (Div. 2) D. Dreamoon and Sets 构造

    D. Dreamoon and Sets 题目连接: http://www.codeforces.com/contest/476/problem/D Description Dreamoon like ...

  2. Codeforces Round #272 (Div. 2) D.Dreamoon and Sets 找规律

    D. Dreamoon and Sets   Dreamoon likes to play with sets, integers and .  is defined as the largest p ...

  3. Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划

    E. Dreamoon and Strings 题目连接: http://www.codeforces.com/contest/476/problem/E Description Dreamoon h ...

  4. Codeforces Round #272 (Div. 2) B. Dreamoon and WiFi dp

    B. Dreamoon and WiFi 题目连接: http://www.codeforces.com/contest/476/problem/B Description Dreamoon is s ...

  5. Codeforces Round #272 (Div. 2) A. Dreamoon and Stairs 水题

    A. Dreamoon and Stairs 题目连接: http://www.codeforces.com/contest/476/problem/A Description Dreamoon wa ...

  6. Codeforces Round #272 (Div. 2) E. Dreamoon and Strings dp

    题目链接: http://www.codeforces.com/contest/476/problem/E E. Dreamoon and Strings time limit per test 1 ...

  7. Codeforces Round #272 (Div. 1) A. Dreamoon and Sums(数论)

    题目链接 Dreamoon loves summing up something for no reason. One day he obtains two integers a and b occa ...

  8. Codeforces Round #272 (Div. 2)-C. Dreamoon and Sums

    http://codeforces.com/contest/476/problem/C C. Dreamoon and Sums time limit per test 1.5 seconds mem ...

  9. Codeforces Round #272 (Div. 2)-B. Dreamoon and WiFi

    http://codeforces.com/contest/476/problem/B B. Dreamoon and WiFi time limit per test 1 second memory ...

随机推荐

  1. 在C语言中嵌入汇编语言

    TMS320C28x编译器允许在C程序中嵌入汇编指令,通过下面声明实现: asm(“assembler text”); 其中assembler text指汇编代码.asm指令一般用来处理C/C++语句 ...

  2. 从浏览器的console获取angularjs的scope

    http://ionicframework.com/blog/angularjs-console/ 1: Access Scopes We can access any scope (even iso ...

  3. HDOJ 1085 Holding Bin-Laden Captive! (母函数)

    Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  4. asp.net @reqister指令

    @register指令通过声明将自定义 ASP.NET 服务器控件添加到页或用户控件中. 1.@register 指令有两种用法如下 <%@ Register tagprefix="t ...

  5. ubuntu安装hive

    1.安装mysql,可参考下面链接 http://www.cnblogs.com/liuchangchun/p/4099003.html 2.安装hive,之前,先在mysql上创建一个hive,数据 ...

  6. 来认识下less css

    简介 感觉自己都out了,跟不上web时代的潮流了,前不久才刚接触这玩意,发觉lesscss在某些方面还挺有用的,说白了这东西就是一种动态的样式语言,语法类似于css,可以像java那样进行编译,生成 ...

  7. FZU Problem 2148 Moon Game (判断凸四边形)

    题目链接 题意 : 给你n个点,判断能形成多少个凸四边形. 思路 :如果形成凹四边形的话,说明一个点在另外三个点连成的三角形内部,这样,只要判断这个内部的点与另外三个点中每两个点相连组成的三个三角形的 ...

  8. 从.NET 1.1 升级到.NET 4.0 遇到 线程间操作无效: 从不是创建控件 [XX] 的线程访问它.

    有两种方式解决 1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;2.使用Invoke等委托函数 问题原因是 .NET2.0 以后拒绝 ...

  9. 如何开启Centos6.4系统的SSH服务

    无论是Centos6.4系统的虚拟电脑还是服务器,始终感觉直接在命令行中操作不方便:比如全选.复制.粘贴.翻页等等.比如服务器就需要在机房给服务器接上显示器.键盘才操作感觉更麻烦.所以就可借助SSH( ...

  10. installation failed with message null

    http://stackoverflow.com/questions/33315753/installation-failed-with-message-null-genymotion-error I ...