HDU 6103 列舉 尺取

2021-08-06 01:28:11 字數 851 閱讀 7557

題意:

​ 給出乙個字串,問兩個不相交的字串對稱相減的絕對值和小於等於 m的最長長度。

思路:

​ 如果存在兩個不相交的字串,那麼必然兩個字串之間存在對稱軸,分為兩種:

1. 子串之間有奇數個其它字元,那麼列舉其中的字元。

2. 子串之間有偶數個其它字元,那麼列舉其中的空格。

對稱軸確定之後,對對稱的串計算出其對稱相減的和儲存在陣列中,那麼問題轉化為,在乙個陣列中找出和小雨等於m的最長連續字串,尺取法的經典應用。

#include 

#include

#include

#include

using

namespace

std;

const

int maxn = 5005;

int m,ans,pos;

int a[maxn];

char s[maxn];

int find(int n)

sum -= a[t++];

if(t >= n) break;

}return ans;

}int main(int argc, char

const *argv)

ans = max(ans,find(pos));

}for(int i = 1;i <= len-1; i++)

ans = max(ans,find(pos));

}printf("%d\n",ans);

}return

0;}

永不言棄!!!

HDU 6103 Kirinriki 尺取好題

傳送門 開始一直不知道怎麼寫 但是可以列舉a aa串的右端點和b bb串的左端點 然後可以一直把a aa串向左擴充套件,b bb串向右擴充套件 而且因為dis disdi s是個單增函式,所以一旦大於m mm就可以直接跳出 但這樣沒有優化複雜度,仍然是o n 3 o n 3 o n3 究其原因,是因...

hdu 1692 列舉 剪枝

題意 給你一些井的資訊,井中原有的水,當井中的水滿足一定量後會被破壞並且這些水全部流入下乙個井中,用多少能量能直接破壞這個井。然後問要想破壞第n口井至少要多少能量。解題思路 這題首先是要找到從哪口井開始破壞,因為要破壞第n口井,要麼直接破壞n,要麼n之前有連續的幾口井一同被破壞,如果中間出現了乙個不...

HDU3721 列舉 最長路

題意 給你一顆n個節點n 1條邊的樹,每條邊都有乙個權值,現在讓你任意移動一條邊然後把這條邊連線到任意兩個點上,最後問你怎樣移動才能使樹上相距最遠的兩個點距離最小。思路 先求出樹的最長路,然後列舉移動最長路上的所有邊,移走這條邊後,原樹必定分為不連線的兩顆子樹,分別求這兩顆子樹的最長路,然後分別找到...