牛客 牛牛浇树(差分)
生活随笔
收集整理的這篇文章主要介紹了
牛客 牛牛浇树(差分)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
鏈接:https://ac.nowcoder.com/acm/contest/10323/A
來源:??途W(wǎng)
牛?,F(xiàn)在在花園養(yǎng)了n棵樹,按順序從第1棵到第n棵排列著。
牛牛每天會(huì)按照心情給其中某一個(gè)區(qū)間的樹澆水。
例如如果某一天澆水的區(qū)間為[2,4],就是牛牛在這一天會(huì)給第2棵,第3棵和第4棵樹澆水。
樹被澆水后就會(huì)成長,為了簡化問題,我們假設(shè)在初始時(shí)所有樹的高度為0cm。
每過去一天樹會(huì)自然成長1cm,每次樹被澆水后當(dāng)天會(huì)額外成長1cm。
m天中牛牛每天都都會(huì)選一個(gè)區(qū)間[l,r]對(duì)這個(gè)區(qū)間內(nèi)的樹進(jìn)行澆水,牛牛想知道m(xù)天后有多少棵樹的高度為奇數(shù),你能告訴牛牛嗎?
2. 解題
class Solution { public:/*** 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可* 返回m天后高度為奇數(shù)的樹的數(shù)量* @param n int整型 * @param m int整型 * @param l int整型vector * @param r int整型vector * @return int整型*/int oddnumber(int n, int m, vector<int>& l, vector<int>& r) {// write code herevector<int> h(n+2 , 0);for(int i = 0; i < m; ++i){h[l[i]]++; // 左端點(diǎn)++h[r[i]+1]--; // 右端點(diǎn)+1 的位置 --}vector<int> ans(n, m);//初始化為自然長高高度int sum = 0, count = 0;for(int i = 1; i <= n; ++i){sum += h[i];//前綴和為澆水長得高度ans[i-1] += sum;if(ans[i-1]%2)//高度為奇數(shù)count++;}return count;} };100ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的牛客 牛牛浇树(差分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1744. 你能在你最
- 下一篇: LeetCode 1706. 球会落何处