当前位置:   article > 正文

各种动态规划算法的C语言_c语言动态规划

c语言动态规划

以下是常见的几种动态规划算法的C语言实例:

  1. 01背包问题
  1. #include<stdio.h>
  2. #define max_n 1010
  3. int n, W, w[max_n], v[max_n], dp[max_n][max_n];
  4. int max(int a, int b) {return a > b ? a : b;}
  5. void ZeroOnePack(int i) {
  6. for(int j = 0; j <= W; ++j) {
  7. if(j < w[i]) {
  8. dp[i][j] = dp[i-1][j];
  9. }else {
  10. dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i]);
  11. }
  12. }
  13. }
  14. int main() {
  15. scanf("%d%d", &n, &W);
  16. for(int i = 1 ;i <= n; ++i) {
  17. scanf("%d%d", &w[i], &v[i]);
  18. }
  19. for(int i = 1; i <= n; ++i) {
  20. ZeroOnePack(i);
  21. }
  22. printf("%d", dp[n][W]);
  23. return 0;
  24. }
  1. 完全背包问题
  1. #include<stdio.h>
  2. #define max_n 1010
  3. int n, W, w[max_n], v[max_n], dp[max_n];
  4. int max(int a, int b) {return a > b ? a : b;}
  5. void CompletePack(int i) {
  6. for(int j =
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/87230
推荐阅读
相关标签
  

闽ICP备14008679号