牛客網--26213--小雨的三角形

題目描述:
小雨手上有一個填滿了數字的三角形。這個三角形一共有 n 層,其中第 i層共有 ii個數,且第 1 個數和第 i 個數均爲 i 。其餘的數中,第 j 個數是上一層中第 j-1 個數和第 j 個數的和。小雨想知道這個三角形第 x 層到第 y 層所有數的和,一共有 mm個詢問。
輸入描述:
第一行兩個正整數 n,m,表示這個三角形的層數和詢問個數。
接下來 m 行,每行兩個正整數 x,y,表示一次詢問。
輸出描述:
輸出共 m 行,每行一個整數,表示一組詢問的答案,對 10^9 + 7取模。
輸入:
5 3
1 2
1 5
3 5
輸出:
5
83
78
題意:
題目描述
題解
找規律
代碼:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;

typedef long long ll;
const int maxn = 10000 + 5;
const int mod = 1e9 + 7;
ll f[maxn];
int n,m;

void init(){
    f[1] = 1;
    for(int i = 2; i <= 1000; i ++){
        f[i] = (f[i - 1] * 2 + 2) % mod;
    }
}

int main(){
    init();
    while(scanf("%d%d",&n,&m)!=EOF){
        int a,b;
        while(m --){
            scanf("%d%d",&a,&b);
            ll ans = 0;
            for(int i = a; i <= b; i ++){
                ans += f[i];
                ans %= mod;
            }
            printf("%lld\n",ans);
        }
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章