CodeForces 948C 解題報告

2021-08-25 13:59:12 字數 894 閱讀 8851

題目鏈結

這道題看出來了是一道stl題,本來一開始用佇列去做,結果tle,在這裡先給出tle**:

#include 

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e5 + 10;

int n,v[maxn],t[maxn];

int main()

else cnt+=vi;

}if(i) printf(" ");

printf("%lld",cnt);

}printf("\n");

}return

0;}

原因是,第二個迴圈逐個去統計維護,會消耗大量時間,但是思路比較簡單

#include 

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e5 + 10;

int n,v[maxn],t[maxn];

int main()

sum+=t[i];

cnt+=(ll)que.size()*t[i];

if(i) printf(" ");

printf("%lld",cnt);

}printf("\n");

return

0;}

本題還有乙個容易wa的地方就是資料的範圍,唉,不知道吃了多少次虧了,還是沒長記性,所有的資料除了一開始讀的,後面計數的資料都要用ll,注意是所有的!!!一次全部改完(別問我為什麼這樣說)。

Codeforces 587C 樹上倍增

題意 求樹上兩點路徑中的前 a 10 小的點權值。思路 類似lca倍增演算法來儲存 i 2 j 路上的 前 10 小個 的點權值。然後要寫乙個權值合併 具體求 u v 的話,就是先分別計算 和 減1是lca會重疊 然後再合併,輸出答案。include include include include ...

Codeforces 976C 題解報告

對資料進行排序 1 按左邊的數從小到大排 2 若左邊的數相等,則按右邊的數從大到小排。排序之後,若乙個數的右邊的數小於等於上乙個數的右邊的數,則這兩個數必然符合題意。比如2 13 2 12 1 11排序之後,變為 1 11 2 13 2 12因為12 13,則有 2,12 被包含在它的上乙個數 2,...

codeforces,1216C(分類討論)

題意 在xoy平面第一象限即x,y非負軸內,給定白色矩形的左下 右上頂點的座標,再給定兩個黑色矩形的左下 右上頂點的座標,判斷白色矩形能不能被看到 區域性也算 比較簡單,把思路理清,分類討論即可。1.白色矩形包含在某個黑色矩形內 2.白色矩形被兩個黑色矩形一起遮住,其中一塊遮住它的上部分,另外一塊遮...