北京資訊科技大學第十一屆程式設計競賽(重現賽)I

2022-08-18 18:09:14 字數 1141 閱讀 8970

andy在他的莊園裡種了n棵樹,排列成一排,標號為1到n。最開始的時候n棵樹的高度都是0,也就是種子剛剛被埋下,樹還沒有長出來。

andy會一種魔法,他每使用一次魔法,就可以讓樹標號落在連續區間[l, r]裡的樹的高度增加1。他可以使用q次這種魔法,然後他很好奇,在使用了q次魔法之後,他的所有樹的高度分別是多少呢?

第一行輸入兩個整數n,q。(1<= n, q <= 1e5)

接下來q行,每行輸入兩個整數l, r(l <= r),表示andy讓標號落在區間[l, r]裡的數高度都加1

輸出有一行n個整數,每個整數後面有空格。輸出末尾沒有換行

第i個數表示第i棵樹的高度

示例1

複製

10 3

1 32 4

3 3

複製

1 2 3 1 0 0 0 0 0 0

andy種了10棵樹

第一次使用魔法使得1、2、3棵樹的高度增加1,

所有樹的高度為

1 1 1 0 0 0 0 0 0 0

第二次使用魔法使得2、3、4棵樹的高度增加1,

所有樹的高度為

1 2 2 1 0 0 0 0 0 0

第三次使用魔法使得第3棵樹的高度增加1

所有樹的高度為

1 2 3 1 0 0 0 0 0 0

差分思想,建立兩個陣列,乙個陣列進行相關操作:在區間l,r中,l位置上加1,r+1位置上-1;另乙個記錄字首和,字首和陣列即為所求陣列

#includetypedef 

long

long

ll;using

namespace

std;

const

int maxn=2e5+7

;int

main()

,b[maxn]=;

while(q--)

//cout<<"a"for(int i=1;i<=n;i++)

//cout];

for(int i=2;i<=n;i++)

b[i]=a[i]+b[i-1

];

//cout<<"b"cout

<"";

return0;

}

北京資訊科技大學第十一屆程式設計競賽(重現賽)H

andy要去市場買n件貨物,每件貨物的 為ai。商家為了吸引顧客,給每個買n件貨物的顧客乙個折扣清單,清單上有n個小於1的小數bj表示折扣。對於每個折扣bj,由使用者自行決定用它使哪個貨物的 變成bj ai,並且只能用一次。andy想讓你幫他算一下他最少的花費。先輸入乙個正整數t,代表樣例的組數。1...

北京資訊科技大學第十一屆程式設計競賽(重現賽)B

kotori最近迷上了擺氣球的遊戲。她一共有n種氣球,每種氣球有無數個。她要拿出若干個氣球擺成一排。但是,由於氣球被施放了魔法,同樣種類的氣球如果相鄰會發生 因此若兩個相鄰的氣球種類相同被視為不合法的。kotori想知道,擺成一排m個一共有多少種不同的方案?由於該數可能過大,只需要輸出其對109取模...

福州大學第十一屆程式設計競賽

problem a 大王叫我來巡山吶 題意 第一天是星期一,求n天中有多少個星期六或者星期天 水題,直接求 include include include include include includeusing namespace std int main return 0 problem b 防...