原创 HDU 3954 Level up(線段樹)

#include <iostream> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> using namespace std;

原创 HDU 4318 Power transmission(最短路變形)

#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <queue> #inclu

原创 HDU 4325 Flowers(線段樹)

線段樹的區間更新和單點查詢。需要注意的是要把區間端點和查詢的點都先讀入並離散化。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm>

原创 HDU 4358 Boring counting(線段樹)

用C++交會棧溢出,而G++不會。 更新和查詢我用的是線段樹,1500+ms,用樹狀數組應該會快一些。 將樹形結構轉換成線性結構後,等價於求指定區間內恰好出現k次的數有多少個。 #include <iostream> #include

原创 HDU 4310 Hero(貪心)

比較簡單的貪心。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int n; s

原创 HDU 4364 Matrix operation(模擬)

矩陣乘法。不過這裏加法被xor取代,乘法有三種情況要分別處理。尤其要注意,矩陣中的數是8位的,所能表示的最大數爲255,所以,左移後要與上255或對256取模。 #include <iostream> #include <cstring>

原创 POJ 2452 Sticks Problem [RMQ+二分]

/* 題意:給你一組數a[n],求滿足a[i] < a[k] < a[j] (i <= k <= j)的最大的j-i。 解法:RMQ + 二分。 枚舉i,利用二分求出a[i]右邊第一個小於a[i]的數的位置k, 再求出[i, k]中最

原创 HDU 2874 Connections between cities [LCA]

題目給出的圖不一定連通,可以虛擬一個根節點。查詢時,若LCA(u, v)爲根節點,則表示u,v不相連;否則,求出最短距離。#include <iostream> #include <cstdio> #include <cstring> #

原创 HDU 4339 Query(線段樹)

Problem Description You are given two strings s1[0..l1], s2[0..l2] and Q - number of queries. Your task is to answer

原创 POJ 1986 Distance Queries [LCA]

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn =

原创 POJ 1470 Closest Common Ancestors [LCA+RMQ]

這題的輸入有點噁心,OLE很多次才過。。。 ST:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector

原创 HDU 4313 Matrix (貪心+並查集)

題意:給你一個有n(2<=n<=100000)個節點的樹,樹中每條邊都有一個權值。然後再給你k(2<=k<=n)個點,表示這些點上有一個機器人。最後讓你刪去一些邊使任意兩個機器人都不能互達,且所刪邊的權值之和要最小。 思路:我最開始想到的

原创 POJ 1330 Nearest Common Ancestors [LCA+RMQ]

LCA的入門題,我用的是ST在線算法和Tarjan離線算法。 ST:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #includ

原创 HDU 4315 Digital root(線段樹)

很不錯的線段樹題。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const in

原创 HDU 4302 Holedox Eating (線段樹)

#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int maxn