|
|
ACM-图论最短路径
摘要:图论的题目,求一个人通过虫洞或者普通路径进行行走,能不能在出发前回到原地,抽象成最短路回到原地权值为负。 我数组开505,RE了,结果改大了就A了。 MDK 3259 Accepted 860K 813MS G++ 2604B 2011-11-09 20:54:46#define MAXN 5050struct edge { int v; int dis; edge(int a=0,int ...
阅读全文
摘要:第K短路。A*经典问题:要求两点间的K短路,则图中一个点最多如队列K次(这些都是结论),POJ 2449#define MAXN 10005constint INTMAX =0x7f7f7f7f;int minl[MAXN],vis[MAXN];int n, m, stx, sty, k, mark;struct node { int x; int dis;}u,s,v,t;struct edge { int v; int dis;}p;vector<edge> mat[10005];vector<edge> matT[10005];priority_queue<
阅读全文
摘要:/*ACMer:MDK2011-04-19 18:20:35 Accepted 1558 C++ 0 196 MDK */#include<stdio.h>#include<iostream>#include<limits.h>#include<string.h>#include<math.h>#define MAXN 2005usingnamespace std;int num[14]={0},opt[MAXN]= {0};int fun(int n){ if(n==0) return0; if(opt[n]) return opt
阅读全文
摘要:poj 1042#define MAXNT 2000#define MAXV 60struct edge { int to; int va; edge(){} edge(int t,int v) {to = t;va = v;} bool operator < (const edge a) const { return va < a.va; }};vector<edge> adj[MAXV];int x,y,va;int V,M,stp;int path[MAXNT];bool visit[MAXNT],record[MAXV];void init() { SET(vi
阅读全文
摘要:判断是否存在欧拉路径,而且图必需连通!第二点忘记判断了WA了几次。HOJ 1033#define MAXN 1005#define _ufind_run(x) for(;p[t=x];x=p[x],p[t]=(p[x]?p[x]:x))#define _run_both _ufind_run(i);_ufind_run(j)struct ufind{ int p[28],t; void init(){memset(p,0,sizeof(p));} void set_friend(int i,int j){_run_both;p[i]=(i==j?0:j);} int is_friend(int
阅读全文
摘要:/*8785404 MDK 3439 Accepted 9544K 4297MS G++ 2604B 2011-06-24 17:41:22 *///博客园不给力啊,这么破的编辑器,就是花瓶,动一点就碎!我足足打了三遍注释!!!!/*题目大意就是求出计算机从开始到destination走的最少点数,化成最短路,我一开始用的邻接表,果断TLE了,因为1000个点边的个数m可能很大,所以用邻接阵存,4000MS,多余计算还是很多,用BFS应该2000MS左右就能过了*/#define MAXN 1500#define inf 1000000000typedef int elem_t;int min
阅读全文
摘要:相邻定点不能为一种频道,转化为图定点的着色问题。1129/*8737793 MDK 1129 Accepted 692K 0MS G++ 1858B 2011-06-08 09:40:42 */#include<stdio.h>#include<iostream>#include<limits.h>#include<string.h>#include<math.h>#include<time.h>#include<vector>#include<list>#include<algorithm&
阅读全文
摘要:题目大意是有每个点的初度构造一个图,这个图不唯一。1659/*8736366 MDK 1659 Accepted 696K 0MS G++ 2288B 2011-06-07 19:31:53 */struct frog{ int va,station;};int cmp(const void *a,const void *b){ return (*(frog *)a).va > (*(frog *)b).va ? -1:1;}int main(){ int T;SCF(T); int mat[MAXN][MAXN]; frog fgp[MAXN]; while(T--) { SET(ma
阅读全文
摘要:/*ACMer:MDK2011-04-21 18:28:14 Accepted 1596 1703MS 8136K 1393 B G++ MDK */#include<iostream>#include<string.h>#include<stdio.h>#include<vector>#include<limits.h>#define MAXN 1000const int INTMAX=0x7f7f7f7f;const int INTMIN=0x80808080;using namespace std;double mat[MAXN
阅读全文
摘要:/*ACMer:MDK HDU 1874*/#include<iostream>#include<string.h>#include<stdio.h>#include<vector>#include<limits.h>#define MAXN 250const int INTMAX=0x7f7f7f7f;using namespace std;int mat[MAXN][MAXN],minl[MAXN];void init(){ memset(mat,127,sizeof(mat)); memset(minl,127,sizeof(m
阅读全文
摘要:/*一开始TLE的代码,写个hashf函数*/#include<iostream>#include<string.h>#include<limits.h>#include<stdio.h>#include<vector>#define MAXN 1005#define INTMAX 1000000using namespace std;vector<string> strTmp;int hashnum=0;int map[MAXN][MAXN],minl[MAXN],pre[MAXN];int hashf(string t
阅读全文
摘要:/*ACMer:MDK2011-04-20 16:56:49 Accepted 2544 140 MS 4296 KB GNU C++*/ #include<iostream>#include<string.h>#include<limits.h>#include<stdio.h>#define MAXN 1005#define INTMAX 1000000using namespace std;int map[MAXN][MAXN],minl[MAXN],pre[MAXN];int big = INT_MIN;int dijkstra(int
阅读全文
摘要:/*ACMer:MDKAccepted 2066 46MS 4284K 1465 B G++ MDK FOR:hdu 2066*/#include<iostream>#include<string.h>#include<limits.h>#include<stdio.h>#define MAXN 1005#define INTMAX 1000000 //这里取的大小让我纠结了很长时间我一开始去0x7fffffff,居然有负数,不知道为啥using namespace std;int map[MAXN][MAXN],minl[MAXN],pre[M
阅读全文
|