就写345问就行,有没有会写的啊,关于动态规划的.(这个提问要求30字实在没什么好写的、冲字数)
1条回答 默认 最新
- ksgpjhqf 2022-12-25 22:05关注
i从1到n遍历,求出每个r[i]。求r[i]的方法是j从1到i-1遍历,求出最大的r[i-j]+r[j],再将最大的r[i-j]+r[j]与p[i]比较,较大的一个就是r[i],若p[i]较大,则将s[i]赋值i,否则赋值j。输出最优解就是输出s[i],再把i赋值为i-s[i],两个过程循环,直到i与s[i]相等。
外层循环次数为n,内层循环次数为1+2+3+……+n-1,总体时间复杂度为O(n*n)
c代码:
#include<stdio.h> int main() { int p[11] = {0, 1, 5, 8, 9, 10, 17, 17, 20, 24, 30}, r[11], s[11], n = 10; int i, j; //求r[i]和s[i] i = 1; while (i <= n) { r[i] = p[i]; j = 1; s[i] = i; while (j < i) { if (r[j] + r[i - j] >r[i]) { r[i] = r[j] + r[i - j]; s[i] = j; } j++; } i++; } //输出最优解 printf("请输入长度: "); scanf("%d", &i); while (i != s[i]) { printf("%d ", s[i]); i = i-s[i]; } printf("%d",s[i]); return 0; }
执行结果(为了方便显示,我临时套了个死循环):
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 有谁能看看我coe文件到底哪儿有问题吗?
- ¥20 我的这个coe文件到底哪儿出问题了
- ¥15 matlab使用自定义函数时一直报错输入参数过多
- ¥15 设计一个温度闭环控制系统
- ¥100 rtmpose姿态评估
- ¥15 java 通过反射找路径下的类,打包后就找不到
- ¥15 通联支付网上收银统一下单接口
- ¥15 angular有偿编写,
- ¥15 centos7系统下abinit安装时make出错
- ¥15 hbuildex运行微信小程序报错