原创 poj 1611

並查集入門一個社團的合併一次,最後統計和0是在相同集合的人#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int max

原创 CodeForces - 605A

每次可以把一輛車放在開頭或者結尾問最少多少次操作讓這個數列變成遞增數列既然要保持最少操作,那就需要讓最長的上升序列的數保持不變,讓其他數進行改變#include <iostream> #include <cstdio> using nam

原创 CodeForces - 95C 最短路

原來做的時候,做到最後忘了找不到要輸出-1還是很粗心#include<queue> #include<cstdio> #include<vector> #include<cstring> #include<iostream> using

原创 CodeForces - 699D

利用並查集判斷環和樹第一次兩個節點判斷是,如果不在一個樹上就合併,如果出現兩個點在一個樹上就說明出現了環#include<iostream> #include<cstdio> using namespace std; const int

原创 HDU4734 F(x)

數位DP講一下具體思路,自己是看了kuangbin的板子來做的DP的關鍵在於如何去尋找轉移方程,本道題用到了一種相減的思路A,B分別代表題目描述的變量DP[pos][sum] pos 不用多說就是數位, sum這裏不是指一個數的和,這裏的

原创 POJ 2524

並查集#include<cstdio> #include<iostream> #include<cstring> using namespace std; const int maxn = 50000 + 10; int p[maxn];

原创 HDU 4925 找規律

找規律#include <iostream> #include <cstdio> #include <algorithm> #define LL long long using namespace std; int main(){

原创 POJ 2253

floy 變形記最短路的又一種玩法#include <cstdio> #include <cstring> #include <string> #include <iostream> #include <stack> #include <

原创 HDU 6231 二分

看了第一眼,腦子裏只有暴力第二眼還是暴力,果斷暴力T一發然後開始想優化成nlogn,採用枚舉A[]數組裏面的數,當然是二分枚舉兩個坑點(xxxxx)XXXX(xxxxx)上面三個區間我們命名區間一,區間二,區間三假設區間三正好滿足比枚舉的