![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hdu
文章平均质量分 67
飞上天空的鱼
这个作者很懒,什么都没留下…
展开
-
hdu1007最近点对
#include#include#include#include#includeusing namespace std;struct D{ double x,y;} a[100100];int tmp[100100];double cmp(D a,D b){ return a.x}double cmpy(int p,i原创 2013-02-07 14:19:13 · 317 阅读 · 0 评论 -
hdu 3371 Connect the Cities(最小生成树)
/* hdu 神坑啊! c++能过g++TLE!!!尼玛*/#include#include#define INF 1int map[510][510],low[510],vis[510];int n,m,k;int init(){ for(int i = 1; i for(int j = 1; j map原创 2013-04-16 18:16:32 · 749 阅读 · 0 评论 -
hdu 1863(最小生成树)
/* 基础的最小生成树问题, 不过 要特判条件不足的情况*/#include#include#define INF 1int n,m,vis[110],low[110];int map[110][110];int init(){ for(int i = 1; i for(int j = 1; j map[i][j] = I原创 2013-04-16 10:40:37 · 586 阅读 · 0 评论 -
hdu 1879 继续畅通工程 最小生成树
/* 最小生成树 水题*/#include#include#include#define INF 1int n,m,vis[110];int low[110];int map[110][110];int init(){ for(int i = 1; i for(int j = 1; j map原创 2013-04-16 14:07:55 · 586 阅读 · 0 评论 -
hdu 1301 Jungle Roads
/* MST 水题!*/#include#include#define INF 1int map[30][30],low[30],vis[30];int n;int prim(){ int ans=0; for(int i = 0; i low[i] = map[1][i]; vis[1] = 1; f原创 2013-04-16 18:39:33 · 622 阅读 · 0 评论 -
hdu 1162 Eddy's picture(最小生成树)
/*水、模板题*/#include#include#include#define INF 1double map[130][130],low[130],a[110],b[110];int vis[130];int n;double dis(int i,int j){ return sqrt((a[i]-a[j])*(a[i]-a[j])+(b[i]-b原创 2013-04-16 18:47:35 · 638 阅读 · 0 评论 -
hdu 1198 Farm Irrigation(搜索+并查集)
/* 这个题我是用搜索过的 本来是想用并查集做,但是始终WA不得正解就直接搜索了*/#include#includeint n,m;int dx[]= {0,0,1,-1},dy[]= {1,-1,0,0}; // r l d uchar s[555][555];int p[555],vis[555][555];struct Node{ int原创 2013-04-17 13:08:24 · 731 阅读 · 0 评论 -
hdu 1598 find the most comfortable road(枚举+并查集)
/* 用到了贪心的思路,将边排序 在进行枚举 运用并查集就可以判断是否连通 找出最小值*/#include#include#include#define INF 1int n,m,p[1002];struct R{ int x,y,w;} a[1003];int cmp(const void *x,const void *y)原创 2013-04-17 21:09:33 · 712 阅读 · 0 评论 -
hdu 3926 Hand in Hand(同构图)
/* 判断2个图是否为同构图 只需要判断 图中存在的环跟链的个数是否相同, 环中链中元素个数是否相同运用并查集可以做*/#include#include#include#include#define maxn 10001using namespace std;struct R{ int num,flag;} r1[maxn],r2原创 2013-04-18 17:45:32 · 798 阅读 · 0 评论 -
hdu 1811-Rank of Tetris(并查集+拓扑排序)
/* 并查集处理=,然后拓扑排序 当队中超过1个元素时是条件不足,若没有用完所给的条件则是出现冲突*/#include#include#include#includeusing namespace std;int u[10010],v[10010],p[10010],deg[10010];char opr[10010];vector G[10010];原创 2013-04-15 15:56:27 · 763 阅读 · 0 评论 -
HDU-1325-Is It A Tree?
/* 可以用并查集来解决这个问题,给出一些边判断是不是一个棵树, 只需要判断只有一个跟节点并且每个点的度不大于1就行、这个题刚开始RE了几次 一直没找到原因,最后才发现 只要2个数都小于0就终止,我以为是-1,-1 结果RE*/#include#include#define M 100010int p[M],vis[M],deg[M];int init()原创 2013-04-15 19:03:44 · 817 阅读 · 0 评论 -
hdu-1103
/*其实就是一个优先的问题,直接模拟的*/#include#include#includeint cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int main(){ int num[40],str[40][1100]; while(scanf("%d %原创 2013-02-07 14:22:46 · 661 阅读 · 0 评论 -
hdu-1269
/*强连通分量 模板题 tarjan算法写的*/#include#include#include#includeusing namespace std;int scc[100100],m,n;int dfn[100100],low[100100],times,ma,mb,scc_cnt;stack q;vector map[100100];int dfs原创 2013-02-07 14:24:26 · 324 阅读 · 0 评论 -
hdu1030
/*数学规律,第一种方法:找3种层数之差加起来 横向 左斜 右斜 第二种: 找出上面的点 的辐射范围*/#include#include#include#includeint main(){ int m,n; while(scanf("%d%d",&m,&n)==2) { int temp; i原创 2013-02-07 14:21:24 · 336 阅读 · 0 评论 -
hdu 3367 Pseudoforest(最大生成树)
/* 可以说是一个最大生成树的问题吧, 题意:求出一个最大的子图(子图的每个连通分量最多有一个环) 用kruskal算法求出最大生成树 不过要判断是否有环 2树合并时 :若2个子树都有环不能合并 只有一个有环可以合并 但合并后的树有环 若2个子树都没环直接合并*/#include#include#includeusing namespace std;原创 2013-04-22 15:11:06 · 1279 阅读 · 0 评论 -
hdu 1272 小希的迷宫(并查集)
/*并查集问题,判断是否连通 并且没有环 若果2个点的根节点相同的话说明会成环,想象一下就知道了*/#include#include#define M 100010int p[M],vis[M],deg[M];int init(){ for(int i = 0; i p[i] = i; memset(vis,0,si原创 2013-04-15 19:25:30 · 631 阅读 · 0 评论 -
hdu 1856 More is better
/* 题意: n组边,问这些边所组成的一个连通图 里面最多可以有多少节点, 可以用并查集建图,d[x]存储节点个数*/#include#include#include#define M 10000001using namespace std;int p[M],d[M];int find(int x){ return x==p[x]?x:p[x]=fin原创 2013-04-15 20:05:23 · 631 阅读 · 0 评论 -
hdu 1232 畅通工程(并查集orMST)
/* 题意 连接所有点需要多少边 (已经存在了m条边)两种做法 1:并查集,计算连接了几条边, 总边数为n-1, 答案为n-1-res2: 最小生成树 已有的边权值为0,不存在的为1*///code 1:#include#includeint p[1100],d[1100],vis[1100],map[1001][1001];int n,m,res原创 2013-04-15 22:08:39 · 780 阅读 · 0 评论 -
hdu 1102 -Constructing Roads(最小生成树)
/* 基本的最小生成树问题 将已经存在的边重新建图权值为0,再prim就可以 这个题用prim来做还是比较简单的*/#include#include#define INF 1000+10int map[110][110],vis[110],low[110];int prim(int n){ int ans=0; for(int i = 0;原创 2013-04-15 21:29:26 · 603 阅读 · 0 评论 -
hdu 1233 最小生成树
/*简单的最小生成树*/#include#include#define INF 1int map[1001][1001],vis[1001],low[1001];int n,m;int prim(){ int ans=0; for(int i = 1; i { vis[i] = 0; low[i] =原创 2013-04-15 22:27:37 · 485 阅读 · 0 评论 -
3938 Portal(离线型的并查集)
/* 题意: 给出一个L 找出有多少条路径符合条件(条件为路径中路的最大值《=L) 做了这个题学到了离线这个概念 离线就是 输入完成后进行操作 在线是变输入边操作 用并查集来构图 , 每当遇到2棵树合并时, num[x]*num[y]是新的路径数*/#include#include#include#includeusing namespa原创 2013-04-18 21:53:44 · 983 阅读 · 0 评论