ACM__新技巧
ACMer_Shadow
Just Going!! 2016年6月6日开始学习Java!学有余力,刷ACM题!
展开
-
错排公式
错排问题 就是一种递推式,不过它比较著名且常用,所以要熟记!n各有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。任给一个n,求出1,2,……,n的错排个数Dn共有多少个。递归关系式为:D(n)=(n-1)(D(n-1)+D(n-2))D(1)=0,D(2)=1可以得到:错排公式为 f(n) = n![1-1/1!+1转载 2015-08-09 12:16:59 · 525 阅读 · 0 评论 -
编程中无穷大常量的设定技巧【0x3f3f3f3f】
编程中无穷大常量的设定技巧如 果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况 下,0x7fffffff并不是一个好的选择。很多时候我们并不只是单转载 2016-07-18 20:37:47 · 1249 阅读 · 0 评论 -
HDU 1044 Collect More Jewels【BFS+DFS+建立距离图】
Collect More JewelsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6707 Accepted Submission(s): 1556Problem DescriptionIt is原创 2016-07-28 16:59:16 · 821 阅读 · 0 评论 -
判断两个浮点数是否相等
一般 两个数的差 小于10的8次方 就算相等double fabs(double num)是浮点的绝对值int abs(int num)是计算整数的绝对值#include#include#includeint main (void){ double a,b,num[110]; scanf("%lf%lf",&a,&b); if(fabs(a-b)<1原创 2016-07-27 18:49:15 · 2019 阅读 · 0 评论 -
【C++优先队列】
优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~百度百科上这样描述的: 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素 优先队列的类定义 优先队列是0个或多个元素的集合,每个元素都有一个优先权或转载 2016-07-16 21:18:44 · 2954 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone【经典DPS】
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 90627 Accepted Submission(s): 24657Problem DescriptionThe dogg原创 2016-07-03 23:45:16 · 3248 阅读 · 0 评论 -
【学习排序】
sortTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33601 Accepted Submission(s): 9992Problem Description给你n个整数,请按从大到小的顺序输出其中原创 2016-05-15 21:46:29 · 8589 阅读 · 2 评论 -
HDU 1108 最小公倍数【欧几里得算法】【更相减损术】【stein算法】
最小公倍数Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39955 Accepted Submission(s): 22347Problem Description给定两个正整数,计算这两个数的最小公原创 2015-07-10 15:07:46 · 1699 阅读 · 0 评论 -
HDU 1081 To The Max【DP】【最大子段矩阵求和】
D - To The MaxCrawling in process...Crawling failedTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmitStatus Practice HDU 1081 Appoint descripti原创 2016-02-25 21:28:05 · 806 阅读 · 0 评论 -
HDU 1716 排列2【DPS】
排列2Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5678 Accepted Submission(s): 2173Problem DescriptionRay又对数字的列产生了兴趣:现有四张卡片,原创 2015-08-17 13:49:34 · 700 阅读 · 0 评论 -
树状数组的初次邂逅
树状数组 树状数组是一个查询和修改都为log(n)的数据结构。主要用于两个数之间的所有元素之和。树状数组和线段树很像。但能用树状数组解决的问题,基本上都能用线段树解决,而线段树能解决的树状数组不一定能解决。相比较而言,树状数组效率要高很多。 一、回顾一维树状数组 假设一维数组为A[i](i=1,2,...原创 2015-07-21 20:16:16 · 528 阅读 · 0 评论 -
HDU 4548 美素数【树状数组+筛法求素数】
美素数Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 4381 Accepted Submission(s): 1507Problem Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出原创 2015-07-21 20:27:24 · 613 阅读 · 0 评论 -
多柱汉诺塔最优算法设计探究
多柱汉诺塔最优算法设计探究 引言汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究。最简单的汉诺塔是三个柱子(A、B、C),因此多柱汉诺塔的柱子个数M≥3。下面从三柱汉诺塔说起,慢慢深入我们要关心的问题。 1. 三柱汉诺塔三柱汉诺塔是经典的汉诺塔问题,在算法设计中是递归算法的典型问题。其算法是这样的: 首先把A 柱上面的n- 1转载 2015-08-09 12:16:11 · 1729 阅读 · 0 评论 -
大素数高效算法判断
前段日子我也在做素数,下面是我的一个总结,看到那个2秒搞定的,我还真想去看看当数字小于1000000时,可以用简单的判断C/C++ code?12345678int isprime(int n) { int i; fo转载 2015-07-09 18:08:17 · 9037 阅读 · 2 评论 -
HDU 3085 Nightmare Ⅱ【BFS +曼哈顿距离+综合性较强】
Nightmare ⅡTime Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 16 Accepted Submission(s) : 6Font: Times New Roman | Verdana | Georgia原创 2016-08-01 15:20:09 · 822 阅读 · 0 评论