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

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

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

2019-11-14 12:26:37
字體:
來源:轉載
供稿:網友

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
国产精品久久久久99| 国模吧一区二区| 亚洲精品第一国产综合精品| 97视频在线观看免费| 亚洲日韩中文字幕在线播放| 91亚洲精华国产精华| 超碰精品一区二区三区乱码| 97色在线视频| 精品亚洲一区二区| 95av在线视频| 欧美日产国产成人免费图片| 91久久精品美女高潮| 成人天堂噜噜噜| 国产精品一区专区欧美日韩| 亚洲欧洲激情在线| 久久精品视频播放| 三级精品视频久久久久| 欧美一级片一区| 亚洲第一视频在线观看| 中文综合在线观看| 亚洲精品网站在线播放gif| 欧美亚洲另类在线| 精品亚洲精品福利线在观看| 日韩三级成人av网| 欧美日韩精品中文字幕| 日韩大陆欧美高清视频区| 欧美国产日本高清在线| 日韩av色在线| 国产日韩亚洲欧美| 91精品在线影院| 国产精自产拍久久久久久| 日韩美女主播视频| 亚洲男人天堂古典| 亚洲一区二区三区四区在线播放| 伊人久久五月天| 日韩成人在线电影网| 欧美精品在线第一页| 亚洲午夜精品久久久久久性色| 成人网址在线观看| 欧美丰满少妇xxxx| 91免费精品视频| 国产99久久精品一区二区永久免费| 日韩成人在线播放| 在线亚洲午夜片av大片| 91久久久久久国产精品| 色99之美女主播在线视频| 久久资源免费视频| 青青草国产精品一区二区| 久久国产加勒比精品无码| 久久香蕉频线观| 欧美日韩国产综合视频在线观看中文| 久久久国产影院| 欧美最顶级丰满的aⅴ艳星| 日韩电影中文字幕| 国产精品爽爽ⅴa在线观看| 日韩免费视频在线观看| 久久伊人免费视频| 中文字幕日韩av综合精品| 日韩欧美中文字幕在线播放| 亚洲精品动漫久久久久| 日韩女优在线播放| 成人国产精品免费视频| 91夜夜未满十八勿入爽爽影院| 成人a在线观看| 97婷婷涩涩精品一区| 欧美贵妇videos办公室| 亚洲a∨日韩av高清在线观看| 久久久99久久精品女同性| 亚洲综合自拍一区| 欧美裸体xxxxx| 国产精品欧美日韩一区二区| 国产精品国产三级国产专播精品人| 成人精品aaaa网站| 中文字幕精品久久| 欧美日韩国产限制| 欧美另类极品videosbestfree| 91精品在线观看视频| 中文字幕亚洲图片| 日本午夜人人精品| 一区二区欧美在线| 久久综合免费视频| 国产亚洲一区精品| 亚洲精品av在线播放| 国产美女精品视频免费观看| 亚洲精品第一国产综合精品| 亚洲第一男人天堂| 91久久久久久| 久久九九精品99国产精品| 97成人精品视频在线观看| 成人网欧美在线视频| 国产91色在线|免| 97在线视频观看| 日本一区二区不卡| 亚洲国产成人精品电影| 中文字幕精品—区二区| 美日韩精品免费观看视频| 久久网福利资源网站| 日韩亚洲综合在线| 国产精品久久久久久影视| 97精品久久久| 国产日韩亚洲欧美| 亚洲最大福利网| 国内精品小视频| 国产精品高清在线| 日本精品视频在线| 中文字幕在线日韩| 亚洲91精品在线| 色先锋久久影院av| 亚洲国产又黄又爽女人高潮的| 在线日韩日本国产亚洲| 亚洲国产精品福利| 国产亚洲一级高清| 成人免费黄色网| 国模极品一区二区三区| 亚洲97在线观看| 欧美极品欧美精品欧美视频| 国产va免费精品高清在线| 日韩视频―中文字幕| 亚洲最大福利视频网站| 91影视免费在线观看| 中文字幕日韩综合av| 92裸体在线视频网站| 国产精品va在线播放我和闺蜜| 日韩av在线网址| 亚洲欧美国产一区二区三区| 狠狠躁夜夜躁人人躁婷婷91| 精品国产成人在线| 国产一区二区三区在线观看网站| 色综合影院在线| 久久综合免费视频| 亚洲午夜小视频| 亚洲一区二区日本| 国产精品日韩在线播放| 尤物精品国产第一福利三区| 亚洲成色www8888| 欧美精品18videos性欧美| 国产欧美久久久久久| 欧美精品激情在线观看| 亚洲国产精品久久精品怡红院| 欧美在线亚洲在线| 国内外成人免费激情在线视频网站| 国产精品亚洲激情| 精品在线观看国产| 欧美一性一乱一交一视频| 亚洲人成电影在线播放| 久久久久久久成人| 91社影院在线观看| 久久天天躁狠狠躁夜夜躁2014| 日韩毛片在线看| 欧美日韩亚洲系列| 91av网站在线播放| 九九热这里只有在线精品视| 久久精品国产欧美亚洲人人爽| 国产精品美女免费看| 日韩a**站在线观看| 55夜色66夜色国产精品视频| 色综合久久久久久中文网| 国产精品自拍偷拍| 亚洲欧美日韩精品久久亚洲区| 国产噜噜噜噜噜久久久久久久久| 国产91精品最新在线播放| 欧美精品www在线观看| 7m第一福利500精品视频| 欧美精品日韩三级|