按照題意暴力模擬即可

#include<bits/stdc++.h>
using namespace std;
int m;
typedef long long ll;
ll a1,q,n;
#define mo 1000000007ll
ll qp(ll x,ll y){
	ll r=1;
	while(y){
		if(y&1)r=r*x%mo;
		x=x*x%mo;
		y>>=1;
	}
	return r;
}
int main(){
	scanf("%d",&m);
	while(m--){
		scanf("%lld%lld%lld",&a1,&q,&n);
		if(q==1){
			n%=mo;
			printf("%lld\n",a1*n%mo);
		}
		else{
			ll up=a1*(1-qp(q,n)+mo)%mo;
			ll dw=qp((1-q+mo)%mo,mo-2);
			printf("%lld\n",up*dw%mo);
		}
	}
}

jzoj4229的更多相关文章

随机推荐

  1. XAML中用一字符即可展示漂亮的图型

    XAML中用一字符即可展示漂亮的图型 例如:Symbol Icon: People http://www.geekchamp.com/icon-explorer/action-icons/icon?c ...

  2. Django框架之models和不依赖Qquery的ajax请求

    一.models表字段 1)class表字段的创建 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) ...

  3. java equals重写

    @Override    public boolean equals(Object obj) {        if(this == obj) {            return true;   ...

  4. git只合并某一个分支的某个commit

    第一种情况:只合并一个commit git checkout develop-hbb git cherry-pick 7c32be61 以上,7c32be61是develop上的一个fix bug的c ...

  5. C++STL 迭代器

    迭代器类别: 输入迭代器(只读迭代器).输出迭代器(只写迭代器).正向迭代器.双向迭代器.随机访问迭代器 逆向遍历 for(vector<int>::reverse_iterator ri ...

  6. 2-具体学习Github---init add commit log diff

    1.安装: 首先找到git的官网,内部有下载链接. 也可以用下面的,我的是win7的64位系统: 可以在此处下载:Git-2.13.0-64-bit.exe链接:http://pan.baidu.co ...

  7. java中的标识符、关键字、保留字

    Java中关键字(keyword)和保留字(reservedword) Keyword :Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等. Reserv ...

  8. font-style字体设置

    用到一些字体找起来很麻烦,扒了一些 未测试 HTML,CSS,font-family:中文字体的英文名称 宋体 SimSun黑体 SimHei微软雅黑 Microsoft YaHei微软正黑体 Mic ...

  9. BT1120中的串行传输

    BT1120不仅支持并行传输,也定义了并行传输.详细说明可以看ITU-R BT1120,在这里只做概述和总结.

  10. 解决UITableView上的cell的重用

    1.通过为每个cell指定不同的重用标识符(reuseIdentifier)来解决 //        static NSString *rankCellIndefier = @"rankC ...