
其他
文章平均质量分 56
yumao19921006
这个作者很懒,什么都没留下…
展开
-
poj 1703 Find them, Catch them
话说要省赛了。。。刚好最近在看数据结构,打算做一做与看过的有些许关联的题目~正好看到树了那就来个并查集吧~给出n个人,他们只有可能也只属于两个帮派,然后D表示两个人之间是对立的,A表示询问两人是不是在同一帮派。这个题是一看就知道是并查集,但真正构思的话,还是要考虑一下的。。。由于人只可能属于两个帮派,所以如果A-B B-C 那么A与C就是同一个帮派的,这原创 2013-09-29 22:11:00 · 666 阅读 · 0 评论 -
scanf()的缓存问题
总结了一下,发现buffer对scanf中标准输入影响较大的是scanf(%c)也就是字符的标准输入; 标准输入 eg. scanf("%s") . scanf("%d") 等都会在输入时先判断缓存区buffer中的数据是否是指定类型,如果不是,则要求输入;而scanf("%c") 虽然也会判断,只是不论是空格合适回车,在buffer中的保存形式都是ascll码,所以,只要buffer原创 2013-04-07 17:24:53 · 1007 阅读 · 0 评论 -
多校联合 03 15 A
可惜多校联合第一次就错过了。。。这是后来做的~ ProblemA. Non-negativePartialSumsTimeLimit:2000ms Memory:65536kbDescriptionYouaregivenasequenceofnnumbersa0,....,an-1.Acyclicshiftbykpositions(0≤k≤n-1)resultsin t原创 2013-03-18 21:23:40 · 541 阅读 · 0 评论 -
my training plan
往后,如果没有意外的话,博客发表文章会按以下的形式进行: 1. 算法总结与解题报告分开; 2. 解题报告A题后马上写,总结一星期写一次; 3.原创 2013-02-26 20:32:58 · 458 阅读 · 0 评论 -
Freopen()与ofstream()
freopen:freopen(const char *filename,const char *type, FILE *stream);也就是说将stream流于文件名为filename的关联起来。。。进行类型为第二个参数type的操作。。。(一般是‘w’或者'r')这样,就可以在程序中直接进行原来的输入输出,而程序会自动的将输入输出与指定的内容绑定起来~ ofstrea原创 2013-01-24 11:20:47 · 534 阅读 · 0 评论 -
树状数组求最值 hdu 1754
模板题,木有什么好说的。。。直接上模板吧~ 代码实现: #include#include#includeusing namespace std;int num[200050];int tree[200050];int n;int bit(int x){ return x&(-x);}int insert(int p,int原创 2013-01-24 11:19:30 · 317 阅读 · 0 评论 -
二分法 poj 1905
Expanding RodsTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 8686 Accepted: 2152DescriptionWhen a thin rod of length L is heated n degrees, it expands to原创 2013-01-24 11:19:27 · 415 阅读 · 0 评论 -
线段树优化 lazy算法 poj3468
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 35742 Accepted: 10240Case Time Limit: 2000MSDescriptionYou have N i原创 2013-01-24 11:19:15 · 504 阅读 · 0 评论 -
线段树的实现(求段和)
View Code 1 #include 2 #include 3 using namespace std; 4 struct node{ 5 int r; //root to the right's range 6 int l; 7 node * rt; //the sub原创 2013-01-24 11:19:13 · 314 阅读 · 0 评论 -
vector 可变长数组 hdu 3823
Problem FTime Limit : 4000/2000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 6 Accepted Submission(s) : 1Font: Times New Roman | Verdana | GeorgiaFont Size: ← →原创 2013-01-24 11:18:58 · 628 阅读 · 0 评论 -
取多次方的前n位
K次方Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 23 Accepted Submission(s) : 10Font: Times New Roman | Verdana | GeorgiaFont Size: ← →Pr原创 2013-01-24 11:18:55 · 464 阅读 · 0 评论 -
旋转卡壳
该算法一般用于求凸包上两点间的最大距离。方法一: 从任意一个顶点开始,按逆时针方向计算其他每一点到该顶点的距离。使距离为一直是递增的,直到开始递减;然后记录下这一次的最大值。 然后移动为基础的那个点,从上次中断的点开始;再重复上述步骤,直到距离又递减为止。 所有的最大值即是凸包的直径。 方法二: 任意取一条边,计算每一个点到该条边的距离,直原创 2013-01-24 11:18:46 · 359 阅读 · 0 评论 -
GCD & LCM 一个神奇的式子
DescriptionGiven x and y (2 1) p and q are positive integers;2) GCD(p, q) = x;3) LCM(p, q) = y. Input x and y, one line for each test. Output Number of pairs原创 2013-01-24 11:18:36 · 525 阅读 · 0 评论 -
删数问题
给你一个N位数,从中去掉K个数字,能得到的最大的数是多少?INPUT有T测试数据,每组测试数据第一行由N和K2个整数组成(1 ≤ K OUTPUT对每组数据输出去掉K个数字得到的最大数。SAMPLE TESTSINOUT34 219247 3123123410 4417725284194原创 2013-01-24 11:18:31 · 538 阅读 · 0 评论 -
三角形的有向面积
三角形的有向面积: Double area(double x0,double y0,double x1,double y1,double x2,double y2){ Return xo*y1+y0*x2+x1*y2-x2*y1-x0*y2-x1*y0 ; } 上面得到原创 2013-01-24 11:18:29 · 3043 阅读 · 0 评论 -
正整数的素数表达式
一个正整数一定可以用若干个素数的幂积相乘表示。 eg. N=2^3*3^2*7^0……;那么怎么求一个正整数的素数表达式: 首先先求出范围内所有的素数,并存在数组中: Int m; For(int i=0;i if(isprime(i)){ Prime[m]=i;原创 2013-01-24 11:18:26 · 1350 阅读 · 0 评论 -
卷包裹法 得到凸包
给定一系列的点,求出这些点中可以组合得到的最大的凸多边形的点集。即求凸包; ① 先从这一系列的点中找到y值最小的点,如果存在相等的y值,则取x值最小的点。② 再根据其他各点与最小的点的向量之间的叉积的关系,对其他各点进行排序。http://www.cnblogs.com/Booble/archive/2011/02/28/1967179.html网址中的博客中说明的十分清楚原创 2013-01-24 11:18:19 · 952 阅读 · 0 评论 -
中国剩余定理
求一个数m,使: m%a=a1; m%b=b1; m%c=c1; 即使:m1%a==1(m1从1枚举到a) m2%b==1 m3%c==1 m=(m1*b*c*a1+m2*c*a*b1+m3*a*b*c1)/a*b*c原创 2013-01-24 11:18:16 · 303 阅读 · 0 评论 -
树状数祖 hdu 1541
树状数组与线段树的作用十分的相似,基本上只要是线段树能解决的问题,用树状数组都能解决。(不过个人比较偏向树状数组一点点,因为结构比线段树简单,并且所需的空间比树状数组更加的少) 树状数组一般用于动态数据的统计。并且是通过0~i 区间i 的二进制的结构来表示该区间的一种统计性质。每一个节点的单独的性质用一个数组来统计表示,而有关二进制的表示用另一个数组来统计表示。 eg.原创 2013-01-24 11:18:14 · 335 阅读 · 0 评论 -
字典树 AC自动机
字典树: 以树的形式存储字符串。便于进行快速检索以及最长公共前缀的获得。 结构体的构造: ① struct node{ int count; node *next[26]; } ② struct no原创 2013-01-24 11:18:07 · 475 阅读 · 0 评论 -
威佐夫博弈 hdu 2177
威佐夫博弈基本思想: 两堆物品,可从一堆中取任意,也可从两堆中同时取相同多个。 该算法存在奇异状态:处在奇异状态必败; 1. 奇异状态的求法: a0=0;b0=0; 而后,ak=前未出现过的最小自然数;bk=ak+k; 可得出奇异状态。 2. 判断是否原创 2013-01-24 11:17:49 · 384 阅读 · 0 评论 -
尼姆博弈 hdu 2176
尼姆博弈基本思想: 两人从n堆物品中取任意个,先取完者胜。 即将n堆物品的数量异或,得到的值如果为0,则先手败,反之先手胜。 如果要求先手在胜的条件下,到奇异局势的方法数,则判断异或的值与每一堆原值异或后(结果应该表示该堆没有参加异或时的异或值)与原值比较大小,如果小于,则方法数加一。且对应的方法后,该堆的数目应变为异或的值与每一堆原值异或原创 2013-01-24 11:17:46 · 460 阅读 · 0 评论 -
巴什博弈 hdu 2149
巴什博弈基本思想: 两人在限制(1~n)的条件下,谁先达到m谁胜出。 则分情况讨论: 1. n>=m时;先手胜出; 2. m==n+1时,先手败; 3. m%n+1!=0时,先手胜; 4. m%n+1=0,先手败; 且在第三种情原创 2013-01-24 11:17:44 · 364 阅读 · 0 评论 -
gets() scanf("%s") puts() printf("%s") 的区别
gets()与scanf(“%s”): ① gets遇回车时结束输入。也就是说,gets可以接受回车前的任何输入。 scanf不同,遇到回车、空格、制表符就结束输入。 eg. String a=”I am a student; 如果要一次性的接受全部的字符串,要用gets。 ②原创 2013-01-24 11:17:33 · 481 阅读 · 0 评论 -
水题时的一些问题
1. 为什么 int sum=pow(k,2)+k+41; cout cout 输出不一样? (double-int的转换) 2. 为什么在比较简单的题目中,用char a[100];scanf("%s",a)会超时?用gets()则不会。eg. hdu 2000 , hdu 2005原创 2013-01-24 11:17:28 · 266 阅读 · 0 评论 -
水题时,一些零碎的总结
1. 用printf(“%.nf”,….);输出精确n位的小数,结果会自动四舍五入。 2. double->int 时,不论double中的小数为什么,int 型都只取double中的整数。 3. 求绝对值时: abs()为int型 fabs()为双精度浮点型 cabs()为复数的 labs()为long int型 4原创 2013-01-24 11:17:26 · 312 阅读 · 0 评论