题目要求都在图片里,要求用C++。谢谢
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
threenewbee 2019-10-20 07:53最佳回答 专家已采纳#include <stdlib.h> #include <string.h> #include <iostream> using namespace std; int* initdkntor(int n, int * brokens, int m) { int * p = (int *)malloc(sizeof(int) * n); memset(p, 0, sizeof(int) * n); for (int i = 0; i < m; i++) { for (int j = brokens[i * 2] - 1; j < brokens[i * 2 + 1]; j++) p[j] = 1; } return p; } int* tryit(int *seed, int n, int a, int b) { int * p = (int *)malloc(sizeof(int) * n); memcpy(p, seed, sizeof(int) * n); for (int i = a - 1; i < b; i++) p[i] = 0; return p; } int check(int *p, int n) { for (int i = 0; i < n; i++) if (p[i]) return 1; return 0; } int solve(int *seed, int seedcost, int n, int *sp, int spn) { if (!check(seed, n)) return seedcost; if (!spn) return -1; int min = -1; for (int i = 0; i < spn; i++) { int * seed1 = tryit(seed, n, sp[i*3], sp[i*3+1]); int cost = solve(seed1, seedcost + sp[i*3+2], n, sp + 3 * (i+1), spn - i-1); if (cost != -1) if (cost < min || min == -1) min = cost; } return min; } int main() { int s; int n; int m; cin >> n >> m >> s; int * bk = new int[n * 2]; for (int i = 0; i < n; i++) cin >> bk[i*2] >> bk[i*2+1]; int * sp = new int[m * 3]; for (int i = 0; i < m; i++) cin >> sp[i*3] >> sp[i*3+1] >> sp[i*3+2]; int * dkntor = initdkntor(s, bk, n); int result = solve(dkntor, 0, s, sp, m); cout << result << endl; return 0; }
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(1条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2019-10-19 13:11回答 2 已采纳 ``` #include #include #include using namespace std; int* initdkntor(int n, int * brokens
- 2019-10-19 15:03回答 2 已采纳 代码: ``` #include "stdafx.h" #include #include using namespace std; int main() { while
- 2019-10-19 11:48回答 2 已采纳 ``` #include #include using namespace std; int* addtown(int * seed, int x, int* path, int
- 2021-10-29 13:13回答 1 已采纳 #include <stdio.h> int main() { char ch,ch1,ch2; scanf("%c",&ch); ch1=ch-1; ch
- 2013-12-12 18:26回答 3 已采纳 最简单就是第一遍照着敲代码,第二遍尽量把能改的东西全都改一遍,比如包名,类名,方法名,配置名,路径名,这时会遇到很多问题,甚至无法执行,你就知道这些东西是怎么连接到一起的,然后再类比该功能,比如示例是
- 2022-03-16 11:31回答 4 已采纳 birthsame中判断同一天的逻辑不对,因为是求至少两人同一天生日,所以最好求没有相同生日的概率,用100减去这个概率就是要求的结果。而且,x[]中存储的是35给人的生日所在的天,应该用双层for循
- 2010-11-26 09:04回答 2 已采纳 因人而异 不同情况不同对待
- 2010-08-22 21:42回答 4 已采纳 赔钱可能是吓你的,不希望你学到他们东西后就走人了, 一个大公司部会为你一个小小的职位而浪费精力了, 他的主要目的还是在项目之上了,对日企业不一定会出国到日本去的, 大连的软件公司平均
- 2013-02-26 11:45回答 7 已采纳 听你这意思应该是要外包你出去,如果你不好找工作就去吧,如果能找到稍微好一点点的工作,哪怕工资低点都别去。 一个老程序员对你的建议 :D :D
- 没有解决我的问题, 去提问