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 ... 
随机推荐
- ExtJS4.2学习(14)基于表格的扩展插件(2)(转)
			鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-26/184.html --------------- ... 
- Portal相关技术及架构
			Portal以用户为中心,提供统一的用户登录,实现信息的集中访问,集成了办公商务一体的工作流环境.利用Portal技术,可以方便地将员工所需要的,来源于各种渠道的信息资料集成在一个统一的桌面视窗之内. ... 
- loadrunner  一个诡异问题
			最近使用loadrunner压测一个项目的时候,发现TPS波动巨大.且平均值较低.使用jmeter压测则没有这个问题.经过多方排查发现一个让人极度费解的原因: 原脚本: //脚本其他代码...... ... 
- TSS 任务状态段
			TSS(任务状态段) 1 什么是TSS TSS 全称task state segment,是指在操作系统进程管理的过程中,任务(进程)切换时的任务现场信息. 2 TSS工作细节 TSS在任务切换过程 ... 
- Codeforces Round #232 (Div. 1)
			这次运气比较好,做出两题.本来是冲着第3题可以cdq分治做的,却没想出来,明天再想好了. A. On Number of Decompositions into Multipliers 题意:n个数a ... 
- GridView使用CommandField删除列实现删除时提示确认框
			在.net2005提供的GridView中我们可以直接添加一个CommandField删除列完后在它的RowDeleting事件中完成删除 GridView在使用CommandField删除时弹出提示 ... 
- JAVA大数类练手
			今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ... 
- 第九章 Mass Storage设备
			9.1 Mass Storage设备介绍 USB的Mass Storage类是USB大容量储存设备类(Mass Storage Device Class).专门用于大容量存储设备,比如U盘.移动硬盘. ... 
- datetime 和 smalldatetime
			用于表示某天的日期和时间的数据类型. datetime 和 smalldatetime 表示某天的日期和时间. 数据类型 范围 精确度 datetime 1753 年 1 月 1 日到 9999 年 ... 
- [Quick-x]制作新手引导高亮区域方法之二:裁剪模式
			demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea 2.裁剪模式 (1)创建裁剪对象 , , ) --非高亮区域颜色 local b ... 
