日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Uva 1625】Color Length

發布時間:2025/7/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Uva 1625】Color Length 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Link:

Description

給你兩個序列,都由大寫字母組成;
每次,把兩個序列中的一個的開頭字母加在字符串的尾端,然后在那個序列中刪掉那個開頭字母;
最后得到一個字符串;
這個字符串顯然后很多種;
讓你找所有字母的L(C)的和的最小值;
L(c)是某個字母在最后的那個字符串中出現的結尾位置和開始位置的差值;

Solution

設f[i][j]表示第一個序列1..i全都移除掉了,第二個序列1..j全都移除掉了的最小L(c)和;
這里不能直接算出某個字母的L(C)值,但是能一步一步地累加,比如,你新加了一個字母x,然后在此之前,已有的字符串里面,有字母a,且還有未加入的字母a;
則L(a)的值可以肯定會遞增1了;
則可以寫出轉移方程
f[i][j]=min(f[i][j],f[i?1][j]+cnt[i?1][j])
f[i][j]=min(f[i][j],f[i][j?1]+cnt[i][j?1]);
這里的cnt[i][j]表示第一個序列前i個字母移出去了,第二個序列前j個字母移出去了所形成的字符串,有多少個字母已經出現了,但是還沒有全部出現;
為了獲取這個cnt數組;
可以先獲取,每個字母在這兩個序列中第一次出現最后一次出現的位置;
然后對于枚舉的i和j;
看看每個字母是不是在這個情況下出現了;
這樣就能獲得cnt數組;

NumberOf WA

4

Reviw

用memset會莫名的TLE;
改成循環就過了

Code

#include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define pb push_back #define fi first #define se second #define ms(x,y) memset(x,y,sizeof x) #define Open() freopen("F:\\rush.txt","r",stdin) #define Close() ios::sync_with_stdio(0)typedef pair<int,int> pii; typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1}; const int dy[9] = {0,0,0,-1,1,-1,1,-1,1}; const double pi = acos(-1.0); const int N = 5e3; const int INF = 0x3f3f3f3f;int dp[N+100][N+100],n,m,cnt[N+100][N+100]; pii a1[27],a2[27]; char s1[N+100],s2[N+100];int main(){//Open();//Close();int T;scanf("%d",&T);while (T--){scanf("%s",s1+1);scanf("%s",s2+1);n = strlen(s1+1),m = strlen(s2+1);rep1(i,1,26) a1[i].fi = a1[i].se = a2[i].fi = a2[i].se = 0;//第一次出現rep1(i,1,n){int t = s1[i]-'A'+1;if (a1[t].fi==0) a1[t].fi = i;}rep1(i,1,m){int t = s2[i]-'A'+1;if (a2[t].fi==0) a2[t].fi = i;}//最后一次出現rep2(i,n,1){int t = s1[i]-'A'+1;if (a1[t].se==0) a1[t].se = i;}rep2(i,m,1){int t = s2[i]-'A'+1;if (a2[t].se==0) a2[t].se = i;}rep1(i,0,n)rep1(j,0,m){int temp = 26;rep1(k,1,26){if (a1[k].fi == 0 && a2[k].fi==0){temp--;continue;}if (a1[k].fi!=0 && a2[k].se==0){if (i<a1[k].fi){temp--;continue;}if (a1[k].se<=i){temp--;continue;}}if (a1[k].fi==0 && a2[k].se!=0){if (j<a2[k].fi){temp--;continue;}if (a2[k].se<=j){temp--;continue;}}if (a1[k].fi!=0 && a2[k].fi!=0){if (i<a1[k].fi && j<a2[k].fi){temp--;continue;}if (a1[k].se<=i && a2[k].se<=j){temp--;continue;}}}cnt[i][j] = temp;}rep1(i,0,n)rep1(j,0,m)dp[i][j] = INF;dp[0][0] = 0;rep1(i,0,n)rep1(j,0,m){if (i-1 >= 0){dp[i][j] = min(dp[i][j],dp[i-1][j] + cnt[i-1][j]);}if (j-1 >= 0){dp[i][j] = min(dp[i][j],dp[i][j-1] + cnt[i][j-1]);}}cout << dp[n][m] << endl;}return 0; }

轉載于:https://www.cnblogs.com/AWCXV/p/7626202.html

總結

以上是生活随笔為你收集整理的【Uva 1625】Color Length的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区久久 | 亚欧美视频 | 天天曰天天干 | 久久国产精品久久久久久 | 欧美丰满少妇 | 韩国伦理电影免费在线 | 免费av网站在线观看 | 婷婷在线看 | 99av国产精品欲麻豆 | 伊人91视频 | 国产福利在线观看视频 | 91av国产视频| 国产另类av| av一二三| 91精品国自产在线偷拍蜜桃 | 91大神在线观看视频 | 少妇视频在线播放 | 69免费| 久久午夜av| 久久精品美女视频 | 韩国av网 | 播播开心激情网 | 一区二区三区伦理 | 成人免费公开视频 | 午夜激情影视 | 欧美一区2区| 中文字幕第二区 | 美女免费视频网站 | www.黄色网址| 欧美色成人 | 亚洲一区二区 | 国产主播自拍av | 国产5区| 色香欲综合网 | 激情欧美一区二区三区精品 | 韩国三级视频在线观看 | 国产91精品久久久久久久网曝门 | 国产经典三级 | 去毛片| 性天堂网 | 久久久久久久久久网站 | 欧美xxxⅹ性欧美大片 | 欧洲性生活视频 | 午夜黄色福利视频 | 韩国黄色av | 精品国产午夜福利 | 在线看av网址 | 成人性生交大片 | jizz欧美| 日本视频在线看 | 羞羞羞网站 | 自拍偷拍激情视频 | 激情婷婷六月天 | 国产黄色影院 | 男人的天堂中文字幕 | 男生和女生一起搞鸡 | 午夜视频一区二区 | 色中文在线 | 人妻人人澡人人添人人爽 | 被室友玩屁股(h)男男 | av电影在线观看 | 99黄色| 久久精品无码人妻 | 韩国bj大尺度vip福利网站 | 亚洲AV无码一区二区三区蜜桃 | 亚洲视频一区二区三区 | 国产不卡在线播放 | 亚洲视频你懂的 | 男女黄网站 | 欧美一区网站 | 亚洲综合91 | 外国电影免费观看高清完整版 | 免费国产成人 | 国产精品一区二区三区免费看 | 奇米精品一区二区三区四区 | 国产一区二区三区成人 | 免费看片亚洲 | 高h av| 亚洲免费看黄 | 欧美专区亚洲专区 | 欧美黑人xxx | 日韩va亚洲va欧美va久久 | 日韩在线观看免费全 | 欧美精品色婷婷五月综合 | 亚洲成人av中文字幕 | 体内射精一区二区 | 欧美人在线 | 中文字幕一区日韩 | 欧美成人69 | 欧美日韩成人在线播放 | 一级黄色免费观看 | 锦绣未央在线观看 | 黄色777| 国产精品xxxx | 91色在线视频 | xxxx黄色 | 老熟妇仑乱一区二区视频 | 欧美一级片一区 | 欧美性爱精品一区 |