思路:
考慮到補簽卡一定是連續放置才更優,所以直接根據起始位置列舉。預先處理區間之間的gap的字首和,在列舉過程中二分即可。複雜度o(nlog(n))。
實現:
1 #include 2 #include 3 #include 4 #include 5using
namespace
std;
6 typedef long
long
ll;7
8const ll inf = 0x3f3f3f3f;9
10int
main()
1122
sort(v.begin(), v.end());
23 vectorint, int>>res;
24 res.push_back(v[0
]);25
for (int i = 1; i < v.size(); i++)
2630 vectorsum(res.size() - 1
);31
for (int i = 0; i < res.size() - 1; i++)
32 sum[i] = (ll)res[i + 1].first - 1 -res[i].second;
33sum.push_back(inf);
34for (int i = 1; i < sum.size(); i++)
35 sum[i] += sum[i - 1
];36 ll maxn = 0;37
for (int i = 0; i < sum.size(); i++)
3844 printf("
%lld\n
", maxn);45}
46return0;
47 }
百度之星 初賽B
a 傳送門 點我 求聯通塊個數,對於簡單圖而言,就是c v e,其中c就是聯通塊個數,v是頂點數,e是邊數 include include include include using namespace std const int max n 2e5 10 int n,m,k vectorg max...
2017百度之星初賽B場總結
a場因為不可抗力因素 沒能參加,b場還好算是磕磕碰碰地吃著低保過去了,真的菜呀 可以說還是比較一目了然的簽到題,由於這些點的橫縱座標都必須嚴格遞增,那麼我們最多能取到的點就是mi n n,m 個 方案數就相當於是在 max n,m 中選 min n,m 個的方案數,那麼答案就是c max n,m m...
百度之星2017初賽題解(A)
t1 簡單數論,問滿足 a0 a1 b an b n a0 a1 an mod p 的p的個數 即滿足p b 1 a1 b 2 1 a2 b 3 1 a3 即p b 1的p的個數 sqrt b 1 暴力列舉b 1約數即可 t2 現在給若干個條件,xi xj或xi xj,要你將它們劃分成若干組,滿足每...