原创 Codeforces Round #613 (Div. 2)D. Dr. Evil Underscores Trie樹上的簡單dp

鏈接 題意 : 給n個數 求x與a[i]異或的最大值最小 思路:每個數拆成2進制數建立一個trie樹,在trie樹上dp即可 難點主要是實現方面 對trie樹建邊的思想沒有理解很到位 #include<bits/stdc++.h>

原创 樹上兩點間距離 倍增法求LCA

#include<bits/stdc++.h> #define pb push_back using namespace std; typedef long long L; vector<int>vec[100010]; int

原创 poj3486分塊實現

傳送門 區間加和區間查詢 分塊實現(是真慢。。。) #include<cstdio> #include<cmath> #include<iostream> #define ls rt<<1 #define rs rt<<1|1 #

原创 Codeforces Round #609 (Div. 2) E. K Integers

K Integers 題意:給n個數的一個全排列,每次交換相鄰兩個數 求使 數字1-k相鄰且遞增的最小步驟,k(1,n); 思路: 當1-k已經相鄰時,ans即爲1-k的逆序數。 那麼只需逐步算出使1-k這些數相鄰所需的最小步驟

原创 2018 黑龍江省賽A Sequence Game 莫隊+ST表

A Sequence Game 大意:求區間內的最大值與最小值中的數是否都出現過 看max-min+1是否等於區間數字種類數即可 前者預處理ST表 後者可用兩種方法求出 1)莫隊 #include<bits/stdc++.h> u

原创 Divide Points siwei

鏈接 題意:平面上有n個點(互不相同)現要把所有點分成兩部分A,B 並對兩點P,Q之間 Euclidean distance 染色 當點p,q屬於同一部分時 染成黃色 否則染整 藍色 輸出滿足使 所有相同距離的顏色不同的 集合

原创 2016 CCPC長春Sequence II 主席樹 OR 分塊

題目鏈接 求L,R內所有數字第一次出現的下標的中位數 區間第一次出現 即倒着的最後一次出現 所以我們倒着更新一個主席樹 如果位置 I 的數字第一次出現 那麼直接在第I顆樹上的第I個位置加一即可 否則在加完1後 再在該數字的原位置減

原创 Educational Codeforces Round 78 (Rated for Div. 2)D - Segment Tree

D - Segment Tree 題意 : n條線段 當 li<lj<ri<rj 時 i,j之間有一條邊相連。問這n條線段能否構成一棵樹 思路: 樹:無環,任意兩點間都有一個公共祖先,最多n-1條邊 按左端點排序之後發現li<lj

原创 Codeforces Round #612(Div. 2) D. Numbers on Tree 思維

傳送門 題意: 現在有一棵樹 每個點有一個ci和ai ai爲點權,ci代表i的子樹中點權aj <ai 的個數 現在給你這棵樹的形狀和每個點的ci 構造所有點的ai n<2000 思路: ci大於子節點個數時顯然不能構造出解; 假設

原创 Educational Codeforces Round 80 (Rated for Div. 2)ADE

D. Minimax Problem 二分答案,由於m<=8,所以可以把每行對於一個mid的狀態存儲下來, 然後枚舉所有狀態即可 利用二進制存儲信息的思想,並分析題目的特點 ,可以很清晰的想到解法 A. Deadline n,d<

原创 Codeforces Round #619 (Div. 2) E. Nanosoft 前綴和

E. Nanosoft Question: 定義一個logo 形狀顏色如下類推 ,現在有一個關於logo的顏色矩陣 長n寬m 並有q次詢問:r1,c1 r2,c2 直接最大的logo有多大 n,m<=500 q<=1000;

原创 Codeforces Round #630 (Div. 2) E. Height All the Same 思維

鏈接 操作1可以將所有的高度變成0 or 1(像俄羅斯方塊一樣)並且這其中的0和1可以全局互換 操作2和操作1可以移動這些1,並且將相鄰的0 0 -> 1 1 那麼問題就轉換成,放置偶數個位置0,或偶數個位置1 所以當n*m%2

原创 Codeforces Round #556 (Div. 1) B - Three Religions DP

B - Three Religions DP Question: 現有一個主串S 和 三個空串 A,B,C(只含小寫字母)。問每次操作後 S 是否能包含 A B C (在保證 A B C 串內字母順序不變的情況下組成S的一個子序列

原创 Codeforces Round #532 (Div. 2) E. Andrew and Taxi 二分+拓撲序

Andrew and Taxi Question: 給一n個節點m條邊的有向有權圖 現可以改變其中一些邊的方向 總代價是這些邊的最大值,問使該圖無環的最小花費 n,m<1e5 Solution: 由於代價爲所有邊的最大值,想到

原创 Codeforces Round #625 World of Darkraft: Battle for Azathoth

鏈接 Answer : 可以把怪獸看成二維座標上的一些點,每個點有一些權值。 然後對於所有的x=ai(攻擊)的軸上都有m個bi(防禦)那麼對於每一個bi它所能打死的所有怪獸就是當前的軸的左面所有y小於bi的怪獸 所以問題就轉化爲一