P2768 珍珠项链

来源:互联网 发布:西地那非淘宝 编辑:程序博客网 时间:2024/06/11 21:46

题目背景

小L通过泥萌的帮助,成功解决了牛栏的修建问题。奶牛们觉得主人非常厉害,于是再也不敢偷懒,母牛们奋力挤奶,生娃。子子孙孙无穷匮也!小L于是成为了一代富豪!

但是一直困扰小L的就是单身问题!小L经过长久的寻觅,小L终于找到了一个心仪的漂亮妹子。于是,小L打算在520那天给妹子一个惊喜!(虽然小L很节约,但是对妹子还是很阔绰的!)

题目描述

小L决定用K种珍珠为妹子做一串举世无双的珍珠垂饰。珍珠垂饰是由珍珠连接而成的,其长度可以认为就是珍珠垂饰上珍珠的个数。小L现在腰缠万贯,每种珍珠他都拥有N颗。根据将珍珠垂饰打开后珍珠不同的排列顺序可以区别不同种类的项链。现在,小L好奇自己可以组成多少种长度为1至N的不同的珍珠垂饰?当然,为显富有,每串珍珠垂饰都要必须由K种珍珠连成。 答案取模1234567891。

这一定难不倒聪明的你吧!如果你能帮小L解决这个问题,也许他会把最后的资产分给你1/4哦!

输入输出格式

输入格式:
输入包含多组数据。第一行是一个整数T,表示测试数据的个数。每组数据占一行,包含两个整数N和K,用一个空格隔开。

输出格式:
每组数据输出仅一行,包含一个整数,表示项链的种类数。

输入输出样例

输入样例#1: 复制
2
2 1
3 2
输出样例#1: 复制
2
8
说明

40 % :1<= N<= 100000, 0<= K<= 30

100% :T <= 10, 1<= N<= 1000000000, 0<= K<= 30

70%-100%:时限10ms

仔细看题的话,柿子是十分好画的,重点是怎么递推
第一次写的时候写成了求:A(K,K)+A(K+1,K)1^K+A(K+2,K)*2^K+…..A(N,K)(n-k)^k
后来发现这样太暴力了
然后开始想递推式,如果你能想到容斥定理,那么就轻松了,
对于该题而言,可能性只有珠子个数>=k才能成立
所以对于一个种类为i的珠子,
所有可能为(f[i]表示)f[i]:=i^k+i^(k+1)+……..+i^n(等比数列求和即可)
而不满足的情况是所有小于i的f都不满足,但同时对于每一个f[j](i>j)而言有C(i,j)种可能
即f[i]=f[i]-(f[1]*c(i,1)+f[2]*c(i,2)+……+f[i-1]*c(i,i-1));
最后输出f[k]即可
复杂度O(k^2+T)(T懒得算了)

注意:计算当中的所有除法都用逆元代替(自己想i想)
某dalao:快速幂暴力膜,来个递推式就好了嘛

program df;
const p=1234567891;
var i,j,n,m,x,y,z,k,t:longint;
c,f:array[0..100000] of int64;
a:array[0..30,0..30] of int64;
function ksm(x,y:int64):int64;
var i,j:int64;
begin
i:=x; j:=1;
while y>0 do
begin
if y and 1=1 then j:=((j mod p)*(i mod p)) mod p;
i:=((i mod p)*(i mod p)) mod p;
y:=y>>1;
end;
exit(j mod p);
end;

procedure check(n,m:longint);
var ans:int64;
i:longint;
begin
if n=m then begin a[n,m]:=1; exit; end;
ans:=1;
for i:=m+1 to n do
ans:=(ans*i) mod p;
for i:=2 to n-m do
ans:=(ans*c[i]) mod p;
a[n,m]:=ans;
end;

begin

for i:=1 to 30 do
c[i]:=ksm(i,p-2);

for i:=1 to 30 do
for j:=1 to i do
check(i,j);

readln(t);
for z:=1 to t do
begin
readln(n,k);
f[0]:=0; f[1]:=n-k+1;
for i:=2 to k do
begin
f[i]:=((ksm(i,n+1)-ksm(i,k))*c[i-1]) mod p;
for j:=1 to i-1 do
f[i]:=(f[i]-((f[j]*a[i,j]) mod p)+p) mod p;
end;
writeln(f[k]);
end;

end.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 诸天仙神热搜:主神老婆竟是魔尊 团宠小福妻又娇又软 替嫁医妃有空间 重生之农门贵夫 野性偏爱 嫁给病弱太子后我躺赢了 咸鱼娘娘一心只想翻墙 救命!破产后高冷总裁处处招惹我 冷酷将军每天都想要贴贴 何以赎光 甜腻!病娇傅少竟然暗恋我! 天价萌妻:偏执帝少心尖宠 有读心术后,战神把娘子宠上天 穿书后,我刷错了反派的好感度 摄政王怀里的团宠美人娇又软 满级千金不想掉马 女帝她就是个卖药的! 华娱激荡年代 她来看我的演唱会 快穿:娇养反派大佬做替身 不努力种田就要和相公继承皇位了 穿书末世之我是金手指 转生恶少后的魔幻日常 穿书后我成了反派男二的铁血妈粉 带着超市重返年代 新婚夜,我被冷冰冰的王爷读心了 修仙女配拿了反派剧本 影后的假面童话 克死前夫后我成了心软的神 新婚夜,我治好了失明太子的隐疾 沦陷野玫瑰 完球!我的崽居然是反派 重生后她被憨憨相公娇宠了 师祖回归,徒弟各个是疯批大佬 植物人老公苏醒后,她只想逃 他怎么可能是魔尊 农家小团宠:带着空间撩大佬 快穿做个好婆婆 医路芳华 满级真千金:一品女法医 惊!举重妖精被电竞奶狗缠上了