自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 hdu 1195 Open the Lock(bbfs(双向广搜))

<br />第一次使用双向广搜算法求解,感觉效率的确提高了不止两倍。刚开始的一直WA,后来发现是每次都要扩展一层的节点,然后在扩展另一层的节点,而不是每次只扩展一个节点。<br /> /* Author: ACb0y Date: 2010-9-21 Type: bbfs(双向广搜) ProblemId: hdu 1195 Open the Lock Result: AC*/#include <iostream>#include <queue>using namespace

2010-09-21 22:11:00 1339

原创 hdu 1195 Open the Lock(单向广搜)

<br />/* Author: ACb0y Date: 2010-9-21 Type: search(bfs) ProblemId: hdu 1195 Open the Lock Result: AC*/#include <iostream>#include <string>#include <queue>using namespace std;struct node { char digit[5]; int step;};//记忆化搜索

2010-09-21 12:45:00 845

原创 TJU 2870 The K-th City

<br />/* Author: ACb0y Date: 2010-9-16 Type: Shortest path (Dijkstra) ProblemId: TJU 2870 Result: AC*/#include <iostream>using namespace std;#define inf 999999999int n, q;int g[210][210];int d[210];int vis[210];void Dijkstr

2010-09-16 22:43:00 1203

原创 最短路径之Dijkstra算法

