- 博客(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关注的人