CZOI DAY1-找座位

 原题链接

这一题自己做的瞎蒙出了一个n-1(n= k),\frac{n+1}{k-1} (n\neq k) 

这个瞎蒙的结论与正确结论满类似的(bushi,正确的结论是\frac{(n+1)(k-1)}{(k-1)}.

至于转成逆元,这一题没有必要去打线性的复杂度(实际上是因为自己真的不会),我们直接用快速幂求逆元就可以了。

若整数 b,m 互质,并且对于任意的整数 a,如果满足 b|a,则存在一个整数 x,使得a/b\equiv a \times x(mod m),则称 x 为 b 的模 m 乘法逆元,记为 b^{-1}(mod m)
b 存在乘法逆元的充要条件是 b 与模数 m 互质。当模数 m 为质数时,b^{m-2} 即为 b 的乘法逆元。——选自Acwing 876. 快速幂求逆元

而显然易见,998244353为质数,因此可直接采用快速幂求逆元,处理一个询问的复杂度为O(\log mod)

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL mod=998244353;
LL quick_power(LL a,LL b)
{
	LL res=1;
	while(b)
	{
		if(b&1)res=res*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return res;
}
int main()
{
	freopen("seat.in","r",stdin);
	freopen("seat.out","w",stdout);
	int t;
	scanf("%d",&t);
	while(t--)
	{
		LL n,k;
		scanf("%lld%lld",&n,&k);
		printf("%lld\n",(n+1)*(k-1)%mod*quick_power(k+1,mod-2)%mod);
	}
	return 0;
 } 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值