题目大意:输入一个整数n,表示有n对整数。判断能否出现一种情况就是2个1之间有1个数,2个2之间有2个数。。。。。

解题思路:

准备知识:

①n对数,共2*n个数。所以要有2*n个位置来放置这2*n个数。②sum()表示求和运算。

正式解决:

①设k(k=1,2,..,n)放置的第一个位置为ak,第二个位置为bk。显然有bk-ak=k+1(假定下一个位置在上一个位置之前)。

那么会有sum(bk-ak)=2+3+4+...+(n+1)=(1+2+3+...+n)+(1+1+...+1)=n*(n+1)/2+n。

②又因为要有2*n个位置来放置这2*n个数。则sum(ak+bk)=1+2+3+...+2*n=(1+2*n)*(2*n)/2=(1+2*n)*n。

③sum(ak+bk)=sum(ak+ak+k+1)=sum(2*ak+bk-ak)=2*sum(ak)+sum(bk-ak)=2*sum(ak)+n*(n+1)/2+n。

④比较②③可得:(1+2*n)*n=2*sum(ak)+n*(n+1)/2+n。可得sum(ak)=n*(3*n-1)/4。

⑤就像前面已经说过的一样,ak表示数k第一次出现的位置。ak不易确定。当可以肯定的是sum(ak)一定为正整数。

那么就会有n=4*p或者3*n-1=4*p(p为正整数)。

(以上解题思路转载自
http://blog.csdn.net/lulipeng_cpp/article/details/7661207

代码如下:

/*
* 2554_1.cpp
*
* Created on: 2013年9月1日
* Author: Administrator
*/ #include <stdio.h> int main(){
int n;
while(scanf("%d",&n)!=EOF,n){
if(n % 4 == 0 || (3*n - 1) % 4 == 0){
printf("Y\n");
}else{
printf("N\n");
}
}
}

(step7.2.3)hdu 2554(N对数的排列问题——简单数论)的更多相关文章

  1. HDU 2554 N对数的排列问题

    LINK:HDU 2554 这是昨天晚上小练里面比较有趣的一道题~我在做的时候思路错了,以为数字的排列会有规律,结果后面发现就算有也很难找......╮(╯▽╰)╭ 看了网上的题解,有一种恍然大悟的感 ...

  2. HDU 2554 N对数的排列问题 ( 数学 )

    题目链接 Problem Description 有N对双胞胎,他们的年龄分别是1,2,3,--,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...

  3. (step7.2.1)hdu 1395(2^x mod n = 1——简单数论)

    题目大意:输入一个整数n,输出使2^x mod n = 1成立的最小值K 解题思路:简单数论 1)n可能不能为偶数.因为偶数可不可能模上偶数以后==1. 2)n肯定不可能为1 .因为任何数模上1 == ...

  4. hud 2554 N对数的排列问题 (规律)

    题目链接 Problem Description 有N对双胞胎,他们的年龄分别是1,2,3,--,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...

  5. HDU 5053 the Sum of Cube(简单数论)

    http://acm.hdu.edu.cn/showproblem.php?pid=5053 题目大意: 求出A^3+(A+1)^3+(A+2)^3+...+B^3和是多少 解题思路: 设f(n)=1 ...

  6. N对数的排列问题 HDU - 2554

    N对数的排列问题 HDU - 2554 有N对双胞胎,他们的年龄分别是1,2,3,……,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好让年龄大的 ...

  7. Least Common Multiple (HDU - 1019) 【简单数论】【LCM】【欧几里得辗转相除法】

    Least Common Multiple (HDU - 1019) [简单数论][LCM][欧几里得辗转相除法] 标签: 入门讲座题解 数论 题目描述 The least common multip ...

  8. 七夕节 (HDU - 1215) 【简单数论】【找因数】

    七夕节 (HDU - 1215) [简单数论][找因数] 标签: 入门讲座题解 数论 题目描述 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们 ...

  9. (step7.2.4)hdu 2674(N!Again——简单数论)

    题目大意:输入一个整数n,输出N! mod 2009 的结果. 解题思路: 1)任意数  n = ( n / 2009) * 2009 + n % 2009 2)40!  mod 2009  等于 2 ...

随机推荐

  1. 软件包管理_rpm命令管理_yum工具管理_文件归档压缩_源码包管理

    rpm命令管理软件 对于挂载的像U盘那种都会在midea目录下,但是会显示在桌面上 安装软件(i:install,v:verbose冗长的,h:human):rpm  -ivh  xxxx.rpm 安 ...

  2. Mac OS X Mavericks or Yosemite 安装Nginx、PHP、Mysql、phpMyAdmin

    翻译:http://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/ 最 ...

  3. 用git上传项目到github

    1 git  clone  github仓库地址 2 git add . 3 git  commit -m "changes log" 4 git remote add origi ...

  4. 使用js对select动态添加和删除OPTION示例代码

    动态删除select中的所有options.某一项option以及动态添加select中的项option,在IE和FireFox都能测试成功,感兴趣的朋友可以参考下,希望对大家有所帮助   <s ...

  5. oracle 10 g 需要启动的2个服务

    开始-> run -> cmd -> services.msc OracleOraDB10g_home1TNSListener OracleServiceORCL

  6. Decorator Pattern(装饰模式)

    装饰模式:动态的给一个对象添加一些额外的职责.当然我们也可以通过继承来实现类似的功能,但是随着子类的增多,各种子类的组合会造成子类的急剧膨胀. Requirement: 假设客户有一个要求,需要打一个 ...

  7. iOS开发中遇到的bug

    报错:The operation couldn’t be completed. (LaunchServicesError error 0.) 解决办法:重置模拟器

  8. PHP自练项目中个人中心创建,修改,验证(服务器端和客户端验证)

    当注册成功到登录后进入个人中心,查看和修改自己的资料 第一步:创建个人中心: <?php //定义个常量,用来授权调用includes里面的文件 define('IN_TG',true); // ...

  9. 门面(Facade)模式--医院,保安系统实例

    门面(Facade)模式 http://www.cnblogs.com/zhenyulu/articles/55992.html

  10. Linux常用解压文件

    tar.gz    tar -zxvf filename.tar.gz tar.bz2  tar -vxjf filename.tar.bz2