首页 > 代码库 > HDU 5086
HDU 5086
http://acm.hdu.edu.cn/showproblem.php?pid=5086
求所有连续区间的数字和
本质是一个乘法原理,当前位置的数字出现次数=这个数之前的数字个数*这个数之后的数字个数(均包括当前数字本身),注意i*(n-i+1)会超int
#include <iostream>#include <cstdio>#include <cstring>#include <set>#include <cmath>using namespace std;typedef __int64 ll;const ll mod=1000000007;int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); ll ans=0; for(int i=1;i<=n;i++){ ll x; scanf("%I64d",&x); ans=(ans+(ll)i*(n-i+1)%mod*x%mod)%mod; } printf("%I64d\n",ans); } return 0;}
HDU 5086
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。