計蒜客 打掃教室 差分 字首和

2021-09-12 23:01:53 字數 944 閱讀 1708

一天蒜頭君被要求打掃 n 間連續的教室(編號從 1 到 n),但是蒜頭君打掃教室有點隨心,想打掃哪間教室就打掃哪間教室,導致最後自己都不知道是否所有的教室都打掃了。

現在告訴你蒜頭君打掃了哪些教室,你能告訴蒜頭君他還有多少間教室沒有打掃嗎?

第一行輸入兩個整數 n,m 分別表示教室的個數和蒜頭君打掃教室區間段的個數。

接下來 m 行,每行有兩個整數 l, r,表示蒜頭君打掃了 [l, r] 區間的教室。

輸出乙個整數,表示蒜頭君還有多少間教室沒有打掃。

對於 50% 的資料:1 ≤ n, m ≤1 0^3。

對於 100% 的資料:1 ≤ n, m≤ 10^6, 1≤ l ≤ r ≤ n。

樣例輸入複製

10 3

1 53 7

9 10

樣例輸出複製

1
思路:

做的時候還不會差分,用暴力o(n^2)拿了50%的分

後來才知道用差分優化,o(n)的複雜度

**:

#includeusing namespace std;

int a[1000005];//多開一位

int main()

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

} cout << sum << endl;

return 0;

}

貼一下暴力做法:

#includeusing namespace std;

int a[1000005];

int sum;

int main()

}for(int i = 1; i <= n; i++)

}cout << sum << endl;

return 0;

}

計蒜客 打掃教室 延遲標記

題目鏈結 題解 每次輸入如果都迴圈l到r去打標記打掃過教室的話,時間複雜度是n 2,肯定是會超時的。所以肯定有什麼技巧可以只在l,r處打標記,最後統計的時候能夠把l r中間的統計上,因為以前學樹狀陣列的時候學到過一種叫延遲標記的操作,所以不難想到每次在用left和right陣列統計每個位置,區間左邊...

計蒜客 天上的星星(字首和)

天上星星 在乙個星光摧殘的夜晚,蒜頭君一顆一顆的數這天上的星星。蒜頭君給在天上巧妙的畫了乙個直角座標系,讓所有的星星都分布在第一象。天上有 nn 顆星星,他能知道每一顆星星的座標和亮度。現在,蒜頭君問自己 qq 次,每次他問自己每個矩形區域的星星的亮度和是多少 包含邊界上的星星 輸入格式 第一行輸入...

計蒜客 天上的星星 字首和

在乙個星光摧殘的夜晚,蒜頭君一顆一顆的數這天上的星星。蒜頭君給在天上巧妙的畫了乙個直角座標系,讓所有的星星都分布在第一象。天上有 nn 顆星星,他能知道每一顆星星的座標和亮度。現在,蒜頭君問自己 qq 次,每次他問自己每個矩形區域的星星的亮度和是多少 包含邊界上的星星 輸入格式 第一行輸入乙個整數 ...