05 2012 档案
UVA 10397 - Connect the Campus
摘要:最小生成树问题,注意消去固定边时的方法:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define MAXN 800#define MAXN1 300000double x[MAXN], y[MAXN], w[MAXN1];int n, p1, m, p[MAXN], u[MAXN1], v[MAXN1], r[MAXN1], vis[1010][1010];int cmp(const void *_i, const void *_j){ int *i 阅读全文
posted @ 2012-05-23 23:13 BFP 阅读(150) 评论(0) 推荐(0) 编辑
UVA 10048 - Audiophobia
摘要:floyd算法的变形,输出格式问题要注意。。。代码如下:#include<stdio.h>#define MAXNC 100 + 10#define INF 100000 + 100int d[MAXNC][MAXNC];int C, S, Q, num;void init(){ num = 0; while(scanf("%d%d%d",&C, &S, &Q)) { if(C <= 1) break; else if(num != 0) printf("\n"); for(int i = 0; i <= 阅读全文
posted @ 2012-05-23 20:58 BFP 阅读(264) 评论(0) 推荐(0) 编辑
UVA 10034 - Freckles
摘要:利用并查集求最短路,注意浮点数,再就是需要准备一下边集。#include<stdio.h>#include<math.h>#include<stdlib.h>#define MAXN 5000 + 100#define MAXN1 100 + 10int n, m, p1, p[MAXN1],r[MAXN],u[MAXN],v[MAXN];double w[MAXN], x[MAXN1], y[MAXN1];int cmp(const void *_p, const void *_q){ int *p = (int *)_p; int *q = (int * 阅读全文
posted @ 2012-05-17 23:54 BFP 阅读(177) 评论(0) 推荐(0) 编辑
UVA 567 - Risk
摘要:最短路问题:floyd算法:注意:输出格式#include<stdio.h>#define MAXN 200int a, b, n, d[30][30], num;void init(){ num = 0; while(scanf("%d",&a) == 1) { for(int i = 1; i <= 20; i ++) for(int j = 1; j <= 20; j ++) if(i == j) d[i][j] = 0; else d[i][j] = MAXN; ... 阅读全文
posted @ 2012-05-16 00:27 BFP 阅读(172) 评论(0) 推荐(0) 编辑
CSU Scientific Conference
摘要:贪心:#include<stdio.h>#include<stdlib.h>#define MAXN 100000 + 100int Ts[MAXN], Te[MAXN], r[MAXN], n, num;int cmp(const void *_p, const void *_q){ int *p = (int *)_p; int *q = (int *)_q; return Te[*p] - Te[*q];}void init(){ while(~scanf("%d",&n)) { for(int i = 0; i < n; i + 阅读全文
posted @ 2012-05-14 21:30 BFP 阅读(209) 评论(0) 推荐(0) 编辑
UVA 11137 - Ingenuous Cubrency
摘要:这道题想错了方向,一直纠结于背包运行过程中忽略了一些情况,比如:要选8这个物品,当体积是8的时候我选了一个,因为存在价值为1这样的物品,这就是一种情况,但是当容量是16的时候,因为是完全背包,我又要选一个8,也就是覆盖了前面的f[8],因此我怎样去记录最终组合的种数呢?比如我给的容量就是16:那么会有两种情况8×1+1×8,2×8;但实现起来却是很不容易;换个思路:我们设f[i]表示组成i面值的种数,则f[j] = f[j] + f[j-w[i]];相当于如果当前值j>w[i]的话,我们就选这个面值,因为有面值一的存在,必成立,又多了f[j-w[i]]种情况 阅读全文
posted @ 2012-05-07 19:51 BFP 阅读(285) 评论(0) 推荐(0) 编辑
UVA 11081 - Strings
摘要:参考了:http://par.cse.nsysu.edu.tw/~advprog/advprog2008/11081.doc。里面有一点不对,但思路是对的。字符串问题,题意是让我们在前两个字符串里抽取某些字符,组合为第三个字符串,当然必修要考虑到空集的存在,看到这个问题,我们用dp的思路将它分解,例如:给三个长度为len1,len2,len3的字符串,那么我们可不可以先求出长度为a,b,c,其中a<len1,b<len2,c<len3.由此原问题可以分解为子问题。那么当长度为a,b,c时如何推出len1,len2,len3这个组合呢?i,j,k为三个串的的那个前位置,首先我们 阅读全文
posted @ 2012-05-04 20:34 BFP 阅读(673) 评论(0) 推荐(0) 编辑


点击右上角即可分享
微信分享提示