📄 zp1425_p.cpp
字号:
#include <iostream.h>#define MAXNUM 1000int x[MAXNUM], y[MAXNUM];int table[MAXNUM][MAXNUM];int nx, ny;void Input(){ cin >> nx >> ny; int i; for (i = 1; i <= nx; ++i) cin >> x[i]; for (i = 1; i <= ny; ++i) cin >> y[i];}void Matching(){ int i, j, m, n; for (i = 0; i <= nx; ++i) table[i][0] = table[i][1] = 0; for (j = 0; j <= ny; ++j) table[0][j] = table[1][j] = 0; for (i = 2; i <= nx; ++i) for (j = 2; j <= ny; ++j) { int maxnum = 0; maxnum = table[i-1][j]>table[i][j-1]?table[i-1][j]:table[i][j-1]; for (m = i-1; m >0; --m) for (n = j-1; n >0; --n) { if(x[m] == y[j] && y[n] == x[i] && x[i] != y[j]) if(maxnum < table[m-1][n-1] + 2) maxnum = table[m-1][n-1] + 2; } table[i][j] = maxnum; }}int main(){ int test; cin >> test; while(test--) { Input(); Matching(); cout << table[nx][ny] << endl; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -