状态设计的疑惑
查看原帖
状态设计的疑惑
527629
iqer楼主2021/10/22 17:37

就是我想问

理想状态设计不应该是静态的嘛

然后对于动态的选择求期望

比如这题 f[i][j][0]表示在第i门课程已经处理完成且前期选择进行了j次调整然后此刻他位于原来的教室要全部处理完还需要走的期望路程

f[i][j][1]表示在第i门课程已经处理完成且前期选择进行了j次调整然后此刻他位于后来的教室要全部处理完还需要走的期望路程

对于f[i][j][0]进行第i+1次课程的选择则有两种情况

1、直接不调整 转移至f[i + 1][j][0]

2、调整(未知)

2.1 k[i + 1]的概率至f[i + 1][j + 1][1] 2.2 (1 - k[i + 1])的概率至f[i + 1][j + 1][0]

f[i][j][1]同理

	for(int i = n - 1; i >= 1; --i){
		for(int j = min(i, m); j >= 0; --j){
			f[i][j][0] = mind(f[i][j][0], f[i + 1][j][0] + 1.0 * w[c[i]][c[i + 1]]);
			f[i][j][1] = mind(f[i][j][1], f[i + 1][j][0] + 1.0 * w[d[i]][c[i + 1]]);
			if(j < m)f[i][j][0] = mind(f[i][j][0], 1.0 * (1 - k[i + 1]) * (f[i + 1][j + 1][0] + 1.0 * w[c[i]][c[i + 1]]) + 1.0 * k[i + 1] * (f[i + 1][j + 1][1] + 1.0 * w[c[i]][d[i + 1]]));
			if(j < m)f[i][j][1] = mind(f[i][j][1], 1.0 * (1 - k[i + 1]) * (f[i + 1][j + 1][0] + 1.0 * w[d[i]][c[i + 1]]) + 1.0 * k[i + 1] * (f[i + 1][j + 1][1] + 1.0 * w[d[i]][d[i + 1]]));
		}
	}

感觉dp状态设计的没错呀 但是程序莫名挂了

请教一下 是否我的状态设计有什么问题 还是程序有什么问题

2021/10/22 17:37
加载中...