自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CxCo的专栏

为全面建成小康社会,实现中华民族伟大复兴而努力奋斗!

  • 博客(33)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 hdu 4284 Travel (floyd+dfs)

/*简单的floyd加dfs。 代码比较清晰就不多说了。*/#include#include#include#define N 101using namespace std;int road[N][N];int chosecity[N];int flag;int vis[N];struct City{ int cost; int earn;}ci

2012-10-11 16:39:44 460

原创 hdu 4289 Control (最大流)

/*最大流模板sap建一超级源点和汇点与原源点、汇点相连,然后把一个城市拆成两个点 边权为其费用 两相连城市间的边权为无穷大 求其最大流即可。*/#include#include#include#includeusing namespace std;const int MAXN=10001;//点数的最大值const int MAXM=800010;//边数的最大值co

2012-10-11 16:27:13 384

原创 HDU 4280 Island Transport (网络流 sap)

裸的网络流模板题/*最大流模板sap*/#include#include#include#includeusing namespace std;const int MAXN=100010;//点数的最大值const int MAXM=400010;//边数的最大值const int INF=0x3f3f3f3f;struct Node{ int f

2012-10-11 16:23:44 481

原创 hdu 3367 Pseudoforest (并查集)

/*Pseudoforest...伪森林。。题目说了那么多就是说这个图中最多有一个环..求所有边和的最大集*/#include#include#include#includeusing namespace std;#define N 10001#define M 100001int bin[N];int tse;bool flag[N];struct node{ i

2012-10-11 10:33:14 801 3

原创 hdu 1461 Rotations and Reflections(搜索)

认真把题目读完,你就会发现  最终状态只会是题目描述的那几种。 bfs水过#include#include#include#include#define N 11using namespace std;struct Node{ char map[10][N]; int flag;};char endstate[10][N];Node t1,t2,t3;in

2012-10-11 10:12:33 542

原创 hdu 3023 Dirt (优先队列)

这道题。就是普通bfs过不了。。 很简单的优先队列。。#include#include#include#include#define N 1001using namespace std;int fx[8][2]={0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1},n,m,sx,sy,ex,ey,tp,tb;struct Map{ int cb

2012-10-11 10:07:07 879

原创 hdu1754 I Hate It (线段树)

/*线段树 水题 模板套过*/#include #include#includeusing namespace std;#define max(a,b) a>b?a:bstruct LineTree{ int left,right;//左右区间端点 int highest;//区间最大值 LineTree *lchild,*rchild;};LineTr

2012-10-10 20:23:39 419

原创 poj 1679 The Unique MST (次小生成树)

首先说明这道题图式连通的.    判断最小生成树是否唯一等价于判断最小生成树与次小生成树是否相等。    题目就清晰了。    次小生成树不清楚的 看看我的另一篇 hdu 4081 Qin Shi Huang's National Road System(次小生成树)#include #include #include#define MAX 105#define MAXCO

2012-10-10 18:57:56 927

原创 hdu 4081 Qin Shi Huang's National Road System(次小生成树)

/*首先求出最小生成树大小sum。并记录最小生成树的边。 然后遍历图中所有边。 如果边在最小生成树中.这用边两点的人口和/sum-边长. 如果边不在最小生成树中,这条边一上来就形成了一个环。 例如原来是a->b->c 加入一条边 ac 那么 为了保证sum-边长最小 就得sum-max(ab,bc) 则就是 ac两点的人口和/sum-max(ab,bc)

2012-10-10 18:10:31 1576 1

原创 Stl vector,map set简单用法

Stl vector,map set简单用法一. vector1.声明:          一个vector类似于一个动态的一维数组。          vector a; //声明一个元素为int类型的vector a          vectot a;//声明一个元素为MyType类型的vector a          这里的声明的a包含0个元素,既a.size()

2012-10-10 14:58:23 449

原创 hdu 1078 FatMouse and Cheese(dp 记忆化搜索)

/*dp 记忆化搜索*/#include#include#include#define max(a,b) a>b?a:busing namespace std;int n,k;int map[101][101];int dp[101][101];int fx[4][2]={-1,0,0,1,0,-1,1,0};bool isValide(int x,int y){ i

2012-10-09 20:11:25 516

原创 hdu 1059 Dividing (多重背包)

/*多重背包*/#include#include#include#define max(a,b) a>b?a:b#define N 60001using namespace std;int a[7],sum,index;char f[N];int main(){ freopen("test.txt","r",stdin); index=0; while(

