題目描述
n個桶按順序排列,我們用1~n給桶標號。有兩種操作:
1 l r c 區間[l,r]中的每個桶中都放入乙個顏色為c的球 (1≤l,r ≤n,l≤r,0≤c≤60)
2 l r 查詢區間[l,r]的桶中有多少種不同顏色的球 (1≤l,r ≤n,l≤r)
輸入描述:
有多組資料,對於每組資料:
第一行有兩個整數n,m(1≤n,m≤100000)
接下來m行,代表m個操作,格式如題目所示。
輸出描述:
對於每個2號操作,輸出乙個整數,表示查詢的結果。
示例1輸入
10 10
1 1 2 0
1 3 4 1
2 1 4
1 5 6 2
2 1 6
1 7 8 1
2 3 8
1 8 10 3
2 1 10
2 3 8輸出2
3243
分析:線段樹的裸題,這道題主要用到了按位或運算(|),目的是為了統計不同的顏色個數。
**如下:
#include #include #include #include #include #include #include #include #include #include #include using namespace std;
const int maxn=1e5+10;
typedef long long ll;
struct node
}node[maxn*4];
void buildtree(ll i,ll l,ll r)
void push_down(ll i)
}void push_up(ll i)
void add(ll i,ll l,ll r,ll c)
push_down(i);
ll m=node[i].mid();
if(m>=r)
add(i<<1,l,r,c);
else if(m=r)
return qury(i<<1,l,r);
else if(l>m)
return qury(i<<1|1,l,r);
else
return qury(i<<1,l,m)|qury(i<<1|1,m+1,r);
}ll find1(ll x) ///統計顏色的個數
return sum;
}int main()
else
printf("%lld\n",find1(qury(1,l,r)));}}
return 0;
}
2023年湘潭大學程式設計競賽 H統計顏色
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld n個桶按順序排列,我們用1 n給桶標號。有兩種操作 1 l r c 區間 l,r 中的每個桶中都放入乙個顏色為c的球 1 l,r n,l r,0 c 60 2 l r ...
2018湘潭大學 F maze
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 題目描述 小明來到乙個由n x m個格仔組成的迷宮,有些格仔是陷阱,用 表示,小明進入陷阱就會死亡,表示沒有陷阱。小明所在的位置用 s 表示,目的地用 t 表示。小明只...
2023年湘潭大學程式設計競賽
a 時間統計 某個實驗需要統計時間,記錄了實驗開始和結束的時間,計算實驗用了多少秒。第一行輸入乙個整數n,表示樣例個數。接下來每組樣例兩行,表示開始時間和結束時間,格式為xdayhh mm ss,x是乙個整數表示第幾天,0 x 20000,hh表示小時,mm表示分鐘,ss表示秒,保證時間合法,結束時...