nyoj 600 花兒朵朵

2022-08-29 16:00:32 字數 1434 閱讀 9870

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:5

描述春天到了,花兒朵朵盛開,hrdv是一座大花園的主人,在他的花園裡種著許多種鮮花,每當這個時候,就會有一大群遊客來他的花園欣賞漂亮的花朵,遊客們總是會詢問,某個時間有多少種花兒同時在盛開著?hrdv雖然知道每種花兒的開花時間段,但是他不能很快的答出遊客的問題,你能編寫乙個程式幫助他嗎?

輸入第一行有個整數t,表示有t組測試資料,每組測試資料第一行為兩個整數n,m(0輸出

對於每次遊客的詢問,輸出乙個整數在單獨的一行,表示這個時間盛開的花有多少種。

樣例輸入

2

1 15 10

42 3

1 44 814

6

樣例輸出

012

1

上傳者

tc_胡仁東

1

//本題的關鍵是離散化,不然陣列的空間不能開那麼大,接下來運用樹狀陣列來儲存,查詢,問題便可迎刃而解

23 #include 4 #include 5 #include 6

using

namespace

std;

7const

int max = 300010;8

//測試資料有點水,將 max 改為100010 也能過

9 typedef struct

node

10node;

14node s[max];

15int

a[max],c[max];

1617

int cmp(const

void *a,const

void *b)

1821

22int lowbit(int

i)23

2627

void add(int i,int

value)

2834}35

36int sum(int

i)37

44return

t;45}46

47int

main()

4862 qsort(s,total,sizeof(s[0

]),cmp);

63 count = 1;a[s[0].id]=count;

64for(i=1;i//

大數變小,建立成對映關係

6571

for(i=0;i2;i+=2)//

更新樹狀陣列結點資訊(插線取點法)

7276

for(i=n*2;i)

77 printf("

%d\n

",sum(a[i]));78}

79return0;

80}81//

a樹狀陣列 + 離散化

樹狀陣列 + 離散化

nyoj60誰獲得了最高獎學金

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 某校的慣例是在每學期的期末考試之後發放獎學金。發放的獎學金共有五種,獲取的條件各自不同 2 五四獎學金,每人4000元,期末平均成績高於85分 85 並且班級評議成績高於80分 80 的學生均可獲得 3 成績優秀獎,每人2000...

NYOJ 60誰獲得了最高獎學金

描述 某校的慣例是在每學期的期末考試之後發放獎學金。發放的獎學金共有五種,獲取的條件各自不同 2 五四獎學金,每人4000元,期末平均成績高於85分 85 並且班級評議成績高於80分 80 的學生均可獲得 3 成績優秀獎,每人2000元,期末平均成績高於90分 90 的學生均可獲得 4 西部獎學金,...

nyoj 60 誰獲得了最高獎學金

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 某校的慣例是在每學期的期末考試之後發放獎學金。發放的獎學金共有五種,獲取的條件各自不同 2 五四獎學金,每人4000元,期末平均成績高於85分 85 並且班級評議成績高於80分 80 的學生均可獲得 3 成績優秀獎,每人2000...