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

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

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

2019-11-14 11:55:49
字體:
來源:轉載
供稿:網友

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
欧美黄色小视频| 国产精品亚发布| 中文字幕亚洲综合| 欧美高清激情视频| 国产一区二区三区日韩欧美| 伊人伊成久久人综合网小说| 欧美贵妇videos办公室| 久久天天躁狠狠躁夜夜av| 国产午夜精品美女视频明星a级| 亚洲天堂男人的天堂| 欧美日韩激情视频| 自拍视频国产精品| 国产成人精品在线| 国产午夜一区二区| 亚洲精品乱码久久久久久金桔影视| 欧美日韩亚洲一区二| 国产精品普通话| 91亚洲精品一区二区| 精品毛片网大全| 国产成人综合久久| 国产69精品久久久久9999| 57pao国产精品一区| 97久久超碰福利国产精品…| 国产精品一区二区久久| 精品中文字幕视频| 97香蕉久久超级碰碰高清版| 日韩欧美国产网站| 成人精品久久av网站| 在线观看91久久久久久| 亚洲精品456在线播放狼人| 日韩欧美亚洲范冰冰与中字| 美日韩精品免费视频| 成人h片在线播放免费网站| 亚洲精品久久视频| 国产精品扒开腿做| 国产精品天天狠天天看| 日韩av在线高清| 国内精品久久久久久| 国产精品国产福利国产秒拍| 国产精品日韩在线| 91久久久久久久久| 久久精品成人欧美大片| 国产精品第一第二| 动漫精品一区二区| 一级做a爰片久久毛片美女图片| 亚洲无亚洲人成网站77777| 亚洲综合精品一区二区| 国产精品久久久久久超碰| 国产成人精品视频| 国产精品视频999| 久久久久久久久久久91| 成人亚洲欧美一区二区三区| 亚洲色图第一页| 91久久精品久久国产性色也91| 91精品视频免费| 亚洲女人天堂网| 91性高湖久久久久久久久_久久99| 成人精品一区二区三区| 亚洲午夜色婷婷在线| 日本精品视频在线| 国产性猛交xxxx免费看久久| 亚洲国产日韩欧美在线动漫| 精品国产91乱高清在线观看| 国产91精品不卡视频| 国产视频精品一区二区三区| 69av视频在线播放| 国产亚洲精品一区二555| 高清欧美性猛交xxxx| 久久精品91久久香蕉加勒比| 欧美区在线播放| 欧美日韩国产一中文字不卡| 国产精品久久久久久亚洲影视| 91久久精品久久国产性色也91| 欧美精品www| 亚洲成人av在线| 欧美一区二区三区……| 欧美日韩一区二区三区| 中文字幕亚洲一区二区三区| 日韩在线免费视频观看| 91高清视频免费观看| 国产精品一区二区三区免费视频| 国产精品精品久久久| 一本大道亚洲视频| 中日韩美女免费视频网址在线观看| 永久555www成人免费| 日韩在线观看免费全集电视剧网站| 国产精品免费久久久久久| 国产日韩欧美日韩大片| 成人福利在线视频| 日本免费一区二区三区视频观看| 色www亚洲国产张柏芝| 欧美日韩国产精品一区二区三区四区| 欧美激情中文网| 麻豆国产va免费精品高清在线| 91免费在线视频| 午夜精品理论片| 国产精品自拍偷拍| 日韩国产精品视频| 欧美在线免费观看| 4k岛国日韩精品**专区| 91日本在线视频| 97久久伊人激情网| 亚洲91精品在线观看| 一区二区中文字幕| 在线电影欧美日韩一区二区私密| 91久久久亚洲精品| 日韩小视频在线观看| 亚洲最新视频在线| 欧美国产日本在线| 8090成年在线看片午夜| 久久久久久久久久久免费精品| 国内精品一区二区三区四区| 日韩免费观看av| 91国在线精品国内播放| 亚洲成人av中文字幕| 97久久超碰福利国产精品…| 亚洲美腿欧美激情另类| 91欧美精品成人综合在线观看| 中文字幕日韩专区| 亚洲视频电影图片偷拍一区| 国产免费一区二区三区在线观看| 尤物99国产成人精品视频| 亚洲精品在线91| 91av网站在线播放| 国产精品www色诱视频| 亚洲午夜性刺激影院| 久久99国产精品久久久久久久久| 日本久久久久久久久久久| 欧美激情奇米色| 成人黄色片在线| 亚洲国产精品推荐| 亚洲大胆人体视频| 隔壁老王国产在线精品| 亚洲va男人天堂| 国产精品久久久久久久久免费| 日韩在线一区二区三区免费视频| 久久韩剧网电视剧| 久久久久久久久久久免费| 欧美日韩亚洲一区二区三区| 亚洲激情视频在线播放| 亚洲女性裸体视频| 日本免费久久高清视频| 上原亚衣av一区二区三区| 91久久久在线| 91精品一区二区| 欧美乱妇高清无乱码| 蜜臀久久99精品久久久久久宅男| 视频一区视频二区国产精品| 国内精品久久久久影院优| 亚洲欧洲黄色网| 日韩欧美大尺度| 8090理伦午夜在线电影| 日韩美女毛茸茸| 亚洲天堂免费观看| 97色在线视频| 亚洲一区二区三区成人在线视频精品| 日韩美女视频免费在线观看| 亚洲自拍偷拍第一页| 性视频1819p久久| 亚洲天堂男人天堂| 欧美极品美女视频网站在线观看免费| 九九久久国产精品| 成人美女免费网站视频| 777午夜精品福利在线观看|