2013年10月24日
摘要: 判断是否有负环。。。Bellman_ford#include #include #include #define N 2200#define INF 9999999int v[N],w[N],u[N];int d[N];int n,m;bool Bellman_ford(){ for(int i=0; id[x]+w[i]) { printf("%d %d %d %d %d %d\n",x,y,d[y],d[x]+w[i],d[x],w[i]); return true; } } return false... 阅读全文
posted @ 2013-10-24 00:16 风流monkey 阅读(134) 评论(0) 推荐(0) 编辑
  2013年10月17日
摘要: 并查集 找最大的子集 或者 bfs#include #include #include #include #define N 30000+10#define INF 999999using namespace std;int n,m;int p[N];int v[N];int a,b;int find(int x){return p[x]==x?x:p[x]=find(p[x]); }int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); mems 阅读全文
posted @ 2013-10-17 16:40 风流monkey 阅读(179) 评论(0) 推荐(0) 编辑
  2013年10月16日
摘要: Dij算法 需要对每个电梯进行预处理#include #include #include #define INF 9999#define N 110using std::min;using std::sort;int dp[N][N];int a[N];int d[N];int n,m;char ch;int time[7];int v[N];int front,rear;void solve(int k,int nx){ sort(a, a+nx); for(int i=0; icc) dp[d][c]=dp[c][d]=cc; } ... 阅读全文
posted @ 2013-10-16 23:29 风流monkey 阅读(163) 评论(0) 推荐(0) 编辑
  2013年10月10日
摘要: floyd 最短路算法#include #include #include #include #define N 25#define INF 10000using namespace std;int dp[N][N];int n,m,a,b;void floyd(){ for(int k=1; k<=20; ++k) { for(int i=1; i<=20; ++i) { for(int j=1; j<=20; ++j) { dp[i][j]=min(dp[i][j], dp[i... 阅读全文
posted @ 2013-10-10 18:18 风流monkey 阅读(137) 评论(0) 推荐(0) 编辑
  2013年10月9日
摘要: 用的Dijkstra 最短路的算法 此时不是记录的x 到y的最短路径 而是在这一段上的 各个分段中的最小权值#include #include #include #include #include #include #define N 10010#define INF 0x3f3f3f3fusing namespace std;int n,m;int u,v,w;int p[N][N];int dp[N];int vis[N];int main(){ int cas=0; while(scanf("%d %d",&n,&m)==2) { if(!n & 阅读全文
posted @ 2013-10-09 18:49 风流monkey 阅读(125) 评论(0) 推荐(0) 编辑
  2013年10月8日
摘要: 用了一个简单的数论定理 百度了一下 可以看一下 然后二分求最小值http://zhidao.baidu.com/question/542470152.html#include #include #include #include using std::max;using std::cin;using std::cout;using std::endl;long long number[110],mx;bool prime[110];void tot(){ memset(prime, true, sizeof(prime)); prime[1]=false; for(int i... 阅读全文
posted @ 2013-10-08 19:58 风流monkey 阅读(148) 评论(0) 推荐(0) 编辑
  2013年9月26日
摘要: 最短路 优先队列Dij#include #include #include #include #include #include #define N 100010#define INF 0x3f3f3f3fusing namespace std;typedef pair pii;struct dat{ int u,v,w,next;} a[N];int n,m,s,t;int first[N],done[N],d[N];void dij(){ priority_queue,greater >q; memset(d, 0x3f, sizeof(d)); memset(do... 阅读全文
posted @ 2013-09-26 23:43 风流monkey 阅读(135) 评论(0) 推荐(0) 编辑
  2013年9月25日
摘要: bfs+博弈 坑爹的hdu,用dfs会爆栈 只能用bfs了,用两边bfs 第一遍用来判断Ali能否一步找到财富,就是看外围是否有一条路通向(-1),再就是标记内边界,再就是第二遍从外面bfs来找寻真正的边界;其实这个题最终形态就是化为5 1 5 0 1 0 6 -1 6 -> 1 -1 1 8 9 8 0 1 0 当化为诸如此类的形态后 下一次攻击石头的人就会输,所以只要判一下外面石头的奇偶性就行了。#include #include #include #include #include #define N 310using std::vector;us... 阅读全文
posted @ 2013-09-25 20:44 风流monkey 阅读(233) 评论(0) 推荐(0) 编辑
  2013年9月10日
摘要: 水题 判一下能不能构成三角形 直接把最小的三角形面积直接爆出来#include #include #include #include #include #include #define INF 1000000007using std::cout;using std::endl;double dat[110][2];double solve(double a, double b, double c, double d, double e, double f){ return fabs((c-e)*(b-d)-(c-e)*(f-d)/2-(a-e)*(b-f)/2-(c-a)*(b-d)/2... 阅读全文
posted @ 2013-09-10 16:56 风流monkey 阅读(171) 评论(0) 推荐(0) 编辑
  2013年9月9日
摘要: bfs 今天比赛的时候sb了好久不用bfs都忘记了。。。自己越来越水了。。。#include #include #include #include #include #define INF 1000000007using std::vector;using std::endl;using std::cout;int n,m;int dp[100002];int vis[100003];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); vect 阅读全文
posted @ 2013-09-09 00:08 风流monkey 阅读(144) 评论(0) 推荐(0) 编辑