J-Super Sum

题目大意就是给定N个三元组<a,b,c>求Σ(a1^k1*a2^k2*...*ai^ki*..an^kn)(bi<=ki<=ci)

唉。其实题目本身不难的,怪我不知道当时怎么想的。。。本来观察式子很容易能得出结论:

比如<5,2,3>,<2,1,4>,<3,2,2>这组:

  5^2*2^1*3^2+5^2*2^2*3^2+5^2*2^3*3^2+5^2*2^4*^32=5^2*(2^1+2^2+2^3+2^4)*3^2;

  5^3*2^1*3^2+5^3*2^2*3^2+5^3*2^3*3^2+5^3*2^4*^32=5^3*(2^1+2^2+2^3+2^4)*3^2;

  =(5^2+5^3)*(2^1+2^2+2^3+2^4)*3^2;

很明显啊!就行对应三元组的等比数列相乘啊!

用组合的角度看也是啊,那几个式子不就相当于最后这个式子拆开再相加吗!

到这里基本就已经解决问题了。。。。。。。。。唯一需要注意的就是等比数列相乘时有除法,求模的时候要把分母转化成它的逆元。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod=1e9+; ll qpow(ll a,ll b)//快速幂
{
ll r=;
while(b)
{
if(b&) r=r*a%mod;
b>>=;
a=a*a%mod;
}
return r;
} ll inv(ll a)//费马小定理求逆元
{
return qpow(a,mod-);
} int main()
{
int T;
cin>>T;
for (int cas=;cas<=T;cas++)
{
int n;
cin>>n;
ll ans=;
for (int i=;i<=n;i++)
{
ll a,b,c;
cin>>a>>b>>c;
if(a==){//公比为1单独处理
ans=(ans%mod*(c-b+)%mod)%mod;
}
else
{
ans=(ans%mod*(qpow(a,b)%mod*(qpow(a,c-b+)-)%mod*inv(a-)%mod)%mod)%mod;
}
}
cout<<"Case #"<<cas<<": ";
cout<<ans<<endl;
}
return ;
}

最新文章

  1. perl
  2. 运行时报错:java.net.BindException: Address already in use: JVM_Bind &lt;null&gt;:8080 (或8009或8005)
  3. DB2 license过期的问题
  4. HDU 3605:Escape(最大流+状态压缩)
  5. java线程(1)--概念基础
  6. 新版Microsoft Azure Web管理控制台 - Microsoft Azure New Portal - (1)
  7. zju(9)LCD显示实验
  8. python set集合操作
  9. jquery层居中,点击小图查看大图,弹出层居中代码,顶部层固定不动,滚动条滚动情况
  10. 整理了一份React-Native学习指南
  11. javascript 中的this
  12. SQLSERVER 远程登录18456错误
  13. lamp环境搭建经验总结
  14. Jsoup+FastJson制作新闻数据接口-Demo
  15. 【HDU4947】GCD Array (莫比乌斯反演+树状数组)
  16. 页面注册系统--使用forms表单结合ajax
  17. sum of powers
  18. 软件测试 —— Bug
  19. 2018-2019-20172329 《Java软件结构与数据结构》第二周学习总结
  20. WAMP配置httpd.conf允许外部访问

热门文章

  1. Redis源码解析:11RDB持久化
  2. pc端样式重置以及常用样式规范class
  3. CSP-S模拟 - 20190916
  4. 作业-[luogu4396][AHOI2013]-莫队
  5. eclipse配置mybatis xml文件自动提示
  6. mysql查询 包含某个字符的记录
  7. 从默认的index.jsp页面跳转或转发到其他页面
  8. 命令模式(Command、Recevier、Invoker)(电脑开机命令)
  9. Java中用JXL导出Excel代码详解
  10. 【CodeVS】2750 心系南方灾区