上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: #include<iostream>#include<vector>#include<queue>using namespace std;const int MAXN=1005;const int MAX=999999999;struct edge{ int from,to,cost;};vector<edge>v[MAXN];int dist[MAXN];bool in_queue[MAXN];void init(){ int i=0; for(i=0;i<=MAXN-1;i++) { v[i].clear(); } memset(in_ 阅读全文
posted @ 2012-07-26 11:40 77695 阅读(340) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<set>using namespace std;const int MAXN=1003;int u[MAXN];int find(int p){ if(p==u[p]) { return u[p]; }else { return u[p]=find(u[p]); }}void connect(int a,int b){ int f1=find(a); int f2=find(b); if(f1<f2) { u[f2]=f1; }else ... 阅读全文
posted @ 2012-07-26 10:54 77695 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 树中的点永远是边数+1。然后判断图中最大联通分量是否大于一。并且们每个点都要访问到。不过目测这道题目深搜也可以过。#include<iostream>#include<set>#include<cstdio>#include<vector>using namespace std;const int MAXN=10000005;const int MAXM=100005;int u[MAXN];int sum[MAXN];set<int>num;//bool seted[MAXN];int find(int p){ if(u[p]==p 阅读全文
posted @ 2012-07-26 10:52 77695 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 不过这个求的是最大集合的个数#include<iostream>#include<set>#include<cstdio>#include<vector>using namespace std;const int MAXN=10000005;const int MAXM=100005;int u[MAXN];int sum[MAXN];set<int>num;//bool seted[MAXN];int find(int p){ if(u[p]==p) { // seted[p]=1; return p; }else { // se. 阅读全文
posted @ 2012-07-26 10:47 77695 阅读(209) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<vector>#include<queue>#include<cstdio>using namespace std;struct edge{ int from,to,cost; friend bool operator <(edge e1,edge e2) { return e1.cost>e2.cost; }};const int MAXN=111;int u[MAXN];vector<edge>v[MAXN];bool selected[MAXN];//bool s 阅读全文
posted @ 2012-07-26 10:43 77695 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 求集合的个数#include <cstdlib>#include <iostream>#include<stdio.h>using namespace std;const int MAXN=1003;int p[MAXN];int find(int i){ if(p[i]!=i) { return p[i]=find(p[i]); }else { return i; }}void connect(int a,int b){ int f1=find(a); int f2=find(b); if(f1>f2) { ... 阅读全文
posted @ 2012-07-26 10:41 77695 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 从学长那学到的。。oj上g++用在用stl等模版比较多的代码中运行的速度较快。c++用在代码中嵌套递归比较多的时候较快。但个人感觉c++要快些。输入的时候最好使用scanf保证效率。oj上面1秒钟大概能做10^7次运算。做最短路径时把MAX设置为999999999(九个九)差不多(signed int 的最大值为2147483647)。差不多把。就这些。。^_^an ac a day,keep wa away~~ 阅读全文
posted @ 2012-07-26 10:24 77695 阅读(216) 评论(0) 推荐(0) 编辑
摘要: #include <cstdlib>#include <iostream>#include<vector>#include<queue>using namespace std;struct edge{ int from,to,cost;};const int MAXN=111;const int MAX=999999;vector<edge>v[MAXN];bool in_queue[MAXN];int dist[MAXN];void spfa(int p){ queue<int>q; int i=0; memset(in 阅读全文
posted @ 2012-07-26 10:13 77695 阅读(236) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<vector>#include<queue>#include<cstdio>using namespace std;struct edge{ int from,to,cost; friend bool operator <(edge e1,edge e2) { return e1.cost>e2.cost; }};const int MAXN=105;vector<edge>v[MAXN];bool selected[MAXN];int prim(int p){ pri 阅读全文
posted @ 2012-07-26 10:09 77695 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 主要是对字符串的处理,脑袋木了一下#include <cstdlib>#include <iostream>#include<string>#include<vector>#include<queue>using namespace std;struct edge{ int from,to; int cost;};const int MAXN=155;const int MAX=0xfffffff;bool in_queue[MAXN];int dist[MAXN];vector<edge>v[MAXN];string l 阅读全文
posted @ 2012-07-26 10:05 77695 阅读(228) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页