b.
比賽當時真的想了很長時間,看到大佬的解法,感覺真的好厲害啊簡單來說,你要比較兩個線段包不包含,你先根據線段的最後排序,從小到大,那麼如果出現乙個線段的開始比之前最大的開始要小,那麼這個線段就包含之前哪個線段
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
3e5+10;
struct nodea[maxn]
;bool
cmp(
struct node a,
struct node b)
else
}int
main()
sort
(a, a + n, cmp)
; ll max =
0, mian;
for(ll i =
0; i < n; i++
)else
} cout <<
"-1"
<<
" "<<
"-1"
<< endl;
return0;
}
c.
這個題目真是卡了我很長時間啊!!!但是也沒什麼好說的,就是把篩選的條件一定要寫好,大概反映出了我思維不夠吧
#include
using
namespace std;
intmain()
else
else a -
= t;
long
long lt = a - n;
if(lt %2==
0) b =
1+ d;
else b =
(m +1)
- d;
cout << a <<
" "<< b << endl;
}return0;
}
涼心的比賽(一)
線段包含關係 這個題有點遺憾,因為語言設定問題一直沒有過,思路 將各個線段如果右端點不相等就按照右端點小的優先排序,如果右端點相等就按照左端點大的排序,這樣就保證了排序出來的結果上乙個的範圍總比下乙個的大,所以在最後只需要比較上乙個與下乙個是否符合條件即可。include include inclu...
涼心的比賽
題意 給出一串只由 1 和 0 組成的字串 並只能進行 一 交換相鄰兩數的位置。二 相鄰的 11 可以換成 1 可以無限次的進行這兩個步驟 所以這題又可以分為三種情況 僅由 1 組成 經過無限次的變換,最後一定只剩下 1 僅由 0 組成 只有0一種情況,最終結果為0 既有 1 又有 0 最後經過有限...
涼心的比賽 一 補題
題目鏈結 題意 有n個物品,能進行a次操作一和b次操作二,每個物品有乙個hp和damage,操作一為把某個物品的hp變為原來的兩倍,操作二為把某個物品的hp賦值給它的damage,問這n個物品的damage的總和最大是多少。思路 證明出來a操作應該都使用給同乙個物品最優,然後按b操作的最優方案排序,...