bryce1010模板
兩個字串的排序可以分成四種情況:
(1)str1左少右多 vs str2 左多右少
str2排在str1前面
(2)str1 左多右少 vs str2 左少右多
str1排在str2前面
(3)str1 左少右多 vs str2 左少右多
按左括號的數量排序
(4)其他情況按右括號的數量排
if(l<=r&&s.l>s.r)//左少右多 vs 左多右少
if(l>r&&s.l<=s.r)//左多右少 vs 左少右多
if(r>=l&&s.r>=s.l)//左少右多 vs 左少右多
return r最後用乙個if維護左括號的數量,不斷更新對應右括號的最大值(從dls的**學到的)
#includeusing namespace std;
#define ll long long
const
int maxn=1e5+10;
struct str
if(l>r&&s.l<=s.r)//左多右少 vs 左少右多
if(r>=l&&s.r>=s.l)//左少右多 vs 左少右多
return rstr[maxn];
char s[maxn];
int main()}}
sort(str+1,str+1+n);
int ans=0;
int now=0;
for(int i=1;i<=n;i++)
ans+=str[i].r+str[i].add;
now-=str[i].r;
now+=str[i].l;
}cout<2
<}
}
hdu6579 2019hdu多校第一場1002
這題是cf 1100f原題,場上一堆人做出來了,然後我線段樹線性基時間也過不去,空間也過不去 看了題解後發現是個很容易的套路 我們對1.i的陣列維護乙個b i 的字首和線性基,但是線性基中的數字,我們每一位都要記錄乙個pos k 表示p k 是由第pos k 個數字填進去的,在插入的時候,我們讓k從...
hdu 6299 多校第一場
題意 給出一些字串,重新組合,使括號的匹配數量最多 這道題場上沒能出,當時看了一眼,關於括號的,以為是個dp,就沒有再去做這道題。這道題事實上是個貪心,先把已經匹配好的括號數量統計出來。剩下的括號往兩邊堆,右括號往左邊堆,左括號往右邊堆。然後就是排序。左括號比右括號多的這種情況肯定要排在右括號比左括...
hdu5723 多校第一題,longlong
官方題解在這 首先注意到任意兩條邊的邊權是不一樣的,由此得知最小生成樹是唯一的,最小生成樹既然 是唯一的,那麼期望其實也就是唯一的,不存在什麼最小期望。求完最小生成樹之後,接下 來的問題就可以轉換成在最小生成樹上求任意兩點之間距離的平均值,對於每條邊,統計所 有的路徑用到此邊的次數,也就是邊的兩端的...