最近沉迷寫前端**,現在緩過來簡單補下
簡單的並查集模板
待補math
// author : riotian
// time : 20/12/07
#include using namespace std;
typedef long long ll;
const int n = 1e5 + 10;
int main()
素數篩反向選
// author : riotian
#include using namespace std;
typedef long long ll;
const int n = 1e5 + 10;
int n;
bool isprime[n];
int main() }}
// cout << cnt << endl;
cout << (n <= 3 ? -1 : cnt + 2) << endl;
}
模擬題
如果兩數字位數不同就先補零便於後面處理
// author : riotian
// time : 20/12/07
#include using namespace std;
typedef long long ll;
const int n = 1e5 + 10;
string a, b, ans;
int cot = 0, len;
bool lin;
int main() else
len = a.size();
ans = "";
lin = true;
for (int i = 0; i < len; i++)
if (ans.size() == 0)
ans += "0";
cout << ans << endl;
}
模擬一下樣例1,會發現16 + 15,容易發下16為5項和,而\(15 = max(a[i]) * (n - 2)\)
// author : riotian
// time : 20/12/07
#include using namespace std;
typedef long long ll;
const int n = 2e5 + 10;
int n;
ll a[n];
int main()
cout << max * (n - 2) + cnt;
}
類似二分圖,在滿足條件的情況下盡量增加匹配數。
直接寫二分圖肯定很麻煩,但轉過來一想,為陣列排序呢?
\[2\ 3\ 4\ 6\ 7\\
2\ 3\ 4\ 4\ 6\\
\\從後往前匹配物件(數值盡量相近,這樣就可以把小的數字留給其他的)\\
7匹配6\\
6匹配4\\
4匹配3\\
3匹配2\\
由於不存在空閒比2小的數字了,所以最終成功匹配數為4
\]
// author : riotian
// time : 20/12/07
#include using namespace std;
typedef long long ll;
const int n = 2e5 + 10;
int n, m;
ll a[n], b[n];
int main()
cout << ans << endl;
}
看到題的瞬間想用線段樹,但簡單算了下時間複雜度,可能會超時,所以轉而想了想主席樹(沒了解的同學可以看這裡:here),但覺得牛客應該不會在小白賽出這種碼量大的題。
被迫無奈看了下題解,發現原來快速寫下優先佇列即可(都沒想到這個)
以下是ac**
// author : riotian
// time : 20/12/07
#include using namespace std;
typedef long long ll;
const int n = 2e5 + 10;
ll a[n];
priority_queueque;
int main()
} else
}}
這兩個待補
牛客小白月賽 30
並查集或者最小生成樹 並查集 include include include include using namespace std typedef long long ll const int maxn 2e 5 int f maxn struct node e maxn bool cmp nod...
牛客小白月賽22題解
a 操作序列 單點增加,區間求和,下標最小的非零數變成零,單點查詢。說完了不就線段樹嘛。由於範圍比較大,先存下來,離散化,再進行樹上的操作。注意這裡的左右區間離散化值不一樣的,左邊離散化要找到大於等於左邊界的值,右邊離散化要找到小於等於右邊界的值。b 樹上子鏈 類似於 dp 求樹直徑 c 交換遊戲 ...
牛客小白月賽24 題解
牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...