一串項鍊由c和j組成,可以從某乙個位置切斷,從左或者往右收集,問有多少種合法的切割方案,滿足任意時刻c的數量不小於j的數量。 單調佇列維護最小值。
#include #include #include #include using namespace std;const int maxn = 2000010;
char s[maxn];
int q[maxn], flag[maxn], d[maxn];
int main()
}reverse(s+1, s+2*n+1);
front = 0, rear = -1;
tmp = 0;
for(int i = 1; i <= 2*n; i++)
}printf("case %d: %d\n", cas++, ans);
}return 0;
}
HDU 3474 單調佇列
點選開啟鏈結 題意 給個成環的字串,現在要從乙個地方斷開這個環,然後可以向左或向右走,在走的過程中c的數量要始終保持大於j的數量,問共有多少個這樣的端點 思路 沒有思路,參考了大神的思路,大神說這是水題,弱哭 這裡解釋一下l和r陣列的含義應該就可以自己把 敲出來了,貌似單調佇列考的就是這個呢,l陣列...
Hdu 3874 Necklace 樹狀陣列
題意 詢問某一區間的值之和,相同元素只算一次 思路,樹狀陣列求解,由於區間相同元素只算一次,採用離線演算法,把區間右端點從小到大排序,按順序處理。首先我們找到乙個點時,記錄它的下標,若在後面還有與它相同的元素,我們把之前的元素去掉,插入到當前位置,每次進行這樣的一次處理,就要判斷一下,處理後該點有沒...
hdu5727 Necklace 列舉 匈牙利
題意 有2n 0 n 9 個珠子,分成陰陽兩極,每極各n個。用這2n個珠子做成乙個項鍊,使得相鄰兩個珠子的極性是不一樣的,因為有一些陽性的珠子會被一些陰性的珠子所削弱在它們它們相鄰的情況下。給你m 0 m n n 1 2 個關係 x,y 表示陽性珠子x會被陰性珠子y在相鄰情況下所削弱。問你最少有多少...