活动安排-动态规划算法
来源:互联网 发布:电力拖动仿真软件 编辑:程序博客网 时间:2024/05/30 23:00
/* Time: 2015.7.20 启发:1.在多循环输入的过程中,需要注意重复用的变量需要初始化,如本题中的c数组 2.*/#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 100typedef struct arrangement{ int s; int f; int *previous; int *next ; int p_len; int n_len; arrangement() { previous = NULL; next = NULL; s = f = 0; p_len = n_len = 0; }}arrangement;int cmp(const void *a, const void *b){ arrangement *m = (arrangement *)a; arrangement *n = (arrangement *)b; return m->f - n->f;}arrangement arr[MAX + 1];int s_length = 0;static int c[MAX + 1][MAX + 1] = { 0 };static int arrange[MAX + 1] = { 0 };int have_arrangement(int b, int e){ int i, j, len; len = 0; for (i = b + 1; i < e; ++i) { if (arr[i].s >= arr[b].f && arr[i].f <= arr[e].s) arrange[len++] = i; } return len;}void dynamic(int begin, int end){ int i, j, k, m, max, len; max = -1; len = have_arrangement(begin, end); if(len > 0) { k = len; for(i = 0; i < k; ++i) { int tmp = c[begin][arrange[i]] + c[arrange[i]][end] + 1; if(max < tmp) max = tmp; } c[begin][end] = max; // arrange[] }}int main(){ int i, k; FILE *fp; fp = fopen("test.txt", "r"); if(fp == NULL) { fprintf(stderr, "%s", "wrong"); exit(1); } while (~fscanf(fp, "%d", &s_length)) { for (i = 1; i <= s_length; ++i) { fscanf(fp, "%d %d", &arr[i].s, &arr[i].f); arr[i].previous =new int[i - 1]; arr[i].next = new int[s_length - i]; } qsort(arr + 1, s_length, sizeof(arr[0]), cmp); arr[0].s = arr[0].f = 0; arr[s_length + 1].s = arr[s_length + 1].f = arr[s_length].f + 1; for (k = 2; k <= s_length + 1; ++k) { for (i = k - 1; i >= 0; --i) { dynamic(i, k); } } printf("==%d\n", c[0][s_length+1]); memset(c, 0, (sizeof(int)) * (MAX + 1) *(MAX + 1)); } fclose(fp); return 0;}
还需要2点完善
1.代码太乱,缺少结构
2.需要将最大可安排的活动给表示出来
ps:最近学了个画图的新方法,也打算融入到程序中
最近1天有时间给完善了,2015.7.21
0 0
- 活动安排-动态规划算法
- 活动安排问题的 动态规划和贪心算法
- 关于活动安排算法
- 贪心算法--活动安排
- 活动选择问题-动态规划/贪心算法
- [动态规划]任务安排
- 动态规划--项目安排
- 项目安排[动态规划]
- 动态规划算法——矩阵乘法的顺序安排
- 动态规划与贪心算法之课程安排问题
- 活动安排 贪心算法实现
- 贪心算法_活动安排
- 活动安排问题 贪心算法
- 贪心算法(活动安排)
- 活动安排问题(贪心算法)
- 算法学习之活动安排
- 活动安排_贪心算法
- 活动安排问题--贪心算法
- QT5学习
- 数次统计
- iOS开源项目 Cell滑动效果
- Web性能测试术语整理
- 极光推送学习笔记
- 活动安排-动态规划算法
- javascript中对变量类型的判断
- 报错,但不影响运行ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
- centos下sentinel主从监控配置
- 响应客户端请求(servlet与jsp)
- 缘语言 V1.1 发布!
- iOS9编程GOGOGO:XCode7新变化
- HashMap的实现原理
- 收藏网站