<br /> nDijkstra n基本思想:贪心 n设置一个顶点集合S,从源点到S中顶点的最短路径权值已经确定,通过反复从V-S中选取具有最短路径估计的顶点u,将u加入S中,并更新所有u的出边,求得最短路径lvoid  dijkstra( ) { 初始化S={空集} dist[s] = 0; 其余dist值为正无穷大 for (k = 1; k < n; ++k){ 取出不在S中的最小的dist[i]; for (所有不在S中且与i相邻的点j) if (dist[j] > dist[i] + cost[i

2010-09-16 21:35:00 780

原创 hdu 2110 Crisis of HDU(母函数)

<br />/* Author: ACb0y Date: 2010-9-16 Type: generation function ProblemId: hdu 2110 Crisis of HDU Result: AC*/#include <iostream>using namespace std;int n;int p[110];int m[110];int c1[4100];int c2[4100];int main() { int i

2010-09-16 17:04:00 2005 1

原创 hdu 1875 畅通工程再续(最小生成树Kruskal)

<br />/* Author: ACb0y Date: 2010年9月16日12:09:35 Type: MST Kruskal ProblemId: hdu 1875 畅通工程再续 Result: 2960804 2010-09-16 12:10:08 Accepted 1875 312MS 496K 1715 B C++ ACb0y */#include <iostream>#include <cmath>using namespace std;#define

2010-09-16 14:38:00 992

原创 hdu 1301 Jungle Roads(最小生成树Kruskal)

<br />/* Author: ACb0y Date: 2010年9月16日11:04:42 Type: MST kruskal ProblemId: hdu 1301 Jungle Roads Result: 2960607 2010-09-16 11:04:37 Accepted 1301 0MS 260K 1261 B C++ ACb0y */#include <iostream>using namespace std;#define inf 999999999

2010-09-16 11:13:00 1123

原创 hdu 1233 还是畅通工程(最小生成树Kruskal)

<br />/* Author: ACb0y Date: 2010年9月16日1:24:18 Type: MST Kruskal ProblemId: hdu 1233 还是畅通工程 Result: 2960115 2010-09-16 01:22:42 Accepted 1233 343MS 428K 1087 B G++ ACb0y */#include <iostream>using namespace std;int n, q;int g[110][110

2010-09-16 01:26:00 958

原创 hdu 1162 Eddy's picture(最小生成树Kruskal)

<br />/* Author: ACb0y Date: 2010年9月16日1:06:03 Type: MST Kruskal ProblemId: hdu 1162 Eddy's picture Result: 2960095 2010-09-16 01:04:47 Accepted 1162 15MS 480K 1267 B G++ ACb0y */#include <iostream>#include <cmath>using namespace std;

2010-09-16 01:08:00 734

原创 hdu hdu 1102 Constructing Roads(最小生成树Kruskal)

<br />因为习惯用C++的sort函数在写cmp这个函数谓词时写成了<br />      int cmp(const void * a, const void * b) {<br />           edge * pa = (edge *)a;<br />           edge * pb = (edge *)b;<br />           return pa->w > pb->w;<br />      }<br />结果一直WA,最后发现这个函数只会返回1和0,从而导致排序出错。

2010-09-15 23:25:00 742

原创 hdu 1875 畅通工程再续(最小生成树Prim)

<br />/* Author: ACb0y Date: 2010-9-15 Type: MST ProblemId: hdu 1875 畅通工程再续 Result: AC*/#include <iostream>#include <cmath>using namespace std;#define inf 999999999.9struct Point { double x; double y;};int n;Point points

2010-09-15 17:50:00 1150

原创 hdu 1301 Jungle Roads(最小生成树Prim算法)

<br />/* Author: ACb0y Date: 2010-9-15 Type: MST ProblemId: hdu 1301 Result: 1AC*/#include <iostream>using namespace std;#define inf 999999999int n, q;int g[30][30];int vis[30];int d[30];void MST_Prim() { int i, j; mem

2010-09-15 17:09:00 983

原创 hdu 1233 还是畅通工程(Prim最小生成树)

<br />/* Author: ACb0y Date: 2010-9-15 Type: MST ProblemId: hdu 1233 还是畅通工程 Result: AC*/#include<iostream>using namespace std;#define inf 999999999int n, q;int g[110][110];int vis[110];int d[110];void MST_Prim() { int i, j

2010-09-15 16:53:00 912

原创 hdu 1102 Constructing Roads(Prim最小生成树)

<br />/* Author: ACb0y Date: 2010-9-14 Type: MST ProblemId: hdu 1102 Constructing Roads Result: AC*/#include <iostream>using namespace std;#define inf 99999999int n;int q;int g[110][110];int vis[110];int d[110];void MST()

2010-09-15 16:34:00 741

原创 hdu 1162 Eddy's picture(最小生成树Prim算法)

<br />/* Author: ACb0y Date: 2010-9-15 Type: graph(MST prim) ProblemId: hdu 1162 Eddy's picture Result: AC*/#include <iostream>#include <cmath>using namespace std;#define inf 99999999999.9struct Point { double x; double y;};

2010-09-15 16:30:00 777

原创 pku 3264 Balanced Lineup(线段树)

/* Author: ACb0y Date: 2010-9-10 ProblemId: pku 3264 Balanced Lineup Result: AC*/#include using namespace std;#define M 50010#define Max(a, b) (a) > (b) ? (a) : (b)#define Min(a, b) (a) > (b) ? (b) : (a)struct node { int left, r

2010-09-10 23:20:00 849

原创 pku 3468 A Simple Problem with Integers

     本题明显是线段树的题目,刚开始的时候写的时候,更新操作是使用节点更新,结果果断TLE,然后用树状数组做也果断TLE。后面看了别人的做法,发现要添加一个域用来维护增量, 就像hdu1698 Just a Hook需要添加一个域来标记整个区间是否被覆盖了,在查询的时候需要检查增量是否为零,如果不为零则需要把增量往左右子树传递这和hdu1698 Just a Hook的查询有类似的操作,代码如下。/* Author: ACb0y Date: 2010-9-10 Type: segment t

2010-09-10 22:37:00 891

原创 hdu 1796 How many integers can you find

<br />题意:<br />      求1->n-1之间能被一个集合A内元素整除的数的个数,例如n = 12, A = {2, 3} 则能被A集合元素整除的数的集合为{2,  3, 4 , 6, 8, 9, 10}则结果为7。<br />解法:容斥定理,用回溯算法。<br /><br />/* Author: ACb0y Date: 2010-9-10 Type: 容斥 + DFS ProblemId: hdu 1796 How many integers can you find

2010-09-10 19:10:00 2265 1

原创 hdu 1166 敌兵布阵 (树状数组)

<br />树状数组简介:<br />     树状数组是一种区间求和查询和元素修改的时间复杂度都在logN的线性的数据结构。它支持sigma(a[1], a[2], ... a[i]) 时间的复杂度为logN的查询,和对a[i]时间复杂度为logN的修改。<br /><br /><br />来观察这个图:<br />  令这棵树的结点编号为C1,C2...Cn。令每个结点的值为这棵树的值的总和,那么容易发现:<br />C1 = A1 <br />C2 = A1 + A2 <br />C3 = A3 <b

2010-09-09 15:45:00 2231

原创 hdu 1698 Just a Hook

/* Author: ACb0y Date: 2010-9-07 Type: seg_tree ProblemId: hdu 1698 Result: 2928262 2010-09-07 16:48:47 Accepted 1698 484MS 4324K 1762 B C++ ACb0y */#include using namespace std;//节点信息struct node { //区间 int left; int right;

2010-09-07 17:15:00 962

原创 hdu 2068 RPG错排

第一次接触到错排的题目,错排简单点说就是给n个节点它们原来的位置为i,然后让你把它们从新排列使得它们都不在它们原来的位置上。错排递归公式:f(i) = (i - 1) * (f(i - 1) + f(i - 2));  i >= 4 (f(0) = 0, f(1) = 0, f(2) = 1, f(3) = 2);而本题的解法是:组合 + 错排由于要猜对一半以上,就是那从n个人中取出小于等于n / 2的人进行错排因为最后要求的答案是能够通过的所有解,所以只要累加0 -> n / 2的所有错排数AC代码如下:

2010-09-07 11:06:00 2905 1

原创 hdu 2082

<br />母函数<br />/* Author: ACb0y Date: 2010年9月6日22:03:47 Type:母函数 ProblemId: hdu 2082 Result: 2926116 2010-09-06 22:02:03 Accepted 2082 0MS 272K 643 B C++ ACb0y */#include <iostream>using namespace std;int d[27];int c1[51], c2[51];

2010-09-06 22:08:00 1592

原创 hdu 2079

<br />经典的母函数题,刚开始还想用回溯做,查了网络才知道是用母函数做,<br />以前做过好几道母函数的题目还有一些印象知道如何写,最后果断AC<br />/* Author: ACb0y Date:2010年9月6日20:18:52 Type:母函数 ProblemId: hdu 2079 选课时间(题目已修改,注意读题) Result: 2925387 2010-09-06 20:18:25 Accepted 2079 15MS 272K 668 B C++ ACb0y *

2010-09-06 20:28:00 1680

原创 hdu 2094 产生冠军

<br />问题描述:<br />      给N个比赛的结果,求能不能产生冠军<br />解决方法:<br />      只有当都没有输过一场比赛的人数为1时,就能产生冠军,否则不能。<br />代码如下:<br />/* Author: ACb0y Date: 2010年9月6日9:21:47 Type: Water() ProblemId:hdu 2094 产生冠军 Result: 2923032 2010-09-06 09:20:14 Accepted 2094 31MS 27

2010-09-06 09:30:00 2680

原创 hdu 1754 I Hate It

<br />第一次做线段树的入门题目,写很多次都超时,最后发现是我的宏定义的问题<br />#define max(a, b) (a) > (b) ? a : b<br />在queryTree()中当要询问的区间在左右区间的时候<br />我起初写:<br />    return max(queryTree(left, mid, LL), queryTree(mid + 1, right, RR));<br />结果一直超时,很是郁闷!!!<br />最后改成:<br />      int a = q

2010-09-05 20:25:00 860

原创 hdu 1583 DNA Assembly

<br />/* Author: ACb0y Date: 2010-9-05 Type: force ProblemId: hdu 1583 DNA Assembly Result: 2919263 2010-09-05 10:02:43 Accepted 1583 281MS 272K 1079 B C++ ACb0y */#include <iostream>#include <string>using namespace std;int n;int an

2010-09-05 10:09:00 1005

原创 hdu 1583 DNA Assembly

<br />这题用暴力求解,N!种情况(N的最大值为7),难点就在于字符串合并如何写(str_merge函数)。<br />/* Author: ACb0y Date: 2010-9-05 Type: force ProblemId: hdu 1583 DNA Assembly Result: 2919198 2010-09-05 09:32:24 Accepted 1583 281MS 272K 976 B C++ ACb0y */#include <iostream>

2010-09-05 09:40:00 983

原创 hdu 2602 (01 背包)Bone Collector

<br />经典的DP(01背包)<br />一、无优化版<br />状态dp[i][v]表示前i个物品背包容量为V的最大价值<br />状态转移方程dp[i][j] = max{dp[i - 1][j], dp[i - 1][j - volume[i]]  + value[i]};<br /> /* Author: ACb0y Date: 2010-9-03 Type: DP(01背包) dp[i][j] = max{dp[i - 1][j], dp[i - 1][j - volume[i]]

2010-09-03 12:49:00 852

原创 hdu 1866 A + B forever!

<br />第一次做矩形面积的并,这题中借鉴别人的做法,使用标记法求面积的并。<br />/* Author: ACb0y Date: 2010-9-02 Type: geometry (sum area of rectangle) ProblemId: hdu 1866 Result: AC*/#include <iostream>using namespace std;int max(int a, int b){ return a > b ? a : b;

2010-09-02 13:30:00 1399

高精度加减乘除模运算

高精度加减乘除模运算很好的封装在一个类中,还有完整的注释,绝对物有所值。

2010-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除