原创 寒假刷題17:1296E1 - String Coloring (easy version)
題目鏈接: 1296E1 - String Coloring (easy version) 題目解析: 這道題實際上是把一個字符串分爲兩個不遞減的子串。 可以用DP,但還有一種貪心的方法:從左到右遍歷原字符串,並新建兩個字符串s1
原创 寒假刷題10:Network(LA 3902) 無根樹轉有根樹+貪心
題目鏈接: Network 題目解析: 將原本的無根樹,以原始VOD服務器爲根,轉變爲有根樹.對於已經滿足條件的客戶端直接忽略. 將剩餘所有葉子節點按深度入隊,之後從最深的一層向上遍歷.如果發現未被覆蓋的葉子節點,就向上回溯k層後
原创 寒假刷題7:A Different Task (UVA 10795 )
題目鏈接: A Different Task 題目解析: 數學題,漢諾塔問題的變種。 在初始局面和目標局面中,找出所有柱子中不同的盤子中編號最大的一個,設爲k,則k必須移動。所有比k編號大的盤子因爲不會造成影響,故直接忽略。 假設
原创 寒假刷題8:Assemble(NWERC2007,LA 3971) 二分
題目鏈接: Assemble 題目解析: 求“最小值最大” 二分答案,假設答案爲x。刪除品質因子小於x的所有配件,看能否組裝出一臺不超過b元的電腦(顯然每一類配件都要選最便宜的那個) 之前在去瀋陽的途中,小湯圓同學問過我一個十分類
原创 寒假刷題2:Piotr's Ants,UVa 10881
題目鏈接: Piotr’s Ants 解析: 把螞蟻看作是點,因爲速度相同,所以碰撞後可看作是“對穿而過”。這樣可以計算出所有螞蟻終止時刻位置。 可以看出所有螞蟻的相對順序是不變的,所以初末狀態排序,可以確定“誰是誰”。 注意:輸
原创 寒假刷題12:Aerodynamic Codeforces Round #618 (Div. 2) D (幾何)
題目鏈接: Aerodynamic 題目解析: 題意挺難理解的…手玩樣例發現是求是否中心對稱 如何驗證是否中心對稱呢: 必須是偶數個點 連接相對頂點的線段的中點必須重合 AC代碼: #include<bits/stdc++.h
原创 寒假刷題1:Graveyard (NEERC2006,LA3780)
題目鏈接:https://vjudge.net/problem/UVALive-3708 解析:思維題。 固定一個點不動,讓其餘各點分別移動到離它最近的目標點。這種情況下一定是最優的 。 注意細節。將距
原创 寒假刷題23:Feel Good(POJ - 2796) 單調棧
題目鏈接: https://vjudge.net/problem/POJ-2796 題目大意: 給你一個非負整數數組,定義某個區間的參考值爲:區間所有元素的和乘以區間最小元素。求該數組中的最大參考值以及對應的區間。 比如說有6個數3 1
原创 寒假刷題19:單調棧例題(洛谷P5788)
題目鏈接: 單調棧 題目解析: 很裸的一道題......主要是爲了回顧一下單調棧的用法 小於棧頂元素直接入棧,反之彈出棧內所有不大於當前元素的數並記錄答案 保證了出棧元素單調增 AC代碼: #include<bits/stdc++.h>
原创 KMP
#include <iostream> #include<cstring> #include<cstdio> #include<cmath> #include<map> using namespace std; #define ll l
原创 判斷一個大數(小於2的63次方)是否是素數
LL mul(LL x,LL y,LL mod) { return (x*y-(long long)(x/(long double)mod*y+1e-3)*mod+mod)%mod; } LL pow_mod(LL a,LL n
原创 最小環
Floyd O(n^3) int val[maxn + 1][maxn + 1]; // 原圖的鄰接矩陣 inline int floyd(const int &n) { static int dis[maxn + 1][
原创 Lucas定理
用於求 %p ll mod_pow(ll a, ll b) { ll res = 1; while(b) { if(b & 1) res =res * a % mod; a = a
原创 線段樹模板
1.區間修改(加&&乘),區間查詢 https://www.luogu.org/problemnew/show/P3373 #include<iostream> #include<cstdio> #include<cstring> #d
原创 網絡流 最大流模板(isap)
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define ll long long usin