好吧,做例题总是这样,莫名其妙的WA,然后莫名其妙的AC。。。
关键的部分紫书上已经说得很清楚了,剩下的就是确定has_train这个数组,我觉得确定这个数组也不是难事吧。。把数据范围看清楚,然后看看有没有什么写错了的小地方,注意一下就就好。
还有一件事情就是,我这里的维度和紫书上是反的,我是依靠自己的感觉来写的,用第一维比表示车站,第二维表示时间,特此注明一下。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,T,ca=1,dp[55][220],m1,m2,m1_arr[55],m2_arr[55],t[55];
bool has_train[55][220][2];
int main(){
while(scanf("%d",&n)&&n){
scanf("%d",&T);
for(int i=1;i<n;++i)scanf("%d",&t[i]);
scanf("%d",&m1);
for(int i=1;i<=m1;++i){
scanf("%d",&m1_arr[i]);
if(m1_arr[i]<=T)
has_train[1][m1_arr[i]][0]=true;
for(int j=1,add=