UVA 10803 - Thunder Mountain
摘要:Floyd求出任意两个城镇的距离,大于10的置为INF,使其不可达。然后求出符合条件的最大值,输出如果都没有符合条件的就输出 Send Kurdy。#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>const int INF = 0x3F3F3F3F;const int MAXN = 105;double x[MAXN], y[MAXN];double f[MAXN][MAXN], max;int N, n;double min( double a, double b
阅读全文
posted @
2012-02-29 17:04
找回失去的
阅读(240)
推荐(0)
UVA 11045 - My T-shirt suits me
摘要:这是一道网络流的题。将六种不同大小的衣服看成六个点,编号1-6,将志愿者从7-M +6编号,然后源点s = 0, 汇点t = M + 7,网络流的模型就出来了。从源点到衣服的容量是N / 6,从志愿者到汇点的容量是1, 从衣服到志愿者的容量也是1.然后就按照白书上的EK算法写,用BFS找增广路。#include<iostream>#include<cstring>#include<queue>#define INF 100000000#define MAXD 50using namespace std;int flow[MAXD][MAXD], cap[MA
阅读全文
posted @
2012-02-26 20:22
找回失去的
阅读(342)
推荐(0)
Section 1.3 milk
摘要:标准的贪心,先将供应商按照价格的升序排序,然后按需购买价格低的牛奶就可以得到最小的总价。/*ID:yucept21LANG:C++TASK:milk*/#include<cstdio>#include<cstdlib>#include<cstring>typedef struct tt{ int price, amount;}T;int N, M;T milk[5005];int cmp( const void *_p, const void *_q){ T *p = (T *)_p; T *q = (T *)_q; return p->price -
阅读全文
posted @
2012-02-02 16:26
找回失去的
阅读(183)
推荐(0)
UVA 620 - Cellular Structure
摘要:真心不知道怎么用动归,然后网上找到的做法:I think this problem's tip is.. len=string length Mutant : len is 1, and str[0]='B' Simple : if len is 1, and str[0]='A' Fully-Grown : str[len-1]='B', and str[len-2]='A' Mutagenic : str[0]='B', and str[len-1]='A' Else : Mutant然
阅读全文
posted @
2012-02-02 15:45
找回失去的
阅读(189)
推荐(0)
UVA 108 - Maximum Sum
摘要:求出一个矩阵的最大和,我们可以按照行和列计算一块区域的和然后和ans比较,更新ans的值。最后得出的就是所求的最大值。#include<cstdio>#include<cstring>#include<cstdlib>#define MAXN 110int n, ans;int mat[MAXN][MAXN];int max( int a, int b){ return a > b ? a : b;}int dp( int k){ int f[MAXN], a[MAXN]; memset( f, 0, sizeof f); memset( a, 0,
阅读全文
posted @
2012-02-02 14:55
找回失去的
阅读(357)
推荐(1)
UVA
摘要:题意是找到一个最小的数,使得这个数的各位的乘积等于n,首先小于10的数肯定是他本身了。这里不得不拜服knowledgetime大神,从9到2找到这8个数字作为n的因子可以出现几次,然后从小到大依次输出。#include<cstdio>#include<cstdlib>#include<cstring>int main(){ int a[10]; int n, T; scanf( "%d", &T); while( T --) { scanf( "%d", &n); if( n < 10){ pri
阅读全文
posted @
2012-02-01 18:45
找回失去的
阅读(237)
推荐(0)
UVA 11054 - Wine trading in Gergovia
摘要:因为最终都会满足每个人的要求。所以我们可以当作每个居民与他的邻居进行交易,将每次的交易额计算出来相加即可。#include<cstdio>#include<cstdlib>#define MAXN 100010int a[MAXN];long long min, w;int n;int main(){ while( scanf( "%d", &n), n) { for( int i = 0; i < n; i ++) scanf( "%d", &a[i]); min = w = 0; for( int i =
阅读全文
posted @
2012-02-01 17:45
找回失去的
阅读(250)
推荐(0)
UVA 10341 - Solve It
摘要:一道解方程的题,给定区间0到1.如果f(0) * f(1)大于零代表这个区间内所有的x对应的y值都在y轴的一侧,也就是无解。然后用二分的方法解方程。注意变量都要定义成double。#include<cstdio>#include<cstdlib>#include<cmath>const double T = 10e-8;double p, q, r, s, t, u;double res( double x){ return p*exp(-x) + q*sin(x) + r*cos(x) + s*tan(x) + t*x*x + u;}int main(){
阅读全文
posted @
2012-02-01 17:03
找回失去的
阅读(283)
推荐(0)
UVA 11129 - An antiarithmetic permutation
摘要:一个整数n,求它的一个序列,这个序列的要求是其中任何一个子序列都不能是等差序列。枚举必然超时,然后想了半个小时没有任何想法,就参考了七里 大神的思路,用分治法将序列中处于奇偶位置的数字分组,开始分出来的是等差2的序列,然后再在奇偶序列中分组,最终得出的序列就是符合要求的序列中的一个。暂时没有更好的想法。#include<cstdio>#include<cstring>#include<cstdlib>#define MAXN 10010int a[MAXN], b[MAXN];int n;void dvide( int x, int y){ int i, j
阅读全文
posted @
2012-02-01 14:09
找回失去的
阅读(487)
推荐(0)