亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

poj1692 Crossed Matchings(dp,最長公共子序列變形,好題)

2019-11-14 13:06:17
字體:
來源:轉載
供稿:網友

Crossed Matchings
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 2838 Accepted: 1840

Description

There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the first row and the other one is located in the second row. We call this line segment an r-matching segment. The following figure shows a 3-matching and a 2-matching segment. 
We want to find the maximum number of matching segments possible to draw for the given input, such that: 1. Each a-matching segment should cross exactly one b-matching segment, where a != b . 2. No two matching segments can be drawn from a number. For example, the following matchings are not allowed. 
Write a PRogram to compute the maximum number of matching segments for the input data. Note that this number is always even.

Input

The first line of the input is the number M, which is the number of test cases (1 <= M <= 10). Each test case has three lines. The first line contains N1 and N2, the number of integers on the first and the second row respectively. The next line contains N1 integers which are the numbers on the first row. The third line contains N2 integers which are the numbers on the second row. All numbers are positive integers less than 100.

Output

Output should have one separate line for each test case. The maximum number of matching segments for each test case should be written in one separate line.

Sample Input

36 61 3 1 3 1 33 1 3 1 3 14 41 1 3 3 1 1 3 3 12 111 2 3 3 2 4 1 5 1 3 5 103 1 2 3 2 4 12 1 5 5 3 

Sample Output

608

Source

Tehran 1999

參考博客鏈接

題意:

給出兩行數,求上下匹配的最多組數是多少。匹配規則1.匹配對的數字必須相同2.每個匹配必須有且只能有一個匹配與之相交叉,且相交叉的兩組匹配數字必須不同3.一個數最多只能匹配一次

題解:

一開始我以為是個二分匹配的題目,后來想了好久不知道怎么處理第二個條件。

