2章 循环赛日程表,递归
16
3章 独立任务最优调度,动态规划
17
3章 汽车加油行驶问题,动态规划
#include \#include \#include \#include \#define MIN(a,b) (a
18
FILE *input; //打开输入数据文件以及要写入的文件 if((input=fopen(\ {
printf(\ exit(1); }
FILE *output;
if ((output=fopen(\ {
printf(\ exit(1); }
int N,K,A,B,C; int i,j;
fscanf(input,\
int s[4][3]={-1,0,0,0,-1,0,1,0,B,0,1,B}; //定义来自每一个位置的状态 int **p;
p=(int **)malloc((N+1)*sizeof(int *)); //定义所有位置的加油站的状态 for (i=0;i<=N;i++) {
p[i]=(int *)malloc((N+1)*sizeof(int)); }
for (i=0;i<=N;i++) {
for (int j=0;j<=N;j++) {
p[i][j]=0; } }
for (i=1;i<=N;i++) //给每一个位置赋值 {
for (j=1;j<=N;j++) {
fscanf(input,\ cout<
cout< typedef struct //定义来自哪一个节点 { int x; 19 int y; }node; node **c; //申请来自哪一个节点的空间 c=(node **)malloc((N+1)*sizeof(node *)); for (i=0;i c[i]=(node *)malloc((N+1)*sizeof(node)); } int ***f; //三维数组,记录最小费用以及还能行驶的路程 f=(int ***)malloc((N+1)*sizeof(int **)); for (i=0;i f[i]=(int **)malloc((N+1)*sizeof(int **)); for (j=0;j f[i][j]=(int *)malloc(2*sizeof(int *)); } } int k; for (i=1;i<=N;i++) { for (j=1;j<=N;j++) { f[i][j][0]=100; // cout< // cout< for (i=1;i<=N;i++) { for (j=1;j<=N;j++) { f[i][j][1]=K; // cout< // cout< f[1][1][0]=0; f[1][1][1]=K; 20