- 博客(27)
- 资源 (8)
- 收藏
- 关注
原创 hdu 1533 && pku 2195 最小费用最大流
<br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#include<string><br />#define INF 0x3f3f3f3f<br />using namespace std;<br />const int V = 205;<br />const int E = 25000;<br />struct node{<br /> int x,y;<br />}man[V],home[V];<br />st
2010-08-30 14:11:00
882
原创 sap 算法
<br />//hdu 1532 ditch<br />//看了半天sap 研究了多份模板 终于一次性完成 gap 当前弧 零接表(我用的是静态零接表) 几种优化<br />//个人觉的和dinic 好像啊 交了两上个题目 和我之前写了 有当前弧优化的 dinic时间居然 一样 可能题目数据的原因<br /> #include<iostream><br />#include<cstdio><br />#include<queue><br />#include<string><br />#defin
2010-08-28 17:13:00
1169
原创 hdu 2063
<br />//Accepted 2063 0MS 284K 2225 B C++ <br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#include<string><br />using namespace std;<br />struct Edge{<br /> int u,v,c;<br /> int next;<br />}edg[5010];<br />int m,n,k,src,endp,e;<br
2010-08-26 18:12:00
984
原创 pku 3281
<br />//3281 Accepted 236K 32MS C++ 2422B <br />//源点到食物连一条为1的边 汇点到饮料连一条边 <br />//牛分成两排 左牛和右牛 牛和牛之间连一条为1的边 这样的好处是可以限制牛的 使用数量 <br />//如果牛只有一排 则没法办法控制牛的重复计算 左牛1..N 右牛N+1...2*N <br />//食物 2*N + 1 ... 2*N + F 后面为饮料 源点0 汇点 2*N + F + D + 1 <br />#include<io
2010-08-26 18:11:00
1973
原创 zoj 3348
<br />//一点思路都没有 看了别人的解题报告 <br />//我们贪心的让未来DD参加的比赛都赢,且我们可以知道未来每个人最多可以赢几场<br />//我们预先统计处当前每个点赢了多少场,点对之间还有多少次较量,在后来给出的比赛中我们人为指定一个人赢,并统计该点对场次 <br />//当然DD必须赢,增加源汇点,源到每个点代表了该点赢的次数,点到汇表示该点赢的场次不能超过DD(相等也不行)<br />//对于每个点对,连一条容量为未来比赛场次的边,那么跑一边最大流表示的是一组可行解当且仅当满流 <br
2010-08-26 18:06:00
979
原创 hdu 1532 dinic 递归 与 非递归实现
<br />//第一次学会用i^1 比如 i = 0 i^1 = 1 ;i = 1 i^1 = 0 ; i = 2 i^1 = 3 ; i = 3 i^1 = 2<br />//用来建反边很有用<br />/*inline Edge* reserve( Edge* p ){<br /> return tb+ ((p-tb)^1);<br />} <br />*/ //返回零接表的反向边地址 留着以后可能用到 <br />//星号部分为非递归实现 dfs 效率比递归更高 参照文献<br />//h
2010-08-25 22:09:00
1081
原创 hdu 3191 次短路
<br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#include<string><br />#include<vector><br />#define INF 0x7fffffff<br />using namespace std;<br />const int V = 52;<br />const int E = 6005;<br />int n,m,s,t;<br />int dist[V][3],cnt[
2010-08-16 12:51:00
1066
原创 hdu 1074 dfs or bfs
//dfs//Accepted 1074 31MS 2700K 1613 B C++ #include#include#include#includeusing namespace std;int n;struct node{ int time,cost; int path[17];};node dp[1struct obj{ int cost; int deadline; char name[105];}job[17];void bfs(){ int i,j,tpath[17],tt,u; int p,N
2010-08-14 19:26:00
752
原创 hdu 1874
//2577833 2010-07-08 14:29:13 Accepted 1874 15MS 284K 1445 B C++ T&T #include#include#include#define MAX 0x7fffffff#define asize 210using namespace std;struct node{ node(int vv=0,int dd=0):vexn(vv),dist(dd){} int vexn; int dist; fri
2010-07-09 14:46:00
779
1
原创 hdu 1142
<br />//2578521 2010-07-08 17:03:12 Accepted 1142 62MS 4180K 1834 B C++ T&T <br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#define MAX 0x7fffffff<br />#define asize 1002<br />using namespace std;<br />struct node{<br /> node(int v
2010-07-09 14:45:00
1108
原创 hdu 1385
<br />// Accepted 1385 46MS 424K 3948 B C++ <br />//点和边均有权值 路径按字典顺序小的输出 <br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#define MAX 0x3fffffff<br />#define asize 10002<br />using namespace std;<br />struct node{<br /> node(int vv=0
2010-07-09 14:43:00
1146
原创 HDU 1069 dp
<br />//对接触面的面积排序 转化为求最大子序列问题<br />#include<iostream><br />#include<cstdio><br />#include<algorithm><br />#define max_size 0x7fffffff<br />using namespace std;<br />struct node{<br /> int high;<br /> int length;<br /> int wide;<br />}bl[92];<br />int dp[92
2010-07-08 20:42:00
551
原创 hdu 1058 DP
<br />//2563204 2010-06-30 12:34:06 Accepted 1058 62MS 256K 947 B C++ <br />#include<iostream><br />#include<stdio.h><br />#include<string><br />#define max_size 2000000001<br />using namespace std;<br />int main()<br />{<br /> int hash[5850];<br /> int us
2010-06-30 12:38:00
742
原创 hdu 1087 DP简单题
<br />//2562511 2010-06-29 17:53:55 Accepted 1087 31MS 236K 517 B C++ <br />//DP简单题 <br />#include <iostream><br />#include<string.h><br />#include<cstdio><br />#define max_size 1002<br />using namespace std;<br />int main()<br />{<br /> int dp[max_size];<
2010-06-29 17:55:00
502
原创 hdu 1159 最长公共子序列
<br />//2562465 2010-06-29 17:20:23 Accepted 1159 31MS 3240K 835 B C++ T&T <br />#include <iostream><br />#include<string.h><br />#include<cstdio><br />#define max_size 10000 <br />using namespace std;<br />int dp[max_size + 1][max_size + 1];<br />char str
2010-06-29 17:23:00
484
原创 hdu 1160 DP 最长子序列问题
<br />//Accepted 1160 15MS 264K 1027 B C++ <br />//dp题 转化为求最长子序列问题 <br />#include<iostream><br />#include<cstdio><br />#include<string><br />#include<algorithm><br />using namespace std;<br />struct node{<br /> int weight;<br /> int speed;<br /> int order;
2010-06-29 14:25:00
654
原创 hdu 1829
<br />// Accepted 1829 312MS 260K 1912 B C++ <br />//写程序不是一般的粗心 case次数居然输出了 wrong了十几次 <br />//开两个集合 一个是异性 一个同性<br />#include<iostream><br />#include<cstdio><br />using namespace std;<br /> struct{<br /> int parent;<br /> int mate;<br />}bug[2100];<
2010-06-15 13:31:00
822
原创 hdu 1198
<br />//很有意思的一个题目 判断连通则并集<br />#include<iostream><br />#include<cstdio><br />#include<string><br />using namespace std;<br />struct node{<br /> int x;<br /> int y;<br />};<br />node p[52][52];<br />int deep[52][52];<br />int dir[4][2] = {{-1,0},{1, 0},{0,
2010-06-15 13:28:00
810
原创 hdu 1180 诡异的楼梯
<br />//楼梯有多个 第一次申请了一个NODE LOUTI 来保存一直没找出哪里错 <br />#include <iostream><br />#include <queue><br />#include<cstdio><br />using namespace std;<br />char map[21][21];<br />struct node{<br /> int x,y;<br /> int time;<br /> char c;<br />};<br />int s
2010-06-13 16:40:00
620
原创 hdu 1026 优先队列 + 路径保存
#include #include #includeusing namespace std;#define maxsize 105char map[maxsize][maxsize];bool hash[maxsize][maxsize];int n,m;struct node{ int x,y; int time; int fro; int cost;};bool operator { return a.time > b.time;}node N,P,p[10010],path[1
2010-06-13 16:39:00
533
原创 hdu 1052
<br />//2502427 2010-05-30 15:33:27 Accepted 1052 15MS 244K 830 B C++ T&T <br />//简单的贪心 两头贪心以免从大到小贪心时 强马相等 直接用慢马去和强马比 这样就失去了慢马的优势 <br />#include<iostream><br />#include<cstdio><br />#include<algorithm><br />using namespace std;<br />int cmp(int a,int b)<
2010-06-13 16:33:00
869
原创 hdu 1175
<br />#include<iostream><br />#include<queue><br />using namespace std;<br />struct node{<br /> int x,y;<br /> int time;<br /> int d;<br />};<br />int map[1010][1010];<br />int hash[1010][1010];<br />int dir[4][2] = {{1,0},{-1,0},{0,-1},{0,1}};<br />int m,
2010-06-13 16:32:00
438
原创 hdu 3415 堆优化
<br />//2523048 2010-06-07 13:40:55 Accepted 3415 453MS 4992K 1613 B C++ T&T <br />//用堆优化循环 看了别人的程序才知道 <br />//直接用循环复杂度为o(n*k) 是TLE <br />#include<iostream><br />#include<cstdio><br />#include<queue><br />#include<algorithm><br />using namespace std;<br /
2010-06-13 16:30:00
621
原创 hdu 1280
<br />//2487654 2010-05-25 10:27:01 Accepted 1280 15MS 280K 1090 B C++ T&T <br />#include<iostream><br />#include<cstdio><br />#include<algorithm><br />using namespace std;<br />//int res[4500100];<br />int main()<br />{<br /> int b,t;<br /> int j;<br /> i
2010-06-13 16:24:00
607
原创 hdu 1732推箱子
<br />//2478723 2010-05-21 23:28:53 Accepted 1732 156MS 20656K 2718 B C++ <br />//用8维的hash标记人坐标3个箱子的坐标 主要是人前方为箱子箱子前面再出现箱子容易漏掉考虑<br />//这里bool 的hash可以比int少4倍的空间 开成int会MLE <br />#include<iostream><br />#include<queue><br />#include<cstdio><br />#include<str
2010-06-13 16:15:00
888
原创 hdu 1558 线段相交判断 + 并查集
<br />//2535437 2010-06-12 00:42:04 Accepted 1558 109MS 256K 2695 B C++ T&T <br />#include<iostream><br />#include<cstdio><br />#include<string><br />using namespace std;<br />struct point{<br /> double x,y;<br />};<br />struct sdl{<br /> point s1;<b
2010-06-13 16:12:00
644
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人