狮子和猿
爱电影,爱自由。做开发,在学习。
展开
-
P、V操作
P:申请一个资源V:释放一个资源struct semaphore{ int value;//信号量的值,表示可用资源的数目 List_of_precess L;//在此信号量上等待的进程队列的对手指针}S; if(S.value>0):可供使用的资源的数目 if(S.value==0):无资源、无进程等待 if(S.value<0):相反数为等待使用资源的进程的数目 在信原创 2012-04-10 00:23:05 · 3292 阅读 · 0 评论 -
模拟-页面替换算法-javascript
一点点牢骚:无力吐槽不入流的院校各种不可理喻的约束却也不顾死活的学术,学业看似在发展专业却似在敷衍。IT的码农总不能在求学的路上遭受刀耕火种的苦命吧。。。(老实交代,OS课上存储器磁带讲的比磁盘多,德高望重哇)页面置换算法div{ border: 1px blue solid; width: 600; height: 400;} fu原创 2012-04-29 00:44:08 · 709 阅读 · 0 评论 -
[高数 ] hdu 4335 Party All the Time
/**hdu 4335 Party All the Time数学计算题,枚举每段区间,在每个区间上构造一元三次函数,求最小值。注意n == 1时直接输出0据说这个三分可以了,又据说可以O(1)的找到最优解的根。*/#include #include #include using namespace std;#define N 50005#de原创 2012-08-10 00:03:22 · 503 阅读 · 0 评论 -
hdu 1250 hdu 1130 java水大数
http://acm.hdu.edu.cn/showproblem.php?pid=1250//import java.io.*;import java.math.*;import java.util.*;public class Main { public static void main(String args[]){ Integer n,i,N = 9001原创 2012-05-25 21:00:35 · 748 阅读 · 0 评论 -
hdu 4139 质因子分解
两个数组的乘积分别为分子分母,求化简结果分解质因子/**质因子分解*/#include #include #define N 1000001int a,p[N];void solve(int f){ for(int i = 2; i * i <= a;++i) if(a && a%i ==0) { w原创 2012-05-13 02:18:03 · 502 阅读 · 0 评论 -
[规律] hdu 1005 Number Sequence#坑爹一水
/**[规律] hdu 1005 Number Sequence#坑爹一水f[i] 取值为0~6,且由f[i-1] 和f[i-2] 决定。f[i-1] f[i-2]共49种组合,故必然有小于50的循环节*/#include #define N 1000int f[N] ={1,1};int main(){ //f[0] = f[1] = 1; i原创 2012-08-10 22:36:33 · 451 阅读 · 0 评论 -
hdu 3369 robot 差分求多项式的和
#include#include#define MODE 1000000007long long f[12][12];int k,kk,n,d;int A[12]={1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800};long long int inv[]={1,500000004,166666668,41666667,80原创 2012-04-19 22:48:08 · 1241 阅读 · 0 评论 -
[math] hdu 3816 to be no. one
/**[math] hdu 3816 to be no. one一道没有输入的spj的计算,老是感觉代码写的好搓1/n= 1/(a*b)=1/a*(a+b) + 1/b*(a+b)*/#include #include #include using namespace std;int f[19][19] = {{},{},{},{0,2,3,6}};void cal(int原创 2012-08-17 19:06:48 · 513 阅读 · 0 评论 -
[exgcd] hdu 4180
/**[exgcd]hdu 4180 给出分数(a/b)求另一个分数(c/d){d < b),且满足fabs(a/b - c/d)最小。ab互质时最小时满足 bc+1 = ad || bc = ad+1,正符合扩展欧几里得。求出两个d后比较。因为下载了数据,充分见证了精度损失的严重性,比较两个实数的距离时一直WA(用计算器发现小数点后20位才不同)比较两个d的大小即可原创 2012-08-12 17:57:33 · 1382 阅读 · 0 评论 -
xt 1140 Anti-Goldbach's Conjecture
哥德巴赫猜想:任一大于2的偶数,都可表示成两个素数之和。是世界上最著名的未解问题之一,但是下面的反哥德巴赫猜想:任一大于11的奇数,都可表示成两个合数之和。确很容易证明。定义反哥德巴赫分拆数g(n)表示将大于11的奇数n分解为两个合数之和的方案数。再定义sg(n)=sum({g(i) | i ≤ n}),即所有不大于n的奇数的反哥德巴赫分拆数之和。你的任务就是快速的计算给定原创 2012-05-22 03:13:55 · 582 阅读 · 0 评论 -
hdu 1134 hdu 2067 #Java水卡特兰
1134import java.io.*;import java.math.*;import java.util.*;public class Main{ public static void main(String []args){ Scanner cin = new Scanner(System.in); Integer N = 101,i; BigInteg原创 2012-05-28 01:37:00 · 1851 阅读 · 0 评论 -
csu 1246 十二指肠钩虫 简单计算
Description十二指肠钩口线虫是寄生于人体肠道内的一种钩虫,这种钩虫咬附在肠壁上吸取血液,对人体危害很大。其危害之处在于:1.吸血速度极快。吸进去的血并不消化而直接排出。2.经常更换咬附部位,造成肠壁上留下许多伤口。3.分泌抗凝素,使伤口很长时间内不能愈合,不断渗血。因此,感染了这种钩虫的病人常由于肠道内大量出血而出现继发性贫血症状。假设钩虫的吸血速度是恒定的,原创 2012-04-20 19:03:56 · 482 阅读 · 0 评论 -
hdu 1063 求幂 java水之
http://acm.hdu.edu.cn/showproblem.php?pid=1063import java.io.*;import java.util.*;import java.math.*;public class Main { public static void main(String args[]){ Scanner cin = new Scanner(Sy原创 2012-05-25 20:05:38 · 933 阅读 · 0 评论 -
hdu 1131 Count the Trees # java水大数
http://acm.hdu.edu.cn/showproblem.php?pid=1131求N个不同结点的组成的树的种类卡特兰数求出 树的结构 的个数,乘以结点的阶乘import java.io.*;import java.math.*;import java.util.*;public class Main{ public static void main(S原创 2012-05-28 01:19:05 · 397 阅读 · 0 评论 -
[规律] hdu 4357 string change
/**[规律] hdu 4357from hdoj人人当字符串长度为2时,直接模拟,最多26次否则。。1,定义字符串的奇偶性为该字符串所有字符之和的奇偶性2,当字符串的奇偶性不同时肯定为NO3,当字符串的奇偶性相同时一定是YES ,证明如下对于任意三个位置的字符(x,y,z),可进行变化:(x,y,z) (x,z+1,y+1) (y+2,z+1,x+1) (y+2,x+2,z+2原创 2012-08-09 21:20:25 · 529 阅读 · 0 评论 -
hdu 3625 第二类斯特林数
http://acm.hdu.edu.cn/showproblem.php?pid=3625就是给你N个房间,然后每个房间1把钥匙,你最初手里没有任何钥匙,要靠破门而入!这里只有第一个房间不能破门进去,其他都可以,给你房间数N,和最多能破门的个数,让你求能全部把房间打开的概率!/**斯特林第一类数的应用首先这题其实让我们求的是给 N个元素,让我们求K个 环排列原创 2012-05-25 18:29:39 · 4183 阅读 · 0 评论 -
poj 3761 bubble sort#排列组合
/**题意,求含n个不同元素的排列恰好经过k趟冒泡排序变得有序。问原数组有多少种排列情况解法:首先,定义一个 f(x)表示在数组中位于元素x左面且大于x的个数。那么,1,f(x) = 0 (x = 1,2,...,n)是最终有序的状态2,f(x) <= n - x;3,对于每趟冒泡排序,若f(x) != 0,则f(x)--;比较好求的是经过不超过k趟冒泡的排列数g(k)易知,k原创 2012-08-02 03:45:35 · 1309 阅读 · 0 评论 -
hnu 12422 bird tree#找规律
roblem descriptionThe Bird tree1 is an infinite binary tree, whose first 5 levels look as follows:It can be defined as follows:This is a co-recursive definition in which both occurrences原创 2012-08-04 23:08:47 · 1156 阅读 · 0 评论 -
hdu 4200 gauss+DFS
关灯问题,问最少需要开关数(开关种类有多个)高斯消元/**hdu 4200 bad writing高斯消元+DFS若满足n > 2D + 1,则矩阵的秩 >= n;故dfs的规模为2^(D+1)*/#include #include #include #include using namespace std;#define N 101int n,D,g[N原创 2012-05-06 02:20:08 · 668 阅读 · 0 评论 -
关于编译器的取模 %
出自http://www.cnblogs.com/ppboy_dxh/archive/2011/02/18/1958175.html我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。truncate除法 && floor除法 在大多数编程语言中,如果整数a不是整数b的整数转载 2012-03-04 23:16:17 · 784 阅读 · 0 评论 -
鸽巢原理 应用
两个碟子,其中一个比另一个小,它们均被分成200个恒等的扇形。在大碟子中任选100个扇形并涂成红色;而其余的100个扇形则涂成兰色。在小碟子中,每一个扇形或涂成红色或涂成兰色,所涂红色扇形和兰色扇形的数目没有限制。然后,将小碟子放到大碟子上面使两个碟子的中心重合。证明,能够将两个转载 2011-09-18 16:45:21 · 1058 阅读 · 0 评论 -
[求和]poj 1990 MooFest #树状数组加速
/**[求和]poj 1990 MooFest #树状数组加速{解法copy自poj的discuss求总和∑(max(v[i],v[j])*abs(dist[j]-dist[i]) ) )思路:先对牛按照v从小到大排序。对于牛i,它与比他听力还小的牛之间交谈需要音量都是v[i],再乘以之间的距离就可以了。在排好序后,设:count[i]:比i听力小的且x坐标比第i头牛小的牛总数to原创 2012-08-11 23:45:33 · 527 阅读 · 0 评论 -
hdu 4135 容斥原理
/**容斥原理//通常我们求1~n中与n互质的数的个数都是用欧拉函数! 但如果n比较大或者是求1~m中与n互质的数的个数等等问题,要想时间效率高的话还是用容斥原理!先对n分解质因数,分别记录每个质因数,那么所求区间内与某个质因数不互质的个数就是n / r(i),假设r(i)是r的某个质因子假设只有三个质因子,总的不互质的个数应该为p1+p2+p3-p1*p2-p1*p3-p2*原创 2012-05-12 17:27:00 · 569 阅读 · 0 评论 -
hdu 1133 卡特兰数的应用 java水大数
( C(m+n, n)- C(m+n, m+1) )* m!* n! 化简即 (m+n)!* (m-n+1)/ (m+1)推导过程如下 :m个人拿50,n个人拿100 1: 所以如果 n> m,那么排序方法数为0 这一点很容易想清楚2: 现在我们假设 拿50的人用 ‘0’表示, 拿100的人用1 表示。如果有这么一个序列 0101101001原创 2012-05-28 00:13:00 · 1890 阅读 · 0 评论 -
hdu 1753 a+b Java Decimal类
import java.util.*;import java.math.*;public class Main{ public static void main(String args[]){ Scanner cin=new Scanner(System.in); BigDecimal a,b; String c; while(cin.hasNext()){ a=ci原创 2012-04-12 21:59:29 · 526 阅读 · 0 评论 -
hdu 1799 DFS求组合数
循环多少次Problem Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,如果代码中出现for(i=1;i那么做了n次OP运算,如果代码中出现fori=1;i for(j=i+1;j那么做了n*(n-1)/2 次OP 操作。现在给你已知有m层for循环操作,且每次for中变量的起始值是上一个变原创 2012-05-07 02:34:43 · 476 阅读 · 0 评论 -
[统计] hdu 4379 the more the better
/**[统计] hdu 4379 the more the better数据都2 * 10^7了却只给4s的时间是要说明hdu服务器比较强大啊,好吧,O(n)的算法。解题报告 from 人人hdoj简单题,首先想到所有小于 L/2 的,统统可以放进来,最后,按照题意,还可能可以放一个大于 L/2 的数进来,当小于 L/2 的数里面的最大值加上这个大于 L/2 的数的和小原创 2012-08-17 12:23:52 · 543 阅读 · 0 评论 -
[迭代] poj 2748 Logs Stacking
/**[迭代] poj 2748 Logs Stacking迭代 f[n] = f[n-1] + 2f[n-2] + 3f[n-3] +...+ f[1] + 1;网上好多说是 f[n] = 3f[n-1] - f[n-1],这个没有看出来,不过容易推出另一个 f[n] = f[n-1] + sum[n-1];这时,由于n很大,还是无法AC。幸好取得模比较小,考虑到可能有循环节(看了d原创 2012-08-08 14:10:57 · 809 阅读 · 0 评论 -
xt 1142 3n+1 注意超32bit,暴力
考拉兹猜想,又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。如n = 6,根据上述数式,得出 6→3→10→5→16→8→4→2→1。步骤中最高的数是16,共有8个步骤。现在给定任意整数a和b,问对所有a ≤ n ≤ b,一共经过多少步后才能都得到1,原创 2012-05-21 12:10:09 · 1587 阅读 · 0 评论 -
[数学] hdu 4377
/**[数学] hdu 4377解题报告 from 人人HDOJ其实这是个挺有趣的题,你需要构造一个 1..N 的排列,使得其最长上升序列的长度和最长下降序列的长度的最大值最小。应该比较容易能够想到这个答案是 sqrt(N) 级别的,这个结论的证明可以参考吴文虎的那本组合数学 p21 。当然这还没有结束,怎么找字典序最小的那个解呢?先看看完全平方数吧,对于 4 ,我原创 2012-08-17 12:25:06 · 868 阅读 · 0 评论 -
[随机算法因子分解] hdu 4344
/**求64-bit的所有素因子,c++下提交超时额*/#include "stdio.h"#include #include #include #include using namespace std;#define I64 __int64#define MAXN 10#define MK make_pairI64 minn;I64 multi(I64 a,I64 b原创 2012-08-07 21:06:10 · 778 阅读 · 0 评论 -
hdu 3270 The Diophantine Equation
The Diophantine EquationTime Limit: 1000/500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 933 Accepted Submission(s): 250Problem DescriptionWe will consid原创 2012-04-29 16:18:23 · 602 阅读 · 0 评论 -
hdu 4197 Popping Balloons
转自http://hi.baidu.com/convexhull/blog/item/9995950088b44c4ef919b8a0.html问题描述:给定平面上n个外切和相离的圆,每圆都不包含坐标原点且过原点做每个圆的切线,任意两个切线之间的夹角不小于1e-6。现在从坐标原点发出射线,求至少有多少条射线使得每个圆都被一条射线穿过。注:(0)。问题分析:如下图原创 2012-05-06 23:15:19 · 572 阅读 · 0 评论 -
hnu 12432 Bottom of the sea#矩形交
/**求一个矩形被另一个矩形覆盖后,剩余部分至少能切成几个矩形。这题1A,立即有一种极品屌丝的赶脚,直接if每一种情况*/#include #include void solve(){ int ax,ay,bx,by,cx,cy,dx,dy; scanf("%d%d%d%d%d%d%d%d",&ax,&ay,&bx,&by,&cx,&cy,&dx,&dy);原创 2012-08-05 15:11:31 · 483 阅读 · 0 评论 -
hnu 12311 hiscale 判圆角矩形相交
InputThere are two lines for each test data. Each line of input contains five double numbers X1, Y1, X2, Y2, R (0 ≤ X1 2 ≤ 1000, 0 ≤ Y1 < Y2 ≤ 1000, 0 OutputOnly one line, 'YES原创 2012-06-01 03:23:20 · 445 阅读 · 0 评论 -
hdu 3365 new ground
题意,给定点A[0~n-1]和B[0],B[1],A[0]、A[1]映射到B[0]、B[1],求出其余点的映射B[2]~B[n-1],思路,平移到远点,旋转、伸缩,再平移回去#include#include#define N 10010#define PI acos(-1)#define EPS 1e-8struct Point{ double x,y;原创 2012-04-18 12:57:41 · 863 阅读 · 1 评论 -
[计算几何] hdu 4380 Farmer Greedy
/**[计算几何] hdu 4380 Farmer Greedy统计n个点中任意一三角形内点的个数,预处理出每条线段下的点的个数。一点小技巧,避免统计时判断三角形的形状,将n个点按x排个序。一点小trick,叉积求判断点在线段下面是会超32bit*/#include #include #include using namespace std;#define N 101#de原创 2012-08-22 22:51:50 · 913 阅读 · 0 评论 -
hdu 4082 Hou Yi's secret 统计相似三角形 暴力
Hou Yi's secretTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 645 Accepted Submission(s): 222Problem DescriptionLong long ago, in the原创 2012-05-28 21:13:05 · 1429 阅读 · 0 评论 -
hdu 4195#计算几何
题意:给你三个顶点,这三个点是一个正多边形上的顶点,问这个正多边形最少有多少个边?思路:三个点,三角形–>外接圆–>必定也是该凸多边形的外接圆-我们可以把三个点当做一个三角形放在它的外接圆上,然后求出每个角的度(即三角形分的三个弧度所对应的圆周角),设顶点数为n,我们只需计算,三角形任意两点所对应的圆心角是否是2PI/n的倍数就可以了,并且i很小,可以枚举。#include原创 2012-07-24 16:47:27 · 553 阅读 · 0 评论 -
[划分树] poj 2104
/**[划分树] poj 2104划分树定义为,她的每一个节点保存区间 [lft,rht ]所有元素,元素排列顺序与原数组(输入)相同,但是,两个子树的元素为该节点所有元素排序后(mid - lft + 1)个进入左子树,其余的到右子树,同时维护一个num域,num[i] 表示[lft,i]这些点有多少进入了左子树。真实的树由深度和区间存储*/#include #includ原创 2012-08-14 02:54:15 · 1221 阅读 · 3 评论