HDU 5074 Hatsune Miku 2014 Asia AnShan Regional Contest dp(水
2017-07-10 21:22
483 查看
简单dp
#include <stdio.h> #include <cstring> #include <iostream> #include <map> using namespace std; typedef unsigned long long ull; const int N = 105; int n, m, a ; int s , dp[2] ; void pt(int x ){ for(int i = 1; i <= m; i++)printf("%d ", dp[x][i]); puts(""); } int solve(){ int cur = 0; if(a[1] < 0) memset(dp[cur], 0, sizeof dp[cur]); else { memset(dp[cur], -1, sizeof dp[cur]); dp[cur][a[1]] = 0; } for(int i = 2; i <= n; i++) { cur ^= 1; memset(dp[cur], -1, sizeof dp[cur]); if(a[i]>0) { for(int j = 1; j <= m; j++) if(dp[cur^1][j] != -1) dp[cur][a[i]] = max(dp[cur][a[i]], dp[cur^1][j] + s[j][a[i]]); } else { for(int j = 1; j <= m; j++) if(dp[cur^1][j]!=-1) for(int k = 1; k <= m; k++) dp[cur][k] = max(dp[cur][k], dp[cur^1][j]+s[j][k]); } // cout<<i<<":"; pt(cur); } int ans = 0; for(int i = 1; i <= m; i++) ans = max(ans, dp[cur][i]); return ans; } void input(){ cin>>n >> m; for(int i = 1; i <= m; i++) for(int j = 1; j <= m; j++) scanf("%d", &s[i][j]); for(int i = 1; i <= n; i++) scanf("%d", &a[i]); } int main(){ int T; cin>>T; while(T--){ input(); cout<<solve()<<endl; } return 0; } /* 9 3 3 1 1 5 5 1 100 1 5 1 -1 -1 -1 */
相关文章推荐
- dp --- 2014 Asia AnShan Regional Contest --- HDU 5074 Hatsune Miku
- HDU 5074 Hatsune Miku 2014 Asia AnShan Regional Contest dp(水
- dp --- 2014 Asia AnShan Regional Contest --- HDU 5074 Hatsune Miku
- hdu 5074 Hatsune Miku 2014 Asia AnShan Regional Contest
- [HDU 5079][2014 Asia AnShan Regional Contest]Square(DP套DP)
- HDU 5072 Coprime(2014 Asia AnShan Regional Contest C)
- 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!
- hdu5072 2014 Asia AnShan Regional Contest C Coprime
- HDU 5045 Contest 期望+状压dp 2014 ACM/ICPC Asia Regional Shanghai Online
- hdu 5045 - Contest(2014 ACM/ICPC Asia Regional Shanghai Online )概率dp
- HDU 5001 Walk 求从任意点出发任意走不经过某个点的概率 概率dp 2014 ACM/ICPC Asia Regional Anshan Online
- HDU 5000 Clone 规律+dp 2014 ACM/ICPC Asia Regional Anshan Online
- 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy
- HDU 5073 Galaxy 2014 Asia AnShan Regional Contest 规律题
- HDU - 5045 2014 ACM/ICPC Asia Regional Shanghai Online D - Contest (状压DP)
- hdu 5073 Galaxy 2014 Asia AnShan Regional Contest
- hdu 5045 Contest dp+状态压缩 2014 ACM/ICPC Asia Regional Shanghai Online
- HDU 5000 Clone(离散数学+DP)(2014 ACM/ICPC Asia Regional Anshan Online)
- HDU 5072 Coprime 2014 Asia AnShan Regional Contest 容斥
- 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!