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

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

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

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

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
精品中文字幕在线| 成人国产亚洲精品a区天堂华泰| 91人成网站www| 国色天香2019中文字幕在线观看| 91亚洲精品视频| 亚洲欧美日韩精品久久奇米色影视| 国产精品嫩草视频| 欧美日韩成人网| 97不卡在线视频| 国产日本欧美一区| 一本大道久久加勒比香蕉| 亚洲男人的天堂在线播放| 自拍偷拍免费精品| 久久久久www| 欧美大片在线看免费观看| 久久免费视频在线观看| 亚洲日韩第一页| 国产精品香蕉av| 国产精品免费在线免费| 亚洲综合在线做性| 久久久久成人精品| 亚洲精品日韩av| 日韩精品亚洲元码| 国产成人久久久| 国产精品一区=区| 欧美日韩性视频| 国产成人精品视频在线观看| 96国产粉嫩美女| 亚洲国产精品小视频| 日韩最新在线视频| 欧美激情视频播放| 国产精品久久视频| 中文字幕一区电影| 久久精品视频免费播放| 欧美视频中文字幕在线| 欧美日韩精品国产| 国产精品xxx视频| 欧美日韩成人免费| 亚洲日韩欧美视频| 欧美黄色三级网站| 国产精品第三页| 国精产品一区一区三区有限在线| 欧美性xxxx在线播放| 国产精品欧美一区二区| 亚洲欧美另类国产| 欧美日韩日本国产| 亚洲男人第一av网站| 91久久精品美女高潮| 亚洲电影天堂av| 国产欧美亚洲视频| 欧美日韩国产成人在线| 国产精品高清免费在线观看| 亚洲欧美国产精品久久久久久久| 色琪琪综合男人的天堂aⅴ视频| 欧美日韩视频免费播放| 永久555www成人免费| 久久久黄色av| 欧美激情喷水视频| 性色av一区二区三区在线观看| 欧美性猛交xxxx富婆| 欧美激情啊啊啊| 亚洲摸下面视频| 精品久久久久久中文字幕一区奶水| 精品国产美女在线| 中日韩午夜理伦电影免费| 欧美成人合集magnet| 欧美视频在线观看 亚洲欧| 欧美色视频日本高清在线观看| 国产欧美日韩中文字幕| 在线成人中文字幕| 久久99热这里只有精品国产| 亚洲综合日韩在线| 亚洲自拍另类欧美丝袜| 欧美国产激情18| 尤物精品国产第一福利三区| 久久久久久亚洲| 中文字幕日韩精品在线| 在线日韩精品视频| 欧美大肥婆大肥bbbbb| 日本国产欧美一区二区三区| 在线视频国产日韩| 欧美激情影音先锋| 国产精品视频永久免费播放| 97婷婷涩涩精品一区| 国内精品模特av私拍在线观看| 国产精品亚洲一区二区三区| 日韩中文字幕精品| 欧美一级高清免费播放| 成人黄色av免费在线观看| 亚洲天堂av女优| 欧美大片第1页| 久久91精品国产91久久跳| 精品日本美女福利在线观看| 精品电影在线观看| 日韩成人激情视频| 一本色道久久88综合日韩精品| 国产精品亚洲片夜色在线| 精品激情国产视频| 国产国语videosex另类| 国产亚洲一区二区在线| 精品久久香蕉国产线看观看亚洲| 亚洲自拍偷拍福利| 国产日韩欧美综合| 国产欧美日韩专区发布| 欧洲亚洲妇女av| 亚洲国产欧美一区二区三区同亚洲| 日韩av免费网站| 亚洲人成绝费网站色www| 日韩有码片在线观看| 在线观看欧美www| 97涩涩爰在线观看亚洲| 免费99精品国产自在在线| 亚洲国产精品久久| 久久精品国产一区二区三区| 欧美大秀在线观看| 中文字幕av日韩| 亚州成人av在线| 欧美日韩综合视频| 日韩色av导航| 亚洲最新av在线| 亚洲a在线观看| 亚洲无线码在线一区观看| 中文字幕亚洲精品| 国产99久久久欧美黑人| 97香蕉超级碰碰久久免费的优势| 美女啪啪无遮挡免费久久网站| 久久久99免费视频| 一区二区三区日韩在线| 日本一区二区三区四区视频| 亚洲国产私拍精品国模在线观看| 日韩美女在线观看一区| 欧美日韩成人在线播放| 国产欧美日韩精品在线观看| 91久久精品国产91性色| 欧美国产日韩xxxxx| 亚洲自拍小视频| 92福利视频午夜1000合集在线观看| 欧美日韩国产在线播放| 国产一区二区日韩精品欧美精品| www国产91| www.午夜精品| 日韩福利伦理影院免费| 91夜夜未满十八勿入爽爽影院| 亚洲欧美综合区自拍另类| 正在播放欧美视频| 欧美人在线观看| 一本色道久久综合狠狠躁篇的优点| 欧美成人小视频| 亚洲精品中文字幕有码专区| 欧美激情精品久久久久久大尺度| 亚洲一区二区久久久久久久| 另类色图亚洲色图| 久久免费精品视频| 欧美日韩精品在线视频| 亚洲xxx自由成熟| 亚洲精品久久久久| 久久久久女教师免费一区| 91亚洲精品久久久久久久久久久久| 亚洲欧美日韩爽爽影院| 欧美国产视频一区二区| 精品国产一区二区三区久久狼5月| 欧美在线不卡区| 国产精品久久久久久av福利| 久久久久久国产免费|