教室中的座位
time limit:10000ms memory limit:65536k
total submit:78 accepted:7
description
教室中座位的數目有多有少,並不總是相同。每到考試的時候就會出現有些教室有多餘的座位的情況,因為考試期間這些多餘的座位也不能讓別人使用。這實在是一種浪費。要是這些座位能夠自由移動該多好啊!雖然現實中,這個想法無法實現,可是不妨礙我們在這裡臆想一下!
為了簡化問題,我們假設所有的教室在同一層樓上。假設這一層樓被分成了乙個個方格(行數和列數都不超過1000),每個方格是一間教室。開始時,每間教室都有1個座位。然後,我們可以對這些教室的座位進行處理:給某間教室新增座位,從某間教室搬走座位,從一間教室向另一間教室轉移座位,檢視某間教室的座位數。
input
輸入的第一行是測試用例個數t (1 ≤ t ≤ 10)。
對於每個測試用例,第一行是整數q (1 < q < 100,000), 後面緊跟 q 行,每行是乙個處理操作。共有4種操作: a x y m 表示給位於(x, y)的教室新增m個座位; d x y m 表示從位於(x, y)的教室搬走m個座位,如果該教室的座位數不足,則搬走其所有座位; m x1 y1 x2 y2 m表示從位於(x1, y1)的教室向位於(x2, y2)的教室轉移m個座位,如果位於(x1, y1)的教室中的座位數不足m個,則搬走其所有座位;s x1 y1 x2 y2表示查詢以(x1, y1) 與(x2, y2)這兩個點確定的矩形範圍內的教室中的座位總數目。 0 ≤ x1, y1, x2, y2, x, y < 1000,0 ≤ m < 100.
output
對於每個測試用例, 輸出 "case x:" x是測試用例的序號.
對於每個查詢操作輸出查詢結果。
sample input
23s 1 1 2 2
a 1 1 3
s 1 1 1 1
4s 1 1 1 1
d 1 1 2
s 1 1 1 2
m 1 1 2 2 100
sample output
case 1:44case 2:
11
這題花了好多時間。。。嘗試了好幾種方法都沒能ac。。
比如一維線段樹,樹狀陣列這兩種方法我反正沒能ac。。可能是這兩種方法掌握的不好。。所以沒能找到ac的辦法。。
最後查資料。。原來還有其他的線段樹,可以用二維線段樹的。。
最後套用某個大牛的二維線段樹模版,終於ac!
下面是ac**:
#includeusing namespace std;
# define hmax 3005
# define amax 3005
struct sub_tree
;struct main_tree
h[hmax];
int num;
void sub_bulid(int l,int r,int la,int ra,int t1,int t)
void bulid(int l,int r,int la,int ra,int t)
void sub_insert(int a,int l,int t1,int t)
else
if(h[t].a[t1].la == h[t].a[t1].ra) return ;
if(a<=h[t].a[2*t1].ra) sub_insert(a,l,2*t1,t);
else sub_insert(a,l,2*t1+1,t);
}void insert(int h,int a,int l,int t)
int sub_query(int a1,int a2,int t1,int t)
}void query(int h1,int h2,int a1,int a2,int t)
if(h2<=h[2*t].r) query(h1,h2,a1,a2,2*t);
else if(h1>=h[2*t+1].l) query(h1,h2,a1,a2,2*t+1);
else }
void solvea()
void solved()
void solvem()
void solves()
int main()
{// freopen("g:\\text.txt","r",stdin);
int n,i,t,k=0;
cin>>t;
while(t--)
{ bulid(0,1000,0,1000,1);
scanf("%d",&n);
printf("case %d:\n",++k);
for(i=0;i
女王的教室
唔該你地醒下啦 真矢的口頭禪 昨晚看完電視劇集 女王的教室 之後,我就有在blog中寫一寫關於我的看法的衝動 其實這部連續劇,我覺得最精彩的是在前期和中間.一開始的時候,我覺得為什麼真矢會這樣對待 和美 是不是真矢有問題,她的教學手法是否過於嚴厲 偏激 片段一 成績好的可以提前放學,可以有小小的好處...
Problem 八中教室的燈
time limit 10 sec memory limit 128 mb 八中一共有被用m條雙向道路連線的n個教室 1 n,m 3000 為了關閉整個八中,master wen 計畫每一次關閉掉乙個教室。當乙個教室被關閉了,所有的連線到這個教室的道路都會被關閉,而且再也不能夠被使用。master ...
SQL中關於換座位的問題
小美是一所中學的資訊科技老師,她有一張 seat 座位表,平時用來儲存學生名字和與他們相對應的座位 id。其中縱列的 id 是連續遞增的 小美想改變相鄰倆學生的座位。你能不能幫她寫乙個 sql query 來輸出小美想要的結果呢?示例 假如資料輸入的是上表,則輸出結果如下 注意 如果學生人數是奇數,...