這題其實是動態規劃題。分析:用dp[i][j]表示第一行取i個數,第二行取j個數字的最多匹配項對于某個dp[i][j]:1.不匹配第一行i個,或不匹配第二行第j個:dp[i][j]=Max(dp[i-1][j],dp[i][j-1])2.如果a[i]==b[j],不產生新匹配,匹配結果為1的值3.若a[i]!=b[j]:a.則第一行從i往前掃,直到掃到第一個a[k1]==b[j](k1 b.同理,第二行從j往前掃,直到掃到第一個b[k2]==a[i](k2 若找不到這樣的k1,k2則不能才產生新匹配,跳過若存在這樣的k1,k2,此時匹配(a[i],b[k2])、(a[k1],b[j])匹配,才生新的匹配情形,匹配數量為:dp[k1-1][k2-1]+2。

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<queue>#include<stack>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define fi first#define se secondtypedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const int inf=0x3fffffff;const ll mod=1000000007;const int maxn=100+10;int n,m;int a[maxn],b[maxn];int d[maxn][maxn];int main(){    int cas;    scanf("%d",&cas);    while(cas--)    {        scanf("%d%d",&n,&m);        rep(i,1,n+1) scanf("%d",&a[i]);        rep(i,1,m+1) scanf("%d",&b[i]);        memset(d,0,sizeof(d));        rep(i,2,n+1) rep(j,2,m+1)        {            d[i][j]=max(d[i][j-1],d[i-1][j]);            if(a[i]==b[j]) continue;            else            {                int p1=0,p2=0;                for(int k=i-1;k>0;k--)                {                    if(a[k]==b[j])                    {                        p1=k;                        break;                    }                }                for(int l=j-1;l>0;l--)                {                    if(b[l]==a[i])                    {                        p2=l;                        break;                    }                }                if(p1&&p2) d[i][j]=max(d[i][j],d[p1-1][p2-1]+2);            }        }        printf("%d/n",d[n][m]);    }        return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色777狠狠综合秋免鲁丝| 亚洲iv一区二区三区| 日韩美女中文字幕| 疯狂做受xxxx高潮欧美日本| 国产精品久久久久免费a∨大胸| 久久久女人电视剧免费播放下载| 国产91对白在线播放| 日韩av不卡电影| 亚洲欧美日韩一区二区在线| 国产精品一区二区3区| 国产精品aaa| 国产香蕉精品视频一区二区三区| 亚洲毛片在线看| 91色琪琪电影亚洲精品久久| 久久久天堂国产精品女人| 国产日韩精品一区二区| 欧美精品激情视频| 中文字幕在线观看日韩| 亚洲国产精品99久久| 成人a免费视频| 欧美日韩午夜视频在线观看| 91亚洲精华国产精华| 日韩性xxxx爱| 91精品国产91久久久久久吃药| 国产精品福利小视频| www.美女亚洲精品| 精品偷拍各种wc美女嘘嘘| 国产成人精品久久久| 国产精品无码专区在线观看| 久久亚洲欧美日韩精品专区| 日本高清视频一区| 欧美日本在线视频中文字字幕| 日韩极品精品视频免费观看| 91大神在线播放精品| 成人福利在线观看| 国产欧美在线观看| 岛国视频午夜一区免费在线观看| 国产精品中文在线| 欧美理论电影网| 亚洲国内精品在线| 欧美中文字幕第一页| 久久综合亚洲社区| 国产999精品久久久| 日韩亚洲欧美中文在线| 国产综合视频在线观看| 欧美理论在线观看| 国产视频综合在线| 久久久午夜视频| 日韩美女视频免费看| 亚洲福利视频久久| 亚洲最大av网| 懂色av影视一区二区三区| 成人a视频在线观看| 国产精品久久久91| 91日韩在线播放| 97碰碰碰免费色视频| 精品一区电影国产| 国产精品久久99久久| 国产精品美女主播| 国产丝袜一区二区三区| 亚洲福利在线观看| 日韩av成人在线观看| 91美女片黄在线观看游戏| 日韩电影大全免费观看2023年上| 成人黄色免费网站在线观看| 97免费中文视频在线观看| 国产福利精品在线| 正在播放亚洲1区| 欧美日韩国产激情| 欧美精品性视频| 欧美亚州一区二区三区| 深夜福利一区二区| 欧美精品一区二区免费| 欧美国产视频日韩| 国产一区二区视频在线观看| 色妞欧美日韩在线| 日韩欧美国产一区二区| 午夜精品久久久久久久久久久久| 成人精品一区二区三区电影黑人| 国产热re99久久6国产精品| 亚洲男人的天堂网站| 日本亚洲欧洲色α| 欧美性xxxx极品高清hd直播| 欧美裸体xxxx极品少妇软件| 97精品国产97久久久久久| 国产一区二中文字幕在线看| 国产一区二区三区在线| 精品国产一区二区三区久久狼5月| 亚洲精品资源美女情侣酒店| 国产视频丨精品|在线观看| 欧美成人精品不卡视频在线观看| 亚洲天堂网站在线观看视频| 欧美精品福利视频| 国产97在线|亚洲| 中文字幕国产精品久久| 欧美激情第99页| 一区二区三区动漫| 国产精品福利久久久| 91日韩在线视频| 欧美日韩亚洲91| 久久精品国产亚洲一区二区| 日韩精品中文字幕久久臀| 国产成人精品av在线| 97香蕉久久超级碰碰高清版| 欧美裸体xxxxx| 国产精品久久久久不卡| 亚洲大胆人体视频| 久久久久久美女| 亚洲免费av网址| 91热精品视频| 91国产美女在线观看| 久久久女人电视剧免费播放下载| 日韩在线观看免费av| 欧美午夜视频一区二区| 欧美日韩性视频| 欧美成人亚洲成人| 精品国产网站地址| 亚洲在线免费观看| www.欧美免费| 伊人久久免费视频| 精品久久中文字幕| 亚洲一区二区少妇| 国产成人一区二区在线| 国产一区二区日韩精品欧美精品| 亚洲男子天堂网| 午夜精品久久久久久久99热浪潮| 久久久999精品视频| 欧美老少做受xxxx高潮| 日韩在线免费视频观看| 欧美日韩国产成人| 亚洲人成五月天| 久久久精品999| 久久精品91久久香蕉加勒比| 日韩激情av在线免费观看| 亚洲999一在线观看www| 日本午夜人人精品| 91精品国产高清久久久久久91| 精品久久久久久| 国产精品一区二区三区久久久| 国产成人一区二| 亚洲第一黄色网| 色视频www在线播放国产成人| 欧美限制级电影在线观看| 成人黄色网免费| 在线国产精品视频| 中文字幕国产亚洲2019| 日韩视频免费大全中文字幕| 久久久噜噜噜久久久| 国产精品三级久久久久久电影| 青青草一区二区| 精品久久久久久国产| 国产精品成人一区二区| 国产成人一区二区三区| 亚洲色图色老头| 久久影视电视剧免费网站| 欧美在线观看视频| 国产精品美女在线观看| 亚洲欧美日韩精品久久亚洲区| 在线看欧美日韩| 久久人人爽人人爽爽久久| 亚洲国产精品视频在线观看| 日韩毛片中文字幕| 久久久999成人| 亚洲国产精品久久|