HDU 2554 N对数的排列问题
这是昨天晚上小练里面比较有趣的一道题~我在做的时候思路错了,以为数字的排列会有规律,结果后面发现就算有也很难找......╮(╯▽╰)╭
看了网上的题解,有一种恍然大悟的感觉,就直接把它当做方程来解,只要符合题意的x,y存在即可~
题解:
假设双胞胎数为n,那么就共有2n个人,把双胞胎分开,分别记为A类和B类。在进行排列时,ak代表【年龄为k,同时所属分类为A的人在排列中的位置】,同理,bk则表示【年龄为k,所属分类为B的人在排列中的位置】~(注:在此假设ak<bk,sum(i)表示从1到i求和)
若该排列能符合题目要求,那么:
①bk-ak=k+1;(k=1,2,3,......,n)
②sum(bk-ak)=sum(k+1)=2+3+...+(k+1)=k*(k+3)/2;
③当ak,bk满足以上两个条件时,又应当有2k个位置来放双胞胎
因此:sum(ak+bk)=1+2+3+......+2*k=k*(1+2k);
④同时:sum(ak+bk)=sum(2*ak+(bk-ak))=2*sum(ak)+sum(bk-ak)=2*sum(ak)+k*(k+3)/2;
只有当所有双包胎都符合上面所有式子,那么才存在符合题意的排列,SO~应为共2n个数,那么k=n时,bk=2n,ak=2n-n-1=n-1;
由上式可得:sum(ak)=n*(3n-1)/4,sum(bk)=5*n*(n+1)/4;当上面两个式子为整数时,这个n是符合条件的~╮(╯▽╰)╭
代码:
#include<cstdio>
#include<cstring>
int main()
{
int n;
while( ~scanf("%d", &n) && n)
if(n% == || (n+) % == )
puts("Y");
else puts("N");
return ;
}
//memory:228KB time:31ms
HDU 2554 N对数的排列问题的更多相关文章
- (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岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...
- N对数的排列问题 HDU - 2554
N对数的排列问题 HDU - 2554 有N对双胞胎,他们的年龄分别是1,2,3,……,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好让年龄大的 ...
- hdu2554-N对数的排列问题
http://acm.hdu.edu.cn/showproblem.php?pid=2554 假设所有的2n个数据的位置分别从1~2n标号. 现在假设其中第ai个数据(双胞胎),和bi.那么他们的位置 ...
- HDU 5816 状压DP&排列组合
---恢复内容开始--- Hearthstone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java ...
- HDU 1261 字串数(排列组合)
字串数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- HDU 2492 BIT/逆序数/排列组合
Ping pong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- hdu 2554 最短路 (dijkstra)
最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
随机推荐
- AJax跨域请求百度音乐接口数据展示页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- LibLinear(SVM包)使用说明之(三)实践
LibLinear(SVM包)使用说明之(三)实践 LibLinear(SVM包)使用说明之(三)实践 zouxy09@qq.com http://blog.csdn.net/zouxy09 我们在U ...
- 黑客是怎样绕过WAF之三重防护绕过讲解
什么是WAF Web Application Firewall 通过执行一系列针对HTTP/HTTPS的安全策略来防御对Web应用的攻击. 目前主要有单设备WAF与云WAF WAF的现状 1.太多数W ...
- 关于JDNI、JMX
http://www.cnblogs.com/itech/archive/2010/09/16/1827999.html http://javacrazyer.iteye.com/blog/75948 ...
- Python 全栈开发 -- 开发环境篇
开发环境是一个文本编辑器和 Python 解释器的组合.文本编辑器用来写代码,解释器提供了一种方法来运行编写的代码.一个文本编辑器可以像 Windows 上的 Notepad 一样简单,或是一个复杂的 ...
- 雷军的B面:那些赔到血本无归的失败投资案例
文/李红双 雷军投资方向偏多元化布局,从电商到房地产,从互联网社区到移动互联网,多方跨界的结果必然是有失有得.本文扒一扒“雷军系”中最惨烈的电商投资,凡客诚品融资5.3亿美元目前处于垮台边缘,乐淘融资 ...
- 【Linux安全】防止 root 用户远程登录
防止 root 用户远程登录,在终端输入以下命令: vim /etc/ssh/sshd_config 修改如下行为:no PermitRootLogin no 如图所示:
- 《深入理解linux内核》第一章 序论
硬链接的限制
- .NET之特性和属性
1. 引言 attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间走进一个发现attribute登堂入室的入口.因为.NET Framework中使用了大量的定制特性来完成代码约定 ...
- bzoj3144
最小割解决最优值最突出的特点就是要将对象划分到两个集合中这题很明显,裸的最小割先把点连成一根根柱子,就是p(x,y,k)-->p(x,y,k+1)流量是P(x,y,k+1)的不和谐值然后s与p( ...