自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夜月

神一样的男人!Fighting~~~

  • 博客(27)
  • 收藏
  • 关注

原创 hdu 4288(线段树) Coder

首先要离散化!!!学习到了!!看过代码之后就会理解。。这道题,难在线段树节点的维护。每个节点即每个区间,cnt[rt]表示该区间的个数,sum[rt][5]表示该区间对5取余相同的数的和。接下来就是怎么样pushUp(rt)了,即维护该节点:该节点左孩子有cnt[rt那么,sum[rt要求的是对5求余为3的所有数的和。左孩子已经有cnt[rt可以将cnt[rt那么,

2013-05-20 19:11:04 442

原创 hdu 1034 Candy Sharing Game

纯模拟题。。。#includeusing namespace std;int a[1000];int b[1000];bool flag;int main(){ int n,c; while(scanf("%d",&n)==1&&n) { for(int i=0;i<n;i++) scanf("%d",&a[i]); c=0; while(true)

2013-05-19 14:01:40 488

原创 hdu Biker's Trip Odometer

知道了题意之后,很水的一道题。题意:给定一个轮子的直径,轮子转的圈数,和轮子转的时间。求轮子转的总的路程和速度!#includeusing namespace std;#define PI 3.1415927int main(){ double d,t; int res,x=1; while(scanf("%lf %d %lf",&d,&res,&t)==3&&res) {

2013-05-19 13:38:40 470

原创 poj 1003 && hdu 1056 HangOver

直接贴代码。水!#includedouble s,n;int c;main(){ while(scanf("%lf",&n)==1&&n>0) { for(c=1,s=0.5;s<n;c++) s+=(1.0/(c+2)); printf("%d card(s)\n",c); }}

2013-05-19 13:17:49 444

原创 hdu 2036 改革春风吹满地

向量叉积求三角形面积公式:A,B,C为三角形的三个点,向量AB,向量ACS(A,B,C)=abs(AB×AC)/2;然后,可以扩展到以原点为起始点,相邻两个点位终点,求出来的面积是有方向的。。。 #includeusing namespace std;int main(){ int n; while(scanf("%d",&n)==1&&n) { float

2013-05-19 12:23:46 520

原创 hdu 2108 Shape of HDU

向量叉积的运用!向量a,向量b:1. a×b>0 , 以向量a为始边,向量b在a的逆时针方向2. a×b3. a×b=0, a,b平行,向量方向可能相同,可能不同. #includeusing namespace std;int main(){ int n; while(scanf("%d",&n)==1&&n) { int x1,y1,x2,y2,x3,

2013-05-19 12:12:59 503

转载 ACM计算几何题目推荐

//第一期计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考

2013-05-19 09:51:42 477

原创 hdu 4292(网络流)Food

要邻接表才能过呢。。。#include#include#include#includeusing namespace std;#define INF 100000000struct edge{ int t,next,cap;}e[250000];int head[1000],dist[1000];int s,t,id;queue q;int min(int

2013-05-17 18:21:40 417

原创 poj 2349 (最小生成树)Arctic Network

类Prim算法求出最小生成树的每节最短距离。然后,第s-1个最大的距离就是所求。 #include#include#include#includeusing namespace std;#define INF 10000000struct node{ int x,y;}post[505];double g[505][505];int vis[505];dou

2013-05-17 18:10:54 455

原创 poj 2446(二分匹配) Chessboard

按照奇偶点建立二分图。然后,就是二分最大匹配! #include#include#include#includeusing namespace std;int vis[1500];int match[1500];int map[40][40];int dir[4][2]={ {-1,0},{0,1},{1,0},{0,-1} };int m,n,k;vector

2013-05-17 18:02:57 455

原创 poj 2239 Selecting Courses

挺裸的二分匹配!匈牙利算法:#include#include#includeusing namespace std;int g[305][90];int vis[305];int link[305];int n,m;int dfs(int u){ for(int i=1;i<=m;i++) if( !vis[i] && g[u][i] ) { vis[

2013-05-17 17:59:36 429

原创 hdu 2874 Connections between cities

同样的裸LCA问题!Tarjan算法:#include#includeusing namespace std;#define INF 0x7fstruct Node{ int t,cap;};int dist[10010]; //到根节点的距离int parent[10010];bool vis[10010]; //判断是否已走过。可以用来求森林树。。。

2013-05-16 20:04:55 415

原创 hdu 2586 How far away ?

很裸的LCA问题!Tarjan算法:#include#include#include#includeusing namespace std;struct node{ int t,cap;};vector qry[40010];vector map[40010];int ans[210];int parent[40010];int dist[40010];i

2013-05-16 19:55:36 372

原创 poj 3692 Kindergarten

把不认识的两两相连。那么,最后所求为最大独立集=n-最大匹配。。。匈牙利算法:#include using namespace std;int g[205][205];int vis[205];int link[205];int gr,b,m;int dfs(int u){ for(int i=1;i<=b;i++) if( !vis[i] && g

2013-05-13 19:57:47 396

原创 hdu 1068 Girls and Boys

最大二分匹配。题目所求为最大独立集=n-最大匹配Hopcroft-krap()算法:#include #include #include #include using namespace std;#define INF 10000000queue q;int g[505][505];int vis[505];int distx[505],disty[505];

2013-05-13 19:55:21 614

原创 hdu 1532Drainage Ditches

网络流! 1. E_K()#include #include#include#includeusing namespace std;int g[205][205];int n,m;queue q;int parent[205];int vis[205];int flow[205];int min(int a,int b){ return a>b?b:

2013-05-13 09:56:29 400

原创 hdu 4160 Dolls

建图:把可以装进去的建立连接。然后,就是很裸的二分匹配了。。。 #include#include#includeusing namespace std;int n;int g[505][505];int vis[505];int link[505];struct Doll{ int w,l,h;}d[505];void judge(Doll a,Dol

2013-05-13 09:51:55 444

原创 hdu 2063 过山车

很裸的二分匹配。。。 #include#include#includeusing namespace std;int g[505][505];int vis[505];int link[505];int n,m,k;bool dfs(int u){ for(int i=1;i<=n;i++) if(g[u][i] && !vis[i])

2013-05-13 09:49:51 446

原创 hdu 2544 最短路

最短路径。。。 #include#include#includeusing namespace std;#define MAX 1000000int g[105][105];int vis[105];int cost[105];int main(){ int n,m; while(scanf("%d %d",&n,&m)==2&& (n||m))

2013-05-13 09:47:57 472

原创 hdu 2680 Choose the best route

只需要加一个起点,到所有原始起点权值为0.然后,就是最短路了。。。 #include#include#includeusing namespace std;#define MAX 1000000int g[1010][1010];int vis[1010];int cost[1010];int main(){ int n,m,s; while(scan

2013-05-13 09:45:42 419

原创 hdu 2444 The Accomodation of Students

判断一下是否为二分图。然后就是简单的二分图匹配了。。。为什么是否为二分图,跟这道题有联系?这道题如果同一边有认识的,那么输出‘NO’。可以把任意一个点标记为1,然后,跟他相连的的其余点标记为-1,然后,依次扩展。这时候,如果一个点i跟他相连的其中一个点j已经标记了。那么,也就是说,i,j都已经跟起点各自归到了一边了。如果,i,j的标记一样,那么,他们是在同一边的。不一样,那么,在不

2013-05-13 09:39:46 462

原创 hdu 2389 Rain on your Parade

很裸的二分匹配。。。每个人可以到达第几把伞,然后建立二分图。。不过,匈牙利算法TLE,可以用H_K(Hopcroft_Karp)算法 #include#include#include#include#includeusing namespace std;#define INF 10000000struct Guest{ int x; int y;

2013-05-12 15:14:21 533

原创 poj 1274 The Perfect Stall

很裸的二分最大匹配。。。用的H_K(Hopcroft_Karp) #include#include#include#includeusing namespace std;#define INF 10000000queue q;int g[205][205];int distx[205],disty[205];int linkx[205],linky[205];in

2013-05-12 15:09:38 451

原创 poj 1469 && hdu1083 COURSES

二分最大匹配。。。记得数组开大。。wa了两次。。。 匈牙利(Hangary)算法:#include#include#includeusing namespace std;int g[305][305];int vis[305];int link[305];int p,n;bool dfs(int u){ for(int i=1;i<=n;i++) if(

2013-05-12 14:26:13 527

原创 poj 2195 Going Home

很裸的二分图最优匹配把每个‘m’距离其他所有的‘H’之间的权值求出,建立二分图。求出最优匹配。求最小权值,只需把所有的权值取相反数,求出最大权值,再取相反数。 求最优匹配,跟求网络流思想一样,中间有个转换的思想,即有一个反悔的操作,网上资料一大堆呢! #include#include#include#includeusing namespace std;#defi

2013-05-12 13:54:00 503

原创 poj 3014 Asteroids

二分图最大匹配。建图:按照每行与每列的连接!比如,第一行与第一列、第三列连接。。。这样就可以建立一个二分图。然后,求出最小点覆盖,即求出最少的点数,这些点可以把所有的边都覆盖。最小点覆盖=最大匹配。 写了两种匹配,匈牙利(Hungary) 和 Hopcroft-Karp 1. Hungary() #includeusing namespace std;in

2013-05-12 13:23:19 505

原创 hdu 1031 Design T-Shirt

两次排序搞定!第一次把总数排下序。第二次把前K个按照index排下序。。。 #include #includeusing namespace std;struct Element{ int num; float sum;}ele[1010];int n,m,k;int cmp1(Element a,Element b){ retu

2013-05-06 14:15:04 415

空空如也

空空如也

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

TA关注的人

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