UVA 1025 DP
2015-05-13 23:54
183 查看
//uva 1025 过了 #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<string.h> #include<algorithm> #include<queue> #define inf 0x3f3f3f #define maxn 60 #define maxt 220 using namespace std; int ca; int dp[maxt][maxn]; int n,T; bool havel[maxn][maxt],haver[maxn][maxt]; int ans[maxn]; int t[maxn]; void solve() { for(int i=1;i<=n;i++) dp[T][i]=inf; dp[T] =0; // cout<<dp[0][1]<<" mi "<<endl; for(int i=T-1;i>=0;i--) for(int j=1;j<=n;j++) { dp[i][j]=dp[i+1][j]+1; // cout<<i<<" "<<j<<" "<<dp[i][j]<<endl; if(havel[j][i] && j<n && i+t[j]<=T) dp[i][j]=min(dp[i][j],dp[i+t[j]][j+1]); if(haver[j][i] && j>1 && i+t[j-1]<=T) dp[i][j]=min(dp[i][j],dp[i+t[j-1]][j-1]); } cout<<"Case Number "<<ca<<": "; if(dp[0][1]>=inf) cout<<"impossible"<<endl; else cout<<dp[0][1]<<endl; // cout<<inf<<" inf "<<endl; } int sl[maxn],sr[maxn]; int main()//时间处理不仅仅是到站 { ans[1]=0; //freopen("input.txt","r",stdin); int lm,rm; ca=0; while(scanf("%d",&n)!=EOF) { ca++; ans[1]=0; memset(havel,false,sizeof(havel)); memset(haver,false,sizeof(haver)); if(n==0 ) break; scanf("%d",&T); for(int i=1;i<=n-1;i++) scanf("%d",&t[i]),ans[i+1]=ans[i]+t[i]; //for(int i=1;i<=n;i++) //cout<<ans[i]<<" timr " <<endl; scanf("%d",&lm); for(int i=1;i<=lm;i++) { scanf("%d",&sl[i]); for(int j=1;j<=n;j++) havel[j][ans[j]+sl[i]]=true; // cout<<j<<" "<<ans[j]+sl[i]<<" l "<<endl; } scanf("%d",&rm); for(int i=1;i<=rm;i++) { scanf("%d",&sr[i]); for(int j=1;j<=n;j++) haver[j][sr[i]+ans -ans[j]]=true; // cout<<j<<" "<<sr[i]+ans -ans[j]<<" r"<<endl; } solve(); } }
相关文章推荐
- UVa 1025 A Spy in the Metro (dp)
- UVA 1025 A Spy in the Metro 城市里的间谍(DP)
- UVA 1025 A Spy in the Metro DP
- uva1025 dp
- A Spy in the Metro UVA 1025 DP
- A Spy in the Metro - UVa 1025 dp
- A Spy in the Metro UVA 1025 DP
- UVA 1025 A Spy in the Metro(DP)
- DP--UVA - 1025 A Spy in the Metro
- UVa 1025 - A Spy in the Metro [DP]
- uva 1025 A Spy in the Metro (DP)
- UVA_1025 A Spy in the Metro(dp)
- UVA 1025 A Spy in the Metro - 简单dp
- UVA 1025 A Spy in the Metro (简单DP)
- UVa 1025 - A Spy in the Metro [DP]
- UVa 1025 - A Spy in the Metro(DP)
- UVA 1025 A Spy in the Metro(DP)
- UVa 1025 A Spy in the Metro(DP)
- UVA 1025 A Spy in the Metro (DP)
- A Spy in the Metro(Uva1025,2003WorldFinal)(DP)