2012-10-09 19:14:22 363

原创 hdu 2546 饭卡(背包)

/*这个题如果用数组把所有菜价都存了,就用0-1背包 hash记录菜价就多重背包吧。。 对于这题都可以 运行差别不大. 主要就是策略问题。题目说只要卡里有5块以上的钱的话。就可以买任何菜。 那么我们把开始时卡的余额减个5。找出菜价最大值。 然后把-5后余额当做背包的容量 进行背包就可以了。*/#include#include#include#def

2012-10-09 18:37:44 319

转载 ZOJ 3329 One Person Game(概率dp)

dp求期望的题。    题意:    有三个均匀的骰子,分别有k1,k2,k3个面,初始分数是0,    当掷三个骰子的点数分别为a,b,c的时候,分数清零,否则分数加上三个骰子的点数和,    当分数>n的时候结束。求需要掷骰子的次数的期望。    题解:    设 E[i]表示现在分数为i,到结束游戏所要掷骰子的次数的期望值。    显然 E[>n] = 0; E[

2012-10-09 17:22:10 318

转载 背包问题九讲(转)

背包问题九讲(转)P01: 01背包问题           这是最基本的背包问题,每个物品最多只能放一次题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表

2012-10-09 16:18:56 748

原创 hdu 1024 Max Sum Plus Plus(dp)

/* dp[i][j]是前j个数有i个子段的最大值 dp[i][j]=max{dp[i][j-1]+a[j],dp[i-1][t]+a[j]} i-1<=t<j; 考虑到数据大。 转移方程中只涉及 i ,i-1用滚动数组.*/#include#includeusing namespace std;int a[1000001],b[1000001],c[100000

2012-10-09 15:08:09 334

原创 hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)

/*多重背包入门题。把问题转化成0-1也能A 。ORZ这个是多重背包代码*/#include#include#includeusing namespace std;int n,m;int price[101],w[101],cnt[101];int dp[101];int main(){ freopen("test.txt","r",stdin); int

2012-10-09 11:21:35 555

原创 hdu 3371 Connect the Cities(prim)

/*题中 m可取0 <= m <= 25000可见不是个稀疏图 kruskal果断超了。prim 代码写的水 984ms水过。*/#include #include #define MAX 505#define MAXCOST 0x7fffffffint sum,n,m,k,graph[MAX][MAX],record[MAX];int adjvex[MAX];//记录顶点是否

2012-10-08 16:02:30 343

原创 hdu 1879 继续畅通工程 (prim)

/*prim继续水 唯一要注意的就是当路已经建成的。把成本置为0*/#include #include #define MAX 105#define MAXCOST 0x7fffffffint sum,n,graph[MAX][MAX];int adjvex[MAX];//记录顶点是否被访问int lowcost[MAX];//只管记录的是已是最小生成树集合到各个点的最小值void

2012-10-08 10:57:32 689

原创 hdu 1863 畅通工程 (prim)

/*prim 水过*/#include #include #define MAX 105#define MAXCOST 0x7fffffffint sum,n,graph[MAX][MAX],n2;int adjvex[MAX];//记录顶点是否被访问int lowcost[MAX];//只管记录的是已是最小生成树集合到各个点的最小值void Prim(){ int i,

2012-10-08 10:39:04 341

原创 hdu1233 还是畅通工程 (prim)

/*prim模板 水过*/#include #include #define MAX 105#define MAXCOST 0x7fffffffint sum,n,graph[MAX][MAX];int adjvex[MAX];//记录顶点是否被访问int lowcost[MAX];//只管记录的是已是最小生成树集合到各个点的最小值void Prim(){ int i,j

2012-10-08 10:37:51 296

原创 hdu 2647 Reward (拓扑排序)

/*比较明显的拓扑排序。具体看注释*/#include#include#include#include#define N 10001using namespace std;int n,m,x,y,tsum,indx,flag;struct Node{ int in;//入度 int sum;//该点获得的奖金 int next;//后续节点数 ve

2012-10-07 16:08:04 261

原创 hdu 1874 畅通工程续

/*标准dij*/#include#include#include#define N 201using namespace std;int road[N][N],adj[N],st,ed,x,y,t,vis[N],tmin,m,n;int main(){ while(scanf("%d%d",&m,&n)!=EOF) { memset(roa

