〔题目〕有如下四类人群:
第一类,一群18岁小学生,每个兜里揣着100元人民币;
第二类,一群22岁大学生,他们每人有220元零钱;
第三类,一群45岁中年大叔,各自有480元零钱;
第四类,一群79岁老年人,他们都有790元人民币;
川建国是个富二代,家大业大的败家子,现在他想在这四类人中抽取若干位参加烧钱晚会,要求抽取的这些人年龄总和不得超过500岁,且被抽取的人携带的人民币总量越大越好。如果是你,你会如何抽取?
这是典型的动态规划问题
设f[n][m]表示在第一类到第n类人中,年龄总和不超过m时所能携带的人民币最多时的值,
如f[4][500]表示,从第一类人到第四类人中,年龄综合不超过500时携带人民币总量的最大值。这也正好是题目要求。
则有:
f[4][500]=max(f[3][500],f[3][500-第四类人的年龄]+第四类人的钱),这便是状态转移方程
对于边界问题,即第一类人可以先初始化好。
(ฅ•﹏•ฅ)这便是用程序语言解题的思路。