摘要:
Piggy-BankTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5598Accepted Submission(s): 2796Problem ... 阅读全文
posted @ 2012-08-22 20:55
加拿大小哥哥
阅读(689)
评论(0)
推荐(0)
摘要:
大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起第二位是 1 的瓶子,等等。一星期后,如果第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;如果第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ⋯⋯每只老鼠的死活都能确定 阅读全文
posted @ 2012-08-22 20:22
加拿大小哥哥
阅读(520)
评论(0)
推荐(0)
摘要:
正多边形的滚动与旋轮线下方的面积想像一个圆盘在地面上滚动一周,那么圆周上一点所形成的轨迹就叫做旋轮线(或者摆线)。旋轮线下方的面积是多少,这是一个非常有趣的问题。据说, Galileo 曾经用一种非常流氓的方法,推测出了旋轮线下方的面积。他在金属板上切出一块圆片,再在金属板边缘剪下这个圆形所对应的旋轮线,把它们拿到秤上一称,发现后者的重量正好是前者的三倍。于是,他推测,半径为 r 的滚轮所产生的旋轮线,其下方的面积就是 3πr2。不过,今天我第一次知道,这个结论对于正多边形是同样成立的。考虑一个正三角形在平地上滚动一周,则原来的顶点 A1 将会先后转到 A2 和 A3 的位置。容易看出, A1 阅读全文
posted @ 2012-08-22 20:00
加拿大小哥哥
阅读(520)
评论(0)
推荐(0)
摘要:
你是否很小就注意到了下面这两个有趣的算术现象?这两个简单的算术谜题是否一直都困扰着你?今天,大家终于有机会解开谜团了。问题一: 2 加 2 等于 4 , 2 乘 2 也等于 4 。还有其它的整数对,它们的和与积也相等吗?我们要求的就是 mn = m+n 的整数解。方程可以变为mn - m - n + 1 = 1也就是(m - 1)(n - 1) = 1由于 m 、 n 都是整数,因此 m - 1 和 n - 1 也都是整数。两个整数之积为 1 ,只有两种情况——这两个数都是 1,或者这两个数都是 -1 。前者对应了 m = 2, n = 2 ,后者解出来则是 m = 0, n = 0 。如果把 阅读全文
posted @ 2012-08-22 19:53
加拿大小哥哥
阅读(305)
评论(0)
推荐(1)
摘要:
数列 1, 1, 2, 3, 5, 8, 13, 21, 34, … 叫做 Fibonacci 数列。这个数列有很多神奇的性质,其中一个性质是,每一个 Fibonacci 数的平方与它前后两个 Fibonacci 数的乘积一定正好相差 1 。具体地说,如果把第 n 个 Fibonacci 数记做 Fn,那么有:Fn+1 · Fn+1 - Fn · Fn+2 = (-1)nFibonacci 数有很多组合数学上的意义。比如说,用 1 × 1 和 1 × 2 的积木覆盖一个 1 × n 的棋盘,总的方案数恰好是 Fn+1 。给出一个长度为 n 的棋 阅读全文
posted @ 2012-08-22 19:23
加拿大小哥哥
阅读(208)
评论(0)
推荐(1)
摘要:
1 //最优策略应该是2,0,3,1,现在 只会求最大效益 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 using namespace std; 6 int ans[5];//保存最优策略 ,一维向量 7 int g[5][8] = {//投资0到6w时,各个工厂获得的效益 8 {0,20,50,65,80,85,85}, 9 {0,20,40,50,55,60,65},10 {0,25,60,85,10... 阅读全文
posted @ 2012-08-22 17:41
加拿大小哥哥
阅读(299)
评论(0)
推荐(0)
摘要:
K尾相等数时间限制:3000 ms | 内存限制:65535 KB难度:1描述输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N均大于等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。下面请编程求出M+N最小的K尾相等数。输入第一行包含一个正整数T,T<10000,表示有T组数据;随后有N行,每行包括一个整数K(K<2*10^10);输出对于输入的每个整数K,输出对应的M+N的最小值;样例输入12样例输出120 1 2 #include <stdio.h> 3 #include <string.h> 阅读全文
posted @ 2012-08-22 12:07
加拿大小哥哥
阅读(209)
评论(0)
推荐(0)
摘要:
Bone CollectorTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14134Accepted Submission(s): 5585Pro... 阅读全文
posted @ 2012-08-22 10:37
加拿大小哥哥
阅读(249)
评论(0)
推荐(0)