g - 梔子花開
time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
practice
fzu 1921
description
這是乙個梔子花開的季節,也是乙個離別的季節,四年一千多個日日夜夜,那校園的角角落落,留下了我們沉思的身影;那上百次的成績排名表,印證了我們深深淺淺不斷進步的軌跡,但是這些進步都離不開老師的諄諄教誨。
作為計算機系的學生,演算法與資料結構是必修的主幹課程,因此課程的每個老師都很關心每個學生的學習情況,每天下課老師都會給某個學生進行課外輔導。首先,老師會給每個學生乙個能力評定分數,如果有學生要求老師給他輔導,那老師就會專門給該同學進行課外輔導,如果沒有學生要求,老師就會給評定分數最低的同學課外輔導。老師給學生輔導後,學生的能力都會有所增長,然而不同的學生增長的情況都不同。老師想知道為學生課外輔導若干天後,全班的最低分學生的編號和分數。
input
首先第一行為t,表示有t組資料。接下來為每組資料的結構:
第一行有乙個數字n,表示有n個學生,編號從1到n。(1 <= n <= 10000)。
接下來一行有n個數,分別是編號從1到n的學生的初始能力水平xi,(1 <= xi
<= 1000)。
接下來有一行有乙個數m表示老師給學生課外輔導了m天(1 <= m <= 100000)。
接下來m行,每行兩個數(ai bi),表示老師在第i天給編號為ai同學補課,編號為ai的同學能力提高了bi(0 <= ai
<= n,1 <= bi
<= 1000)。如果ai為0,則表示老師今天給能力最差的學生輔導。如果最低分同時有多個學生,就給編號小的學生補課。
output
對於每組資料輸出一行先輸出組數(從1開始),接著最後輸出經過m天後,全班的最低分學生的編號和分數。
sample input
1310 20 30
30 100
3 10
0 40
sample output
case 1: 3 40#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
const int maxn = 11111;
int num[maxn<<2];
int score[maxn<<2];
void pushup(int rt)
void build(int l,int r,int rt)
int m = (l+r)>>1;
build(lson);
build(rson);
pushup(rt);
}void update(int a,int b,int l,int r,int rt)
int m = (l+r)>>1;
if(a <= m)
else
pushup(rt);
}//int query()
int main()
update(a,b,1,n,1);
}printf("case %d: %d %d\n",cas,num[1],score[1]);
} }return 0;
}
線段樹單點更新
hdu 1166 單點更新,求區間和 第一次寫線段樹,照著大神的抄了一遍 include include include define max 50100 define mid l r 1 define lson l,m,rt 1 define rson m 1,r,rt 1 1 using nam...
線段樹(單點更新)
1.hdu 1166 敵兵布陣 單點更新,區間求和,最裸的線段樹 include include include using namespace std define maxn 50010 define lson l,m,rt 1 define rson m 1,r,rt 1 1 struct tr...
線段樹單點更新 求和
第一行乙個整數t,表示有t組資料。每組資料第一行乙個正整數n n 50000 表示敵人有n個工兵營地,接下來有n個正整數,第i個正整數ai代表第i個工兵營地里開始時有ai個人 1 ai 50 接下來每行有一條命令,命令有4種形式 1 add i j,i和j為正整數,表示第i個營地增加j個人 j不超過...