这题怎么做!求大神帮忙看一下

 源程序文件名:selectm.cpp 读入 n (<=100)个不同正整数(<=105)如何选出 k(<=100)个整数,使得他们的和是 m(<=107)。 列出多少种可能。 输入格式: 输入文件名为 selectm.in。第一行 3 个正整数,分别是 n,k,m,第二行为 n 个不同的正 整数,空格分割。 输出格式: 输出文件名为 selectm.out。一行,一个整数,表示有多少可能。 输入样例:
5  3  7
5 2 3 4 1
输出样例: 1 样例说明: 5 个数字,和是 7,输出有几种可能使得选出的 3 个数字和是 7,这里输出 1,因为选择 3 个数字,只有 2+4+1=7。

输入样例 2:
10  4  20
9 8 7 10 2 1 4 5 12 20
输出样例 2:
6

全部评论
先对数组排序 外层循环遍历数组所有元素i从0到n-1 dp[j][k]代表前在i个元素中j个数字组成和为k的方案数 稍微剪枝一下
1 回复 分享
发布于 2020-06-14 11:28
发一下程序行吗?
点赞 回复 分享
发布于 2020-06-14 12:29

相关推荐

迷茫的大四🐶:都收获五个了,兄弟那还说啥,不用改了,去玩吧
点赞 评论 收藏
分享
09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务