UVA - 10066 - The Twin Towers (动态规划, LCS)
2014-03-10 08:53
423 查看
点击打开链接
题意:给出两个塔的石头半径的序列,求最长雙子星塔的高度。即:给出两个序列,求最长公共子序列。
题意:给出两个塔的石头半径的序列,求最长雙子星塔的高度。即:给出两个序列,求最长公共子序列。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAX_N = 101, MAX_M = 11, INF = 0x3f3f3f3f; int N1, N2; int a[MAX_N], b[MAX_N], d[MAX_N][MAX_N]; int LCS(int a[], int b[]) { memset(d, 0, sizeof(d)); for(int i = 0; i < N1; i++) for(int j = 0; j < N2; j++) if(a[i] == b[j]) d[i+1][j+1] = d[i][j] + 1; else d[i+1][j+1] = max(d[i][j+1], d[i+1][j]); return d[N1][N2]; } int main() { //freopen("in.txt", "r", stdin); int t = 1; while(scanf("%d%d", &N1, &N2), N1+N2) { for(int i = 0; i < N1; i++) scanf("%d", a+i); for(int i = 0; i < N2; i++) scanf("%d", b+i); printf("Twin Towers #%d\n", t++); printf("Number of Tiles : %d\n\n", LCS(a, b)); } return 0; }
相关文章推荐
- 【解题报告】uva10066_The Twin Towers(双塔, dp, LCS)
- UVA 10066 The Twin Towers LCS ,Commencel
- UVa 10066 - The Twin Towers(LCS水题)
- UVa 10066 - The Twin Towers(LCS水题)
- UVA - 10066 The Twin Towers(LCS最长公共子序列)
- UVA 10066 The Twin Towers 双塔 LCS,dp
- UVa 10192 - Vacation & UVa 10066 The Twin Towers ( LCS 最长公共子串)
- [动态规划]UVA10066 - The Twin Towers
- uva 10066 The Twin Towers(动态规划:LCS)
- UVa 10192 - Vacation & UVa 10066 The Twin Towers ( LCS 最长公共子串)
- UVA 10066 The Twin Towers (LCS)
- uva 10066 - The Twin Towers(LCS)
- uva10066 - The Twin Towers(dp,lcs)
- UVA 10066 The Twin Towers(LCS)
- uva10066 - The Twin Towers(LCS)
- uva 10066 The Twin Towers (最长公共子序列)
- uva 10066 The Twin Towers (最长公共子)
- nullnullUVa 10066 - The Twin Towers(LCS水题)
- The Twin Towers - UVa 10066 最长公共子序列
- UVA - 10066 The Twin Towers(dp+最大公共子序列)