这道题考察的实际就是一个简单的前缀和问题。值的注意的还是取模的问题。两个数取模,以防万一,出现对负数取模的问题 可以先加上mod然后再对mod取模。
能long long就不int
#include <algorithm> #include <iostream> using namespace std; const int maxlen = 1e6 + 10; const int mod = 10007; long long ar[maxlen]; long long prefix[maxlen]; int main(){ int n,q,l,r,i,j,k; prefix[i]=0; long long ans=0; while(~scanf("%d %d",&n,&q)){ for(i=1;i<=n;i++){ scanf("%lld",&ar[i]); prefix[i]=ar[i]+prefix[i-1]; } while(q--){ scanf("%d %d",&l,&r); ans=(prefix[r] - prefix[l] + ar[l]) % mod; printf("%lld\n",ans); } } return 0; }
原文地址:https://www.cnblogs.com/visper/p/10100068.html
时间: 2024-10-04 12:18:25