問題 G 區間權值

2021-08-29 20:14:04 字數 1382 閱讀 3627

時間限制: 1 sec  記憶體限制: 128 mb

提交: 112  解決: 49

[提交] [狀態] [討論版] [命題人:admin]

題目描述

小bo有n個正整數a1..an,以及乙個權值序列w1…wn,現在他定義

現在他想知道

你只需要輸出答案對109+7取模後的值

輸入第一行乙個正整數n

第二行n個正整數a1..an

第三行n個正整數w1..wn

1≤n≤3×105

1≤ai≤107

1≤wi≤107

輸出輸出答案對109+7取模後的值

樣例輸入

3

1 1 1

1 1 1

樣例輸出

10
方法:因為要將每乙個區間的和加起來再與w相乘,所以可以求出對應的區間和。

ac**

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

#define inf 0x3f3f3f3f

#define rep(i,l,r) for(int i=l;i<=r;i++)

#define lep(i,l,r) for(int i=l;i>=r;i--)

#define ms(arr) memset(arr,0,sizeof(arr))

//priority_queue,greater>q;

const int maxn = (int)3e5 + 5;

const ll mod = 1e9+7;

ll a[maxn];

ll w[maxn];

ll suma[maxn];

ll sumaa[maxn];

int main()

rep(i,1,n)

int start=0,end=n;

sumaa[1]=(suma[end]-suma[start])%mod; //求出區間為1的所有區間的和

start++;

end--;

int j;

for(j=2;j<=(n+1)/2;j++)

for(;j<=n;j++)

sumaa[j]=sumaa[n-j+1]; //區間為n的區間和與區間為1的區間和相等,一次類推

ll ans=0;

rep(i,1,n)

cout<

return 0;

}

區間權值 字首和

時間限制 c c 1秒,其他語言2秒 空間限制 c c 1048576k,其他語言2097152k 64bit io format lld 小 bo 有 n 個正整數 a1.an,以及乙個權值序列 w1 wn,現在他定義 現在他想知道 你只需要輸出答案對 109 7 取模後的值 第一行乙個正整數 n...

動態規劃 帶權值區間排程問題

存在單一資源r,有n個需求,每個需求指定乙個開始時間bi與乙個結束時間ei,在時間區間 bi,ei 內該需求想要占用資源r,資源r一旦被占用則無法被其他需求利用。每個需求i帶有乙個權值vi,代表該需求被滿足之後能夠帶來的價值或者貢獻。如果兩個需求的時間區間不重疊,那麼它們是相容的。帶權值的區間排程問...

問題 G 區間查詢

食堂有n個打飯視窗,現在正到了午飯時間,每個視窗都排了很多的學生,而且每個視窗排隊的人數在不斷的變化。現在問你第i個視窗到第j個視窗一共有多少人在排隊?輸入的第一行是乙個整數t,表示有t組測試資料。每組輸入的第一行是乙個正整數n n 30000 表示食堂有n個視窗。接下來一行輸入n個正整數,第i個正...