一本通1658超能粒子炮 · 改

编程入门 行业动态 更新时间:2024-10-26 02:37:12

<a href=https://www.elefans.com/category/jswz/34/1768840.html style=一本通1658超能粒子炮 · 改"/>

一本通1658超能粒子炮 · 改

1658:超能粒子炮 · 改

时间限制: 1000 ms         内存限制: 524288 KB

【题目描述】

曾经发明了脑洞治疗仪与超能粒子炮的发明家 SHTSC 又公开了他的新发明:超能粒子炮・改——一种可以发射威力更加强大的粒子流的神秘装置。

超能粒子炮・改相比超能粒子炮,在威力上有了本质的提升。它有两个参数 n、k,它会向每个编号为 0 到 k(包含两端)的位置 ii 发射威力为Cinmod2333 的粒子流。

现在 SHTSC 给出了他的超能粒子炮・改的参数,让你求出其发射的粒子流的威力之和除以 2333 所得的余数。

【输入】

第一行一个整数 t 表示数据组数。

之后 t 行,每行两个整数 n、k,含义如题面描述。

【输出】

t 行,每行一个整数,表示其粒子流的威力之和模 2333 的值。

【输入样例】

3
5 5
10 7
1145 14

【输出样例】

32
968
763

【提示】

 

sol:想了一会以后感觉非常不可做,于是翻题解去了。。

一起膜拜这位大佬。。。

掏出他的过程

设p=2333, a=k/p, b=k mod p,那么有:

Ps:最后一行第一个f(n/p,k/p)应该改为f(n/p,k/p-1)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{ll s=0;bool f=0;char ch=' ';while(!isdigit(ch)){f|=(ch=='-'); ch=getchar();}while(isdigit(ch)){s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0){putchar('-'); x=-x;}if(x<10){putchar(x+'0'); return;}write(x/10);putchar((x%10)+'0');return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const ll Mod=2333;
const int N=2400;
int T;
ll C[N][N],F[N][N];
inline ll Lucas(ll n,ll m)
{if(n<m) return 0;if(n<Mod) return C[n][m];return Lucas(n%Mod,m%Mod)*Lucas(n/Mod,m/Mod)%Mod;
}
inline ll Calc(ll n,ll k)
{if(k<Mod) return F[n%Mod][k];return (F[n%Mod][Mod-1]*Calc(n/Mod,k/Mod-1)+Lucas(n/Mod,k/Mod)*Calc(n%Mod,k%Mod))%Mod;
}
int main()
{R(T);ll i,j,n,k;for(i=0;i<=Mod;i++){C[i][0]=F[i][0]=1;for(j=1;j<=i;j++) C[i][j]=(C[i-1][j]+C[i-1][j-1])%Mod;for(j=1;j<=Mod;j++) F[i][j]=(F[i][j-1]+C[i][j])%Mod;}while(T--){n=read(); k=read();Wl(Calc(n,k));}return 0;
}
/*
input
4
5 5
10 7
1145 14
2333233323332333 2333
output
32
968
763
845
*/
View Code

 

转载于:.html

更多推荐

一本通1658超能粒子炮 · 改

本文发布于:2024-02-26 23:17:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704344.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:一本   超能   粒子

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!