题目链接

题意:

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. .NET设计模式(7):创建型模式专题总结(Creational Pattern)(转)

    概述 创建型模式,就是用来创建对象的模式,抽象了实例化的过程.它帮助一个系统独立于如何创建.组合和表示它的那些对象.本文对五种常用创建型模式进行了比较,通过一个游戏开发场景的例子来说该如何使用创建型模 ...

  2. jQuery打印插件PrintArea实现

    实现javascript打印功能,打印整个页面就很简单,但如果指定打印某一个区域就有点难点,这里有一个jQuery插件PrintArea可实现打印页面某区域功能. 使用说明需要使用jQuery库文件和 ...

  3. 驱动笔记 - Makefile

    ifneq ($(KERNELRELEASE),) obj-m := hello.ohello-objs := main.o add.o else KDIR := /lib/modules/2.6.1 ...

  4. Sqli-labs less 48

    Less-48 本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的. 可以利用sort=rand(true/false)进行判断. http://127 ...

  5. 一道有趣的javascript编程题

    题目:实现以下功能 1. 点击按钮“打开新窗口”,打开新的子页面,要求新窗口的大小为400px X 200px 2. 输入地址信息,点击“确定”按钮,关闭该页面 3. 将子页面中输入的地址信息,回传到 ...

  6. HDU5002 Tree(LCT)

    今天做了一道LCT模板题之后忽然间好像记起来LCT的模板怎么用了,于是就把上次网络赛的一道LCT补一下.典型的删边,加边操作,还有路径加和路径set为一个数.维护的是路径第二大以及它有多少个,后来想想 ...

  7. HDU3341 Lost's revenge(AC自动机&&dp)

    一看到ACGT就会想起AC自动机上的dp,这种奇怪的联想可能是源于某道叫DNA什么的题的. 题意,给你很多个长度不大于10的小串,小串最多有50个,然后有一个长度<40的串,然后让你将这个这个长 ...

  8. SqlServer 常用

    Sql的函数 newId() 获得guid: getDatatime() 获得当前时间: Row_number() 分页常用的函数. 比top 好用的函数select  Row_Number() ov ...

  9. 关于com组件注册的问题

    问题是这样的: 在调用摄像头的时候,用到com组件,我已经在工程中添加了com组件,但是运行的时候却报这样的错误. 解决方案:程序生成中,目标平台为Any CPU ,应该改为x86 具体原因不知道……

  10. editplus bat语法高亮

    editplus bat语法高亮 今天需要在Windows上写批处理,因为没写过,避免关键字错误,就需要语法高亮了,editplus默认没有bat语法文件,赶紧解决. 1:到 http://www.e ...