HDU5583 上海賽銅牌題

2022-03-21 02:13:03 字數 985 閱讀 8495

這道題的意思是給你乙個01串, 定義這串的優美值為連續相同的數字的平方和, 現在可以改變這些串中乙個字元, 問你優美值最大是多少? 我們可以預處理出d1[i]i左邊和str[i]相同的字元個數, d2[i]i右邊和str[i]相同的字元個數, 對於乙個i, 我們可以進行如下分類, i周圍的兩個元素和i都不相同, 有乙個相同, 兩個都相同, 按照這個規律掃一遍即可得出答案, **如下:

#include using

namespace

std;

typedef

long

long

ll;char str[100000 + 100

];int d1[100000+100], d2[100000 + 100

];ll n2(ll a)

intmain()

else d1[i] = d1[i-1]+1

; }

res += (ll)d1[len]*(ll)d1[len];

for(int i=len; i>=1; i--)

ll ans;

ll ansres =res;

str[

0]='

3', str[len+1]='3'

;

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

if(str[i]==str[i+1] && str[i]!=str[i-1

])

if(str[i]!=str[i+1] && str[i]==str[i-1

])

if(str[i]!=str[i-1] && str[i]!=str[i+1

])

}printf(

"case #%d: %lld\n

", ++kase, ansres);

}return0;

}

HDU 5242 GAME 2015上海邀請賽G題

題意 給定一顆以1號節點為根節點的有向樹,每個節點有乙個權值,問從1號節點出發k次,能到達的所有節點的和的最大值。思路 貪心的把樹的鏈按照權值和從大到小剖分成若干條鏈 過程可以根據上交書上的熟練剖分模版做細小改動 然後根據每條鏈的權值排序取最大的k個就是答案。include include incl...

2015 上海網賽 HDU5469 樹分治

rainto96 beijing university of posts and telecommunications school of software engineering 題意 10000個節點的一顆樹 每個節點有個字母 給出目標字串 求是否存在點對u,v使得u到v的路徑上的字母正好組成這...

hdu5047(上海網賽1006)Sawtooth

題意 乙個矩形畫布。在上面畫 m 問畫n個m,最多把畫布分為幾部分。思路 找規律,研究畫第二個m的時候,在第乙個的基礎上增加了多少區域。可以得出公式 16 n n 1 2 2 n 1。然後因為結果爆long long,高精度搞超時,所以砍半來計算。include include include in...