上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页
2013年5月23日

uva10277 - Boastin' Red Socks(炫耀红白袜子)

摘要: 暴力啊,,对p/q求最大公约数,使其互质。然后正确答案肯定是符合条件:r*(r-1) = p*kn*(n-1) = q*k开始的时候我对p,q暴力(p50000*(50000-1)虽然每次都是成倍的增长,但是范围实在太大了,所以交上去严重TLE后来对n暴力,使得n从2到50000。。。。才得以解脱TLE的困惑。后来忘了一个特判。wa了好几次。。。加上p=0的情况。才终于ac了代码如下:#include #include long long INF = 50000; long long p, q, ansb, ansr; long long gcd(long long a, long lon.. 阅读全文
posted @ 2013-05-23 16:13 Primo... 阅读(185) 评论(0) 推荐(0) 编辑

uva11181 - Probability|Given(条件概率)

摘要: 看一位大神的思路,http://blog.csdn.net/wiking__acm/article/details/8636484条件概率公式。。。。。P(A/B) = P(AB)/P(B);代码如下:#include #include const int M = 22; double p[M]; double ans[22]; bool vis[M]; int r, n; void dfs(int k, int cur) { if(cur==0) { double t = 1; for(int i = 1; i <= n; i++) ... 阅读全文
posted @ 2013-05-23 12:47 Primo... 阅读(176) 评论(0) 推荐(0) 编辑
2013年5月22日

uva567 - Risk(Risk游戏)

摘要: Floyd算法的简单应用,,只不过这个题描述图的方法有点不好懂。对于第i行,第一个数字n只是代表这一行还有多少数字要输入,说明节点i和接下来的n个节点都有路径。例如第四行 【1 6】 ::表示节点4和节点6有路径,前面的1只是说明这一行上接下来有多少个数字。代码如下:#include #define INF 1000000 int d[21][21]; int read_draph() { int b, n; for(int i = 1; i d[j][i]+d[i][k]) d[j][k] = d[j][i]+d[i][k]; } int main () { in... 阅读全文
posted @ 2013-05-22 21:54 Primo... 阅读(144) 评论(0) 推荐(0) 编辑
2013年5月20日

uva542 - France '98

摘要: 说实话,这道题,我开始的时候都没看懂题意,,,搜了篇解题报告也没看懂,,,等我把网页上的粘下来一看,我明白了1 Brazil -----+ +-- ? --+ 2 Chile ------+ | +-- ? --+ 3 Nigeria ----+ | | +-- ? --+ | 4 Denmark ----+ | +-- ? --+ 5 Holl... 阅读全文
posted @ 2013-05-20 22:09 Primo... 阅读(142) 评论(0) 推荐(0) 编辑
2013年5月19日

uva10759 - Dice Throwing(掷骰子)

摘要: 题意很简单,,,三步求答案———(1)求分母,(2)求分子,求分子,(3)分母的最大公约数,其中最难求的就是分子,,,此处用的是动规,,,,思路挺简单的,记忆化搜索,代码如下:#include #include #include int n, x; long long dp[24+5][150+5]; long long m, z, g; long long gcd(long long a, long long b) { return b==0?a:gcd(b,a%b); } long long my_pow(int a, int k) { long long ans =... 阅读全文
posted @ 2013-05-19 23:19 Primo... 阅读(151) 评论(0) 推荐(0) 编辑

uva10491 - Cows and Cars(牛和车)

摘要: 大水题,,,,ans = ncow/(ncow+ncar) * ncar/(ncow+ncar-nshow-1) + ncar/(ncow+ncar) * (ncar-1)/(ncow+ncar-nshow-1);代码如下:#include #include int main () { int car, cow, show; while(~scanf("%d%d%d",&cow,&car,&show)) { int n = cow+car; double ans = 1.0*cow*car/(n*(n-show-1)); ... 阅读全文
posted @ 2013-05-19 21:49 Primo... 阅读(123) 评论(0) 推荐(0) 编辑
2013年4月30日

uva10125 - Sumsets

摘要: 最简单的暴力 会超时所以我们要想方设法的减少循环层数或者循环次数,a+b+c = d那么a+b=d-c这不是简单的等式变形而是意味着我们循环的次数减少了。我们对于d和c分别用一层循环,对于a+b只用一层循环。很妙的转变,,,代码如下:#include #include using namespace std; int a[1010]; int main () { int n; while(scanf("%d",&n),n) { for(int i = 0; i = 0; i--) { for(int j = n... 阅读全文
posted @ 2013-04-30 21:33 Primo... 阅读(140) 评论(0) 推荐(0) 编辑

uva188 - Perfect Hash(完美哈希)

摘要: 思路不难。重要的是理解题意。。。照着题意写代码。。。代码如下:#include #include #include using namespace std; char s[300]; int w[300]; int main () { while(gets(s)) { int len = strlen(s), tt = 0, n = 0, min_ = 2147483645; for(int i = 0, f = 0; i tt?tt:min_; tt = 0; f = 0;} continue; } tt = (t... 阅读全文
posted @ 2013-04-30 20:56 Primo... 阅读(176) 评论(0) 推荐(0) 编辑

nefu2 - 猜想

摘要: 遍历2-n/2的所有的数,如果i和n-i都是素数的话就累加上1。。。代码如下:#include #include #define M 16777250 bool is_prime[M]; void judge() { int len = sqrt(M+0.5); for(int i = 2; i <= len; i++) if(is_prime[i]==0) for(int j = i*i; j <= M; j+=i) is_prime[j] = 1; } int main () { int n; judge(); while(scanf("... 阅读全文
posted @ 2013-04-30 14:08 Primo... 阅读(105) 评论(0) 推荐(0) 编辑

nefu117 - 素数个数的位数

摘要: 以前没注意到floor()返回的是double型的数据,素数定理的应用,,,代码如下:#include #include int main () { long long n; while(scanf("%lld",&n)==1) { double tt = log10(n)+log10(log(10.0)); printf("%.0lf\n",floor(n-tt)+1); } return 0; } 犯错代码:#include #include int main () { long long n; ... 阅读全文
posted @ 2013-04-30 13:47 Primo... 阅读(142) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页