N对数的排列问题 HDU - 2554
N对数的排列问题
你的任务是,对于给定的N对双胞胎,是否有一个年龄序列,满足这一规律,如果是,就输出Y,如果没有,输出N。
Input共有若干行,每行一个正整数N<100000,表示双胞胎的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行是否有一个年龄序列,满足这一规律,如果是,就输出Y,如果没有,输出NSample Input
4
2
1309
0
Sample Output
Y
N
N
这个题实际上是一个数学问题,参照网上数学大佬给出的数学算法。我编程的时候使用的是c语言。
1.首先我们将第一个出现的定为ak(k=1,2,3……),第二个定义为bk(k=1,2,3……),要满足题目中所给出的条件,则必须满足bk-ak=k+1。
2.其次我们最终要寻找单独的ak或者bk的表达式,所以我们对bk-ak和bk+ak进行运算,我们首先对bk-ak进行求和sum(bk-ak)=2+3+4+…+(n+1)=n*(n+3)/2。
3.然后我们对bk+ak进行求和,每个数占一个位置从1开始到2n为止,所以sum(bk+ak)=sum(ak+bk)=1+2+3+...+2*n=(1+2*n)*(2*n)/2=(1+2*n)*n。
4.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。
5.通过2与3可得n*(n+3)/2=2*sum(ak)+n*(n+1)/2+n,sum(ak)=n*(3*n-1)/4。
最后得到的结果中无法得到ak的直接表达式,但如果ak位整数,那么显然sum(ak)一定为整数,最后就可以得到只要n*(3*n-1)/4为整数,就是一定存在的。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,o,p;
while(scanf("%d",&n)!=EOF&&n!=0){
o=n*(3*n-1);
if(o%4==0){
printf("Y\n");
}
else
printf("N\n");
}
return 0;
}
N对数的排列问题 HDU - 2554的更多相关文章
- HDU 2554 N对数的排列问题
LINK:HDU 2554 这是昨天晚上小练里面比较有趣的一道题~我在做的时候思路错了,以为数字的排列会有规律,结果后面发现就算有也很难找......╮(╯▽╰)╭ 看了网上的题解,有一种恍然大悟的感 ...
- 排列组合 HDU - 1521 -指数型母函数
排列组合 HDU - 1521 一句话区分指数型母函数和母函数就是 母函数是组合数,指数型母函数是排列数 #include<bits/stdc++.h> using namespace s ...
- (step7.2.3)hdu 2554(N对数的排列问题——简单数论)
题目大意:输入一个整数n,表示有n对整数.判断能否出现一种情况就是2个1之间有1个数,2个2之间有2个数..... 解题思路: 准备知识: ①n对数,共2*n个数.所以要有2*n个位置来放置这2*n个 ...
- HDU 2554 N对数的排列问题 ( 数学 )
题目链接 Problem Description 有N对双胞胎,他们的年龄分别是1,2,3,--,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...
- hud 2554 N对数的排列问题 (规律)
题目链接 Problem Description 有N对双胞胎,他们的年龄分别是1,2,3,--,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...
- hdu2554-N对数的排列问题
http://acm.hdu.edu.cn/showproblem.php?pid=2554 假设所有的2n个数据的位置分别从1~2n标号. 现在假设其中第ai个数据(双胞胎),和bi.那么他们的位置 ...
- (next_permutation) 排列2 hdu 1716
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- hdu 2554 最短路 (dijkstra)
最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- HDU题解索引
HDU 1000 A + B Problem I/O HDU 1001 Sum Problem 数学 HDU 1002 A + B Problem II 高精度加法 HDU 1003 Maxsu ...
随机推荐
- 关于NativeEvent的处理
nativeEvent(const QByteArray &eventType, void *message, long *result){ chASSERT(message != NULL) ...
- 设置dedecms标签 [field:global.autoindex/] 初始值{class递增}
在{dede:arclist/}这个标签中有个[field:global.autoindex/],是从0开始自增,如果我们想自定义一个数值,比如自定义从2开始.那么就可以写成下面代码: [field: ...
- June 30th 2017 Week 26th Friday
Love me little and love me long. 不求情意浓,但愿情意久. Some people say beautiful young people are the creatur ...
- awk的简单使用
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- Spring AOP 的切点切在Controller上没有起作用的问题。
做下笔记,以防忘记. 在Spring MVC 中使用面向切面编程,感觉所有的配置.切面.切点的编写都没有写错,但是当切点切在@Controller注解的类的方法上时就不起作用.当切点切在的其他的非@C ...
- UVa 1262 - Password(解码)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- nbu异地备份实施前,数据收集日志
1.修改bp.conf配置文件显示重删率 BPDBJOBS_COLDEFS = JOBID 5 true BPDBJOBS_COLDEFS = TYPE 7 false BPDBJOBS_COLDEF ...
- el表达式不显示值
1.场景是自己搭建一个ssm的项目,登录页面跳转到首页,首页显示登录用户的信息,用request传递的值,用el表达式在jsp页面中没有显示 2.解决办法 早jsp的代码中添加头<%@ page ...
- Java中的IO流(四)
上一篇<Java中的IO流(三)>把IO流中的文件及目录操作的对象File类记录了一下,本篇把本不属性IO流但又和IO流有关系的一个对象作一下记录,此对象本属于集合框架里的一个子集,即Pr ...
- angularjs ng-app="angular_app" ng-controller="angular_controller" ng-init="findAll()"
ng-app="angular_app" 范围 ng-controller="angular_controller" 控制器 ng-init="fin ...