ZUFEOJ 2147 07染色帶謎題

2022-05-12 19:08:21 字數 2114 閱讀 7911

時間限制: 1 sec  記憶體限制: 128 mb

提交: 170  解決: 21

[提交][狀態][討論版][edit] [testdata]

現在給你乙個長為n的染色帶,有m種顏色,標號分別為0,1,2,…,m-1,染色帶初始的顏色為標號0,現在對它進行k次操作,第i次操作,是對染色帶的[li,ri]區間染上第si種顏色(即把這段區間原來的顏色給覆蓋掉),最後問你染色帶進行這麼多次操作後染色帶上有幾種顏色。

輸入包含多組資料,每組資料第一行包含3個正整數分別是n,m,k(0輸出對於每組資料輸出乙個數字代表染色帶上最後有幾種顏色。

2 2 0

2 2 1

0 2 1

3 3 3

0 2 1

1 3 2

2 3 0

113

首先吐槽一下題目,第一句,應該是$n+1$長度的吧。。。直接上了個線段樹區間覆蓋,寫完一直$wa$,對拍去了,發現標程是錯的,資料也是錯的。搞笑的是這題是$2014$年學校校賽的題目,當時資料就是錯的,但是現場有人$ac$。。現在我把資料改正確了,歷史翻案。

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

intn,m,k;

int l[100010],r[100010],s[100010

];int p[100010

],sz;

int t[400010],y[100010

];set

r;int

get(int

x)

return

res;}

void pushdown(int

rt)

void update(int ll,int rr,int col,int l,int r,int

rt)

int m = (l+r)/2

; pushdown(rt);

if(ll<=m) update(ll,rr,col,l,m,2*rt);

if(rr>m) update(ll,rr,col,m+1,r,2*rt+1);}

void dfs(int l,int r,int

rt)

int m = (l+r)/2

; pushdown(rt);

dfs(l,m,

2*rt);

dfs(m+1,r,2*rt+1);}

void build(int l,int r,int

rt)

t[rt]=-1

;

int m = (l+r)/2

; build(l,m,

2*rt);

build(m+1,r,2*rt+1);}

intmain()

if(r.count(0)==0) sz++, p[sz]=0 , r.insert(0

);

if(r.count(n)==0) sz++, p[sz]=n , r.insert(n);

sort(p+1,p+1+sz);

build(

1,sz,1

);

for(int i=1;i<=k;i++) l[i] = get(l[i]), r[i] = get

(r[i]);

for(int i=1;i<=k;i++) update(l[i],r[i],s[i],1,sz,1);

dfs(

1,sz,1

);

int ans=0

;

for(int i=0;i<=100000;i++) ans=ans+y[i];

printf(

"%d\n

",ans);

}return0;

}

zufeoj 回文日期

在日常生活中,通過年 月 日這三個要素可以表示出乙個唯一確定的日期。牛牛習慣用8位數字表示乙個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然 乙個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,乙個日期是回文的,當且僅當表示這個日期的8位數字是回文的。...

zufeoj 掃雷遊戲

掃雷遊戲是一款十分經典的單機小遊戲。在n行m列的雷區中有一些格仔含有地雷 稱之為地雷格 其他格仔不含地雷 稱之為非地雷格 玩家翻開乙個非地雷格時,該格將會出現乙個數字 提示周圍格仔中有多少個是地雷格。遊戲的目標是在不翻出任何地雷格的條件下,找出所有的非地雷格。現在給出n行m列的雷區中的地雷分布,要求...

zufeoj 移動路線

x桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從 左...