It's a Mod, Mod, Mod, Mod World

等差数列整除整数向下取整求和

找的一个巨巨的板子,,,但是不知道怎么证的。。。。。

还是存一下板子吧。。。。

#include <bits/stdc++.h>

using namespace std;
#define ll long long
//a 公差 b 首项 c 除数 n 项数
ll get(ll a,ll b,ll c,ll n){
    if (n<=0) return 0;
    if (n==1) return b/c ;
    ll tmp = 0;
    tmp += a/c*(n-1)*n/2+ b/c*n;
    a = a%c;
    b = b%c;
    if (a==0) return tmp;
    return tmp+get(c,(a*n+b)%c,a,(a*n+b)/c);
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T;ll p,q,n;
    cin>>T;
    while(T--){
        cin>>p>>q>>n;
        cout<<(p*n*(n+1)/2-q*get(p,p,q,n))<<endl;
    }
}


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值