- 博客(127)
- 收藏
- 关注
原创 UVa 11624 Fire!
谁能帮我看看为什么第一份代码是AC,而第二份是WA呢- -!,就改了起火时间bfs那个判断条件而已AC#include #include #include #include #include #include #include #include #include #include #include #include #define MP make_pair#d
2013-05-31 12:16:13
702
原创 HDU 1403 Longest Common Substring
好久没学新算法了,从现在开始努力吧。花了3天时间看了后缀数组的论文,差不多看明白了,贴上一份应用的代码吧。#include #include #include #include #include #include #include #include #include #include #include #include #define MP make_pair#d
2013-05-29 10:26:19
472
原创 HDU 2586 How far away?
用dfs和lca均可,贴上两份代码dfs#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make_pair#define PB push_back#define SZ(x)
2013-02-27 23:10:38
371
原创 HDU 1541 Stars
看起来是二维,其实用一维数组就可以解决了。#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make_pair#define PB push_back#define SZ(x)
2013-02-26 23:37:58
295
原创 HDU 2852 KiKi's K-Number
因为一个输出超时N次。#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make_pair#define PB push_back#define SZ(x) ((int)(x
2013-02-25 22:03:15
298
原创 HDU 3038 How Many Answers Are Wrong
这题也是看题解的。A到B之间的和可用k到B的和减去k到A-1的和代替(k#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make_pair#defin
2013-02-07 17:29:29
307
原创 HDU 3635 Dragon Balls
这题的并查集是看题解的,想不出怎么算转移次数,题解好像用的是并入的次序来计算的,这真没想到。。#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make_pai
2013-02-05 14:12:15
310
原创 HDU 1856 More is better
别人用的并查集。。我这又钻牛角尖了,硬是要用dfs,TLE了好几次才AC。。已经越来越依赖STL了。。#include #include #include #include #include #include #include #include #include #include #define ll long long#define MP make
2013-02-02 17:56:14
250
原创 HDU 1829 A Bug's Life
看别人都用并查集。。我用的是bfs#include #include #include #include #include #include #include #include #include #include #define ll long long#define MK make_pair#define PB push_back#defi
2013-01-31 20:49:22
363
原创 HDU 2616 Kill the monster
数据太弱,dfs水过。。#include #include #include #include #include #include #include #include #include #include #define ll long long#define MK make_pair#define PB push_back#define SZ
2013-01-31 20:10:27
351
原创 HDU 2821 Pusher
dfs#include #include #include #include #include #include #include #include #include #include #define ll long long#define MK make_pair#define PB push_back#define SZ(x) ((int
2013-01-31 19:50:38
465
原创 HDU 2610 Sequence one
我用的是bfs。1046ms,这。。都倒数了。我偷懒用了set。而且c++的string里面居然没有逆置函数,我勒个去,还得自己写,最新的标准才支持从整型转成字符串(to_string)。。这。。#include #include #include #include #include #include #include #include #include #
2013-01-30 20:52:34
370
原创 HDU 1426 Sudoku Killer
dfs,每次在?处尝试每个数字,若符合条件,则进行下一层dfs,知道找到足够的数字#include #include #include #include #include #include #include #include #include #include #define ll long long#define MK make_pair#de
2013-01-30 13:24:11
304
原创 HDU 1104 Remainder
156ms,比其他人慢好多。。bfs暴搜#include#include#include#includeusing namespace std;const int maxN=2000010;int n,k,m,step;bool vis[maxN];string anstr;struct Node{ int n,k; string
2013-01-29 15:35:53
327
原创 HDU 1796 How many integers can you find
一个月没做题了。。。容斥原理,注意处理非互素的数,应用最小公倍数,注意0不用处理,若集合里有1,则直接输出n-1,同时要注意最小公倍数不要溢出,适当的时候应该跳出dfs。#include #include #include #include #include #include #include #include #define PB push_back#define SZ
2012-12-19 13:24:29
297
原创 POJ 1149 PIGS
最大流。关键在于建图。注意:每次打开猪笼,重新分配猪的数目后,所有已打开的猪笼要重新关闭。把每位顾客当成一个结点,若笼子k曾经被之前某个顾客a打开过,当前顾客b又能打开笼子k,则容量cap[a][b]=inf,若当前顾客是第一个打开笼子k的人,则cap[0][a]=pigNum[k],其中以0为源点,n+1为汇点,易知每个顾客到汇点的边的容量为顾客想要购买猪的数目。至此,构图完成。#inclu
2012-11-18 12:52:20
258
原创 POJ 1166 The Clocks
代码略丑。。已经懒得去改了,华丽丽的563ms。。。bfs暴搜,记录一下状态就行了。#include #include #include #include #define SZ(x) ((int)(x).size())#define FOR(it,c) for ( __typeof((c).begin()) it=(c).begin(); it!=(c).end(); it++
2012-11-16 23:01:24
303
原创 POJ 1144 Network
假若在删去顶点v以及和v相关联的各边之后,将图的一个连通分量分割成两个或两个以上的连通分量,则称顶点v为该图的一个割点。生成树为从根结点出发深度优先搜索遍历图,未遍历到的边为虚边。割点判定:(1)若生成树的根有两棵或两棵以上子树,则此根结点必为割点(2)若生成树中某个非叶子结点v,其某棵子树的根和子树中的其他结点均没有指向v的祖先的回边,则v为割点具体请看数据结构课本。#i
2012-11-11 20:33:33
353
原创 POJ 1087 A Plug for UNIX
二分图匹配,主要在于建图,貌似建得有点丑。。把能插座X上能插入的插头(包括通过转化器的)通过dfs全找出来,图就建好了,我是用map将字符串映射成数组下标的。二分图一边是插座,一边是插头。#include #include #include #include #include #include #include using namespace std;const i
2012-11-11 12:45:58
321
原创 POJ 1064 Cable master
二分答案#include #include #include #include #include #include using namespace std;int a[10010];int main(){#ifndef ONLINE_JUDGE freopen("a.in","r",stdin); freopen("a.out","w
2012-11-11 10:02:37
505
原创 POJ 1041 John's trip
欧拉回路,基础题,但我做得那叫一个乱。。这道题只要把边和顶点的概念颠倒着想就可以了#include #include #include #include #include #include using namespace std;const int maxN=2000;int maX,degree[maxN],st[maxN],top,map[maxN][maxN];
2012-11-10 14:00:26
505
原创 HDU 1010 Tempter of the Bone
dfs+剪枝,若当前坐标到终点的最短距离的奇偶性与剩余可走步数的奇偶性不一样时(自己画一下图就明白了,不同的到终点的路径的步数是以偶数步增长的),dfs结束,另当最短距离大于剩余可走时间时当前dfs也结束。#include#include#include#include#include#include#includeusing namespace std;int n,m,k
2012-10-29 22:19:22
245
原创 HDU 1983 Kaitou Kid - The Phantom Thief (2)
这道题是看题解的。。。自己写的记录路径陷入死循环,搞不明白。。所以去看题解了,题解是将整条路径记录在一个数组里,而我是记录上一个节点。。。以后回来看看哪错了AC代码#include#include#include#include#include#include#includeusing namespace std;struct Point{ int x,
2012-10-28 17:10:01
335
原创 HDU 2579 Dating with girls(2)
bfs。。。#include#include#include#include#include#include#includeusing namespace std;const int maxN=110;char map[maxN][maxN];int n,m,dx[]={1,-1,0,0},dy[]={0,0,1,-1},k;bool vis[maxN][maxN][
2012-10-28 13:27:42
347
原创 HDU 1732 Push Box
bfs暴搜,重点在于记录状态与判重#include#include#include#include#include#include#includeusing namespace std;struct Point{ int x[4],y[4],step; Point(int *a,int *b,int n){ step=n; f
2012-10-28 12:32:18
507
原创 HDU 1100
输入数据31117532写成31117531,导致我调了2小时,你妹。。思想是化整为零。。。#include#include#include#include#include#include#includeusing namespace std;const int maxN=19;int cat[maxN],sum[maxN+1];void build(int d,
2012-10-27 23:04:13
572
原创 HDU 1174 爆头
纯数学题,算出空间一点到一空间直线的距离由题目描述可写出直线的点向式方程(x-x2)/a=(y-y2)/b=(z-z2)/c=tt然后算出于与该直线垂直的该点所在平面,(a,b,c)为该平面的法向量,因此可得a*(x-x1)+b*(y-y1)+c*(z-z1)=0算出空间直线与平面相交的点a*(a*tt+x2-x1)+b*(b*tt+y2-y1)+c*(c*tt+z2-z1)=0该
2012-10-13 18:09:13
468
原创 HDU 1173 采矿
设答案为x,y则距离的运算公式为|x-x1|+|x-x2|+...+|x-xn|+|y-y1|+|y-y2|+...+|y-yn|因此当x,y均为中位数时上式最小用cin耗时2687ms用scanf耗时453ms#include#include#include#include#include#includeusing namespace std;const i
2012-10-13 16:42:20
587
原创 HDU 1175 连连看
最近做题都是上百ms的节奏。。。bfs暴搜。#include#include#include#include#include#includeusing namespace std;const int maxN=1010;const int inf=1010;struct Point{ int turn[5],val;}p[maxN][maxN];int
2012-10-13 15:17:23
275
原创 HDU 1142 A Walk Through the Forest
为毛我这代码跑了453ms - -!坑爹的一道题,我看清了题目是要求一条渐进于终点的路径,但没想到其中任意两点之间都必须存在一条道路,你妹。。脑残了根据题目描述,若a能走到b,则应满足a到house的最短路长度大于b到house的最短路长度dijkstra+记忆化搜索#include#include#include#include#include#include#i
2012-10-13 14:06:55
243
原创 HDU 1134 Game of Connections
catalan数高精度公式:c(n+1)=2*(2*n+1)*c(n)/(n+2)高精度除法从高位开始模拟现实除法步骤求得商#include#include#include#includeusing namespace std;const int maxN=110;const int maxM=1010;int a[maxN][maxM];int tmp[maxM
2012-10-11 01:24:59
438
原创 HDU 1116 Play on Words
欧拉回路+并查集(判断图是否连通,被这坑了。。)#include#include#include#include#include#include#include#includeusing namespace std;int p[30];int find(int x){ return x==p[x]?x:(p[x]=find(p[x]));}int mai
2012-10-09 23:56:15
272
原创 HDU 1115
求多边形的重心,取原点为基准点,分割出n个三角形,用叉积求出各三角形的面积,总和为多边形的面积(也适用于凹多边形,动手画图就明白了,那些在多边形之外的三角形与其他三角形形成正负互补),根据三角形重心求法:x=(x1+x2+x3)/3,y=(y1+y2+y3)/3,又X = ∑( xi×areai ) / ∑areai,Y = ∑( yi×areai ) / ∑areai,至此便可求得多边形的重
2012-10-09 22:48:20
427
原创 POJ 1113 Word Amalgamation
#include#include#include#include#include#include#include#includeusing namespace std;vector dict;multimap d;int main(){#ifndef ONLINE_JUDGE freopen("a.in","r",stdin);#endif strin
2012-10-09 18:37:04
279
原创 POJ 1017 Packets
你妹的模拟题。。。wa了n次#include#include#include#include#include#include#includeusing namespace std;int main(){#ifndef ONLINE_JUDGE freopen("a.in","r",stdin);#endif int a1,a2,a3,a4,a5,a6;
2012-10-09 14:05:04
225
原创 POJ 1023 The Fun Number System
#include#include#include#includeusing namespace std;long long n;int main(){#ifndef ONLINE_JUDGE freopen("a.in","r",stdin);#endif int t,a[100],k; cin>>t; while(t--){
2012-10-09 00:00:16
386
原创 快速求斐波那契数(scheme实现)
sicp练习1.19有详细说明原理a可以证明应用T(p,q)两次的效果跟应用T(p',q')的效果是相同的,其中p'=q*q+p*p,q'=q*q+2*p*q因此可以用O(log n)的算法求出第n个斐波那契数上代码(define (f n) (fib 1 0 0 1 n))(define (fib a b p q count) (cond ((= count 0)
2012-10-07 23:03:49
812
原创 含重复元素的全排列
#include#include#includeusing namespace std;int n,cnt=0;char a[20];void dfs(int k){ if(k==n) { cnt++; puts(a); return; } for(int i=k;i<n;i++){ int j; for(j=k;j<i;j++) if(a[j]==a[i])
2012-09-29 00:34:40
734
原创 Emacs学习笔记
2012.9.23先引用一篇文章http://www.douban.com/group/topic/12121637/http://www.gnu.org/software/emacs/manual/,学习elisphttp://www.emacs.uniyar.ac.ru/doc/em24h/,实践命令大全http://www.cs.rutgers.edu/LCSR-Comput
2012-09-17 22:11:23
390
转载 Codeforces Round #137 (Div. 2), problem: (C)
大神代码直接看瞎了,收获好大。。。C. Reducing Fractionstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTo c
2012-09-11 02:57:18
748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人