校門外有很多樹
time limit:10000ms memory limit:65536k
total submit:96 accepted:73
case time limit:1000ms
description
校門外有很多樹,有蘋果樹,香蕉樹,有會扔石頭的,有可以吃掉補充體力的……
如今學校決定在某個時刻在某一段種上一種樹,保證任一時刻不會出現兩段相同種類的樹,現有兩個操作:
k=1,讀入l,r表示在l~r之間種上的一種樹
k=2,讀入l,r表示詢問l~r之間能見到多少種樹 (0
input
第一行n,m表示道路總長為n,共有m個操作
接下來m行為m個操作
output
對於每個k=2輸出乙個答案
sample input
5 41 1 3
2 2 5
1 2 4
2 3 5
sample output
12
hint
20%的資料保證,n,m<=100
60%的資料保證,n <=1000,m<=50000
100%的資料保證,n,m<=50000
source
vijos
tree[r].v=tree[tree[r].left].v+tree[tree[r].right].v-左右兒子重複的個數
因此加乙個引數ex記錄當前區間左右兒子重複的個數
如果塗的區間與討論的區間的左右兒子都相交,那麼tree[r].ex++
#include#includeusing namespace std;
const int maxn=50005;
int n,m,tot,a,b,k;
struct wktree[2*maxn];
inline void _read(int &x)
for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0';
if(!sign)x=-x;
}void buildtree(int x,int y)
}void putdown(int r)
void add(int r)
if(tree[r].lazy)putdown(r);
int mid=(tree[r].a+tree[r].b)>>1;
if(a<=mid)add(tree[r].left);
if(b>mid)add(tree[r].right);
if(a<=mid&&b>mid)tree[r].ex++;
}int getnum(int r)
int main()
}
《構建之法》13 17
13章軟體測試.從基本名詞到軟體測試的分類方法,啃完這15頁書,至少對與軟體測試的理解程度不是停留在以前的層次 讓使用者使用,然後提出碰到什麼問題 測試不是那麼簡單就闡述的完全.測試按測試目的分類可分為 功能測試和非功能測試.按測試時機和作用又有 烽火台 和其他不同的測試方法.測試方法有很多,但是目...
NKOI 防守馬克
題目略 我最早其實想的貪心,力量從大到小,從下到上放置奶牛,但是如果有乙隻力量小的奶牛非常重,就矛盾。狀壓dp基礎題,但是開始我一直沒有想到運用列舉頂端的奶牛進行狀態轉移。我發現其實題目中物件增長的方式可以給狀態轉移帶來啟發,比如這裡的奶牛就是乙隻只疊上去的嘛。另外我還發現其實驗證dp是否可行就是看...
南陽 oj Mod 題目1317
時間限制 4000 ms 記憶體限制 65535 kb 難度 2 描述 mod是取餘運算,在程式中用符號 來表示。如3 7 3,7 5 2,0 4 0。ocean用巧妙的方法得到了乙個序列,該序列有 nn 個元素,我們用陣列 aa 來記錄 下標從 00 到 n 1ocean定義f i i a 0 a...