2012-10-07 15:43:16 283

原创 hdu 1596 find the safest road (最短路)

/*floyd直接水过*/#include#include#include#define N 1001using namespace std;int n,x,y;double road[N][N],t;int main(){ while(scanf("%d",&n)!=EOF) { memset(road,0,sizeof(road));

2012-10-07 15:19:04 680

原创 zoj 3607 Lazier Salesgirl 贪心

/*这道题有点坑。。比赛时有两道这个为背景的买面包。搞混了。 (lazier Or lazy)。这道题 买面包 。人睡觉时。。客人来了就走。不会叫醒人。。贪心。如果第从i个人开始买不到面包 。那他后面的人是肯定买不到的。如果第i个人买到了。那么前面的人一定会买到。。这里有个坑爹的地方。。更新平均值时 在maxtime<t[i+1]-t[i]的时候更新。*/#include#inclu

2012-10-07 09:50:53 597

转载 Hdu-3926 Hand in Hand

原文链接:http://blog.csdn.net/niushuai666/article/details/6916764#include#include#include#include#include#includeusing namespace std;#define MAXN 10010int pre1[MAXN], pre2[MAXN]; //父节点int num

2012-10-06 16:30:32 295

原创 hdu 1198 Farm Irrigation

/*并查集。 模板一套问题就没了。 注意 用数组表示管道时别打错。*/#include#include#includeusing namespace std;int type[11][4]={{1,0,0,1},{1,1,0,0},{0,0,1,1},{0,1,1,0},{1,0,1,0},{0,1,0,1},{1,1,0,1},{1,0,1,1},{0,1,1,1}

2012-10-06 09:00:36 243

转载 stl 栈 队列的用法

STL 中优先队列的使用方法(priority_queue)基本操作:empty() 如果队列为空返回真pop() 删除对顶元素push() 加入一个元素size() 返回优先队列中拥有的元素个数top() 返回优先队列对顶元素在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。使用方法:头文件: #include   声明方

2012-10-05 16:46:44 362

原创 hdu 4415 Assassin’s Creed 贪心

/*这道题一眼就能看出是个贪心。但是做的时候想了N种策略最后都证明是错的。多亏dp哥。题意就不说了。这道题要求在尽量多杀怪的情况下保证花费最少。杀怪有2中方法 用怪物的剑 用自己的剑的耐久题目说了杀一个怪 。可以获得数量不等的剑。那么首先我们用耐久杀一个能在获得剑不为零的情况下花费耐久最小的怪。这样一来 我们肯定可以杀光那些带剑的怪。我们先假设用剑把带剑的杀光 ,把可以获得的剑的数量

2012-10-05 16:38:22 925

原创 hdu 4414 Finding crosses

/*找十字架。。 我们首先找出所有可能的中点(上下左右各有一个点)。 然后一个个中点bfs。。*/#include#include#include#includeusing namespace std;char map[52][52];int n,sum;int fx[4][2]={0,-1,0,1,-1,0,1,0};void init(){ su

2012-10-05 16:12:44 293

原创 hdu 1270 小希的数表

/*枚举答案的第一个数。可知 枚举的第一个数若是正确的。那么用题目所给的输入数组 一个一个的减去第一个数得到一个数bi。用bi与前面的b1到bi-1分别相加。如果都是hash记录的数 则bi就是要求的一个数。 否则就不是。这样一直下去就可以求出结果。。最坑的就是题目中输入时n*(n-1)/2个和 这些和中有可能是重复的所以hash 要 ++ -- 不能是 0 1;*/#in

2012-10-05 14:02:07 1263

原创 poj 1190 生日蛋糕 dfs剪枝

/* 大神的剪枝。。。 估计好下界 进行剪枝。 2*v/R+tmp>=ans; 2*v/R为估计的剩下的能表面积下界。。虽然这个下界是不可达的,*/#include #include#includeusing namespace std;int R,H,n,m,ans,mv[21],tmp;void dfs(int v,int dep,int R,int

2012-10-04 17:41:04 390

原创 hdu4405 Aeroplane chess 期望

大牛说的很清楚。。点击打开链接#include#include#includeusing namespace std;double dp[100010];int flag[100010];int x,y;int main(){ int n,m; while(scanf("%d%d",&n,&m)&&n!=0) { for(int i=

2012-10-04 10:44:17 288

空空如也

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

TA关注的人

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