傳送門
思路:二次求字首和
區間問題轉化為求字首和問題。
相減一定要先加mod再餘mod
第一次;sum[i]-sum[i-1]=t[i];
sum[j]-sum[l-1];
sum[j+1]-sum[l-1];
...sum[r]-sum[l-1];
相加在一起可歸結為
sum[j]+sum[j+1]+sum[j+2]+...sum[r]-(l-r+1)*sum[l-1]
對 sum[j]+sum[j+1]+sum[j+2]+...sum[r] 再求一次字首和
sum2[i]-sum2[i-1]=sum[i];
/*#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long
#define n 100010
#define rep(i,n) for(int i=0;i<(n);i++)
const int maxn = 10;
int a[maxn][maxn], b[maxn][maxn];
*/#include
const
int mod=
1000000007
;long
long t[
100005
], sum[
100005
], sum2[
100005];
using namespace std;
intmain()
cout/cout << cnt << endl;
return0;
}
計蒜客 天上的星星(字首和)
天上星星 在乙個星光摧殘的夜晚,蒜頭君一顆一顆的數這天上的星星。蒜頭君給在天上巧妙的畫了乙個直角座標系,讓所有的星星都分布在第一象。天上有 nn 顆星星,他能知道每一顆星星的座標和亮度。現在,蒜頭君問自己 qq 次,每次他問自己每個矩形區域的星星的亮度和是多少 包含邊界上的星星 輸入格式 第一行輸入...
計蒜客 天上的星星 字首和
在乙個星光摧殘的夜晚,蒜頭君一顆一顆的數這天上的星星。蒜頭君給在天上巧妙的畫了乙個直角座標系,讓所有的星星都分布在第一象。天上有 nn 顆星星,他能知道每一顆星星的座標和亮度。現在,蒜頭君問自己 qq 次,每次他問自己每個矩形區域的星星的亮度和是多少 包含邊界上的星星 輸入格式 第一行輸入乙個整數 ...
計蒜客 打掃教室 差分 字首和
一天蒜頭君被要求打掃 n 間連續的教室 編號從 1 到 n 但是蒜頭君打掃教室有點隨心,想打掃哪間教室就打掃哪間教室,導致最後自己都不知道是否所有的教室都打掃了。現在告訴你蒜頭君打掃了哪些教室,你能告訴蒜頭君他還有多少間教室沒有打掃嗎?第一行輸入兩個整數 n,m 分別表示教室的個數和蒜頭君打掃教室區...