摘要:
2014-03-20 01:57题目:玩篮球投篮,有两种玩法:要么1投1中,要么3投两中。你单次投篮中的概率是p,那么对于不同的p,哪种玩法胜率更高?解法:第一种总是胜率更高,可以列不等式算算,结果发现是个恒不等式。代码: 1 // 7.1 Suppose you're playing a basketball game, you have two choices: 2 // A: one shot one hit 3 // B: three shots two hits 4 // For what probability of p would you choose A or B. 5 阅读全文
摘要:
2014-03-20 01:14题目:有100栈灯,一开始都关着。如果你按照n从1~100的顺序,每次都掰一下n的倍数的开关(开->关,关->开),那么到最后有多少灯是亮的?解法:这个题目要多想想再动手,因为想通了以后就基本不用动手了。对于编号为x的灯,每当i是x的约数时,在第i轮时第x号灯就被掰了一次。比如6的约数为{1,2,3,6},6号灯被掰了4次。那么,每个灯被掰的次数就是约数个数次。约数个数的公式你懂的,但是用不着去算。如果一盏灯是开的,那么它就被掰了奇数次,根据约数和公式,只有因数分解之后所有指数都是偶数的时候,约数个数才为奇数。比如36的约数{1,2,3,4,6,9, 阅读全文
摘要:
2014-03-20 01:08题目:扔鸡蛋问题。有一个鸡蛋,如果从N楼扔下去恰好会摔碎,低于N楼则不碎,可以继续扔。给你两个这样的鸡蛋,要求你一定得求出N,怎么扔才能减少最坏情况下的扔的次数?解法:为了让worst case得到最优化,就需要让best case和worst case最接近。具体做法请参见书上题解,因为我一直在想着二分,实在是摸不着头脑。代码: 1 // 6.5 Given 100 floors and 2 eggs. 2 // If the egg can sustain a dropping from nth floor, and will break for highe 阅读全文
摘要:
2014-03-20 01:02题目:无力描述的一道智力题,真是货真价实的智力题,让我充分怀疑自己智力的智力题。有兴趣的还是看书去吧。解法:能把题目看懂,你就完成80%了,用反证法吧。代码: 1 // 6.4 There is an island with a bunch of people living there. 2 // The strange thing is, any blue-eyed tourists must leave immediately when they find out they're blue-eyed. 3 // Everyone can see ot 阅读全文
摘要:
2014-03-20 00:48题目:有3升的瓶子和5升的瓶子,只允许倒满、倒到满为止、或是泼光三种操作,怎么搞出4升水呢?解法:如果A和B是互质的两个正整数,且A 5 using namespace std; 6 7 int gcd(int x, int y) 8 { 9 return x == 0 ? y : gcd(y % x, x);10 }11 12 int main()13 {14 int x, y;15 int vx, vy;16 int v;17 18 while (scanf("%d%d%d", &x, &y, &v) == ... 阅读全文