D String Game 二分加字串匹配

2021-08-09 10:59:27 字數 826 閱讀 1965

題目鏈結

題目大意:給出字串str1,再第二行給出字串str2,第三行給出刪除str1中的字元的順序,用陣列a存,問最多按第三行的順序刪除str1中的字元剩下的字串中str2

我們定義l為a的左邊界,r為a的右邊界,mid為a的中

我們要求的是最多能刪除的字元數,那麼mid的值越大越好,所以首先判斷mid~r中剩下的字元包括str2嗎?

如果包括包括我們令l=mid,看看mid可不可能取更大的值

如果不包括我們令r=mid(所以r永遠不可能是mid的取值,及區間為左閉右開),降低mid的取值。

**實現:

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

#define ll long long

9using

namespace

std;

10int a[200005],b[200003];char str1[200005],str2[200005

];11

intr,l,l;

12int judge(int

m)13

24if(m==strlen(str2))

25return1;

26else

27return0;

28}29int

main()

3046

else

4751

}52 printf("

%d\n

",l);53}

54return0;

55 }

寵物收養場 vector, 加二分)

凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這樣他就能夠...

DP最長子序列 (常規加二分)

所有的最長子序列都差不多,只是 的區別,所以要注意符號問題,之前學過常規寫法,今天又看到了乙個二分寫法,時間複雜度前者為n n,後者為nlogn,所以學一學還是很有必要的,挑了一道自己oj上的dp水題 傳送門 最長不上公升子串行 常規寫法很簡單,也當是複習了 include include incl...

nefu 復讀機 分塊加二分

有兩個操作,1操作,對於x,y區間內的值全部加1。2操作,求出第一次復讀y次跟最後乙個復讀y次的復讀機次數。a存復讀機原陣列,b存分塊陣列,對於分塊陣列每個進行排序操作,使區間有序,每次查詢對於第乙個區間查詢到最後乙個區間,進行二分查詢。更新時則對兩個區間都進行更新。也可對a更新後再對b賦值。inc...