UVA 1632 Alibaba——dp
2018-03-03 13:11
363 查看
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 10005; const int INF = 0x3f3f3f3f; int n, a[maxn], b[maxn], dp[2][maxn][2]; int main() { while (~scanf("%d", &n)) { for (int i = 1; i <= n; i++) scanf("%d %d", &a[i], &b[i]); memset(dp, INF, sizeof(dp)); for (int i = 1; i <= n; i++) dp[0][i][0] = dp[0][i][1] = 0; for (int i = 2; i <= n; i++) { for (int j = 1; j <= n - i + 1; j++) { dp[!(i&1)][j][0] = min(dp[!((i-1)&1)][j+1][0]+a[j+1]-a[j], dp[!((i-1)&1)][j+1][1]+a[j+i-1]-a[j]); dp[!(i&1)][j][1] = min(dp[!((i-1)&1)][j][0]+a[j+i-1]-a[j], dp[!((i-1)&1)][j][1]+a[j+i-1]-a[j+i-2]); if (dp[!(i&1)][j][0] >= b[j]) dp[!(i&1)][j][0] = INF; if (dp[!(i&1)][j][1] >= b[j+i-1]) dp[!(i&1)][j][1] = INF; } } int ans = min(dp[!(n&1)][1][0], dp[!(n&1)][1][1]); if (ans >= INF) printf("No solution\n"); else printf("%d\n", ans); } return 0; } #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<queue> #include<cstdlib> #include<algorithm> #include<stack> #include<map> #include<queue> #include<vector> using namespace std; const int maxn = 1e4+10; const int INF = 0x3f3f3f3f; int p[maxn],t[maxn],dp[2][maxn][2],n,ans; int main(){ while(cin>>n){ for(int i=1;i<=n;i++) cin>>p[i]>>t[i]; for(int i=1;i<=n;i++) dp[0][i][0]=dp[0][i][1]=0; int x,nx=0; for(int i=1;i<n;i++){ x=nx;nx^=1; for(int j=1;j<=n-i;j++){ //0->left 1->right dp[nx][j][0]=min(dp[x][j+1][0]+p[j+1]-p[j],dp[x][j+1][1]+p[j+i]-p[j]); dp[nx][j][1]=min(dp[x][j][0]+p[j+i]-p[j],dp[x][j][1]+p[i+j]-p[i+j-1]); if(dp[nx][j][0]>=t[j]) dp[nx][j][0] = INF; if(dp[nx][j][1]>=t[i+j]) dp[nx][j][1] = INF; } } ans = min(dp[nx][1][0],dp[nx][1][1]); if(ans>=INF) cout<<"No solution\n"; else cout<<ans<<"\n"; } return 0; }
相关文章推荐
- UVA 1632-Alibaba(DP)
- UVA 1632 Alibaba(区间dp)
- [UVA 1632]Alibaba[区间DP]
- UVA - 1632 Alibaba 区间DP
- Alibaba - UVa 1632 dp
- UVA - 1632 Alibaba 区间dp
- UVa 1632 Alibaba (区间dp)
- Alibaba UVA - 1632(区间dp+滚动数组)
- Uva 1632 alibaba 区间dp
- UVA-1632 Alibaba (区间DP)
- UVA-1632 Alibaba (区间DP+滚动数组)
- UVA 1632(p306)----Alibaba
- uva1632Alibaba
- uva 1632——Alibaba
- UVA 1632 Alibaba
- Uva-1632 Alibaba(贪心)
- 1632 - Alibaba(DP)
- UVA 1632 区间DP
- Alibaba UVa 1632
- UVa 1632 Alibaba