摘要:
#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_ 阅读全文
摘要:
#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 ... 阅读全文
摘要:
树中的点永远是边数+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 阅读全文
摘要:
不过这个求的是最大集合的个数#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. 阅读全文
摘要:
#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 阅读全文
摘要:
求集合的个数#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) { ... 阅读全文
摘要:
从学长那学到的。。oj上g++用在用stl等模版比较多的代码中运行的速度较快。c++用在代码中嵌套递归比较多的时候较快。但个人感觉c++要快些。输入的时候最好使用scanf保证效率。oj上面1秒钟大概能做10^7次运算。做最短路径时把MAX设置为999999999(九个九)差不多(signed int 的最大值为2147483647)。差不多把。就这些。。^_^an ac a day,keep wa away~~ 阅读全文
摘要:
#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 阅读全文
摘要:
#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 阅读全文
摘要:
主要是对字符串的处理,脑袋木了一下#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 阅读全文