摘要:
为了解决谷歌一道题,想了个非主流的招数。原题是:“10块都相同的糖分给3个小朋友,每个小朋友至少分到一块糖,有几种分配方式?”,细细一想其实就是每个小朋友一块糖的前提下,再分7块糖,就是把7块糖分给3个小朋友的种类数,也就是这个二维数组中DP[2][6]的取值。 这题完全可以用排列组合来做,穷举各种可能性后乘以组合数,答案是36。 用动态规划的思路比较奇特。。总感觉发现了什么奥秘,却又阐释不清楚,大概说一说吧: 拿3块糖分给3个小朋友这个问题作为分析例子: 1、选择一个小朋友不给他糖(怪蜀黍都这么干!),然后把剩下的3块糖分给其他2个小朋友(一共有4种方式) 2、回顾一下,之前算... 阅读全文
摘要:
class TestChild{public: TestChild() { x=0; y=0; printf("TestChild: Constructor be called!\n"); } ~TestChild(){} TestChild(const TestChild& tc) { x=tc.x; y=tc.y; printf("TestChild: Copy Constructor called!//因为写在了Test(拷贝)构造函数的初始化列表里\n"); }... 阅读全文