首页 > 其他分享 >洛谷 P8557 炼金术 题解

洛谷 P8557 炼金术 题解

时间:2022-10-03 19:12:03浏览次数:47  
标签:10 洛谷 int 题解 return 熔炉 ksm P8557 binom

题目大意

给定 \(n\) 种金属,放进 \(k\) 个熔炉,要求最终每种金属都要能从熔炉里拿出来,求熔炉炼金的方案数对 \(998244353\) 取模。

分析

从金属角度考虑。

不难发现对于每一种金属因为一定在某一熔炉中被炼金,所以其一共有 \(\binom{k}{1}+\binom{k}{2}+\binom{k}{3}+...+\binom{k}{k}=2^k-1\) 种放入熔炉的方法。

对于每一种金属都有这么多种方法,乘法原理乘起来即可。因此答案是 \((2^k-1)^n\)。

实现

由于 \(2^k\operatorname{mod}998244353\not=0\),因此不用担心 \(2^k-1\) 出现负数的情况,直接大胆的使用快速幂将其算出来即可。

#define int long long
inline int read(){
	int s=0,f=1;char c=getchar();
	for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
	for(;isdigit(c);c=getchar()) s=s*10+c-'0';
	return s*f;
}
inline void write(int x){
	if(x<0) putchar('-'),x=-x;
	if(x>=10) write(x/10);
	putchar('0'+x%10);
}
const int MOD=998244353;
inline int ksm(int x,int y){
	if(y==0) return 1;
	else if(y%2==1) return x*ksm(x,y-1)%MOD;
	else{
		int tmp=ksm(x,y/2)%MOD;
		return tmp*tmp%MOD;
	}
}
int n,k;
//ans: (2^k-1)^n
signed main()
{
	n=read(),k=read();
	write(ksm(ksm(2,k)-1,n)),puts("");
	return 0;
}

标签:10,洛谷,int,题解,return,熔炉,ksm,P8557,binom
From: https://www.cnblogs.com/AllWeKnow/p/16751035.html

相关文章

  • 2019上半年(上午)网络工程师试题解析
    2019上半年(上午)网络工程师试题解析1.计算机执行指令的过程中,需要由( )产生每条指令的操作信号,并将信号送往相应的部件进行处理,以完成指定的操作。A.CPU的控制器 B.CPU的......
  • 【合集】AtCoder 比赛题解
    PartAABCABC266(A-Ex)ABC267(A-G)ABC268(A-D)ABC269(A-F)ABC270(D-E)ABC271(C-F)PartBARCARC148(C)......
  • CF1394C 题解
    传送门题意太长不说了。题解因为两个字符串相似的充要条件是任意重排,故可以不考虑\(B\)与\(N\)的相对顺序,只需记录各自的数量。以二者的数量建立坐标系,则一个字符......
  • 洛谷 P3388 【模板】割点(割顶)
    题目链接:https://www.luogu.com.cn/problem/P3388 【模板】割点(割顶)题目背景割点题目描述给出一个$n$个点,$m$条边的无向图,求图的割点。输入格式第一行输入两个......
  • 2020-2021 Winter Petrozavodsk Camp, Belarusian SU Contest (XXI Open Cup, Grand P
    AC题目列表C.BraveSeekersofUnicornsD.BankSecurityUnificationG.BiologicalSoftwareUtilitiesI.BinarySupersonicUtahraptorsJ.Bur......
  • springboot前后端分离,传递到前端的Long类型出现精度丢失的问题解决
    问题在后端,我的id是Long类型,但是我将他传到前端时,比如说我id在后端的参数是:15789456123456789传到前端后,就为......
  • CF1624G MinOr Tree 题解
    CF1624GMinOrTree给定\(n\)个点,\(m\)条边,求在或运算小的最小生成树考虑二进制拆位,从高位玩往地位贪心,如果答案第\(i\)位可以为\(0\),后\(i-1\)取值无论是多少......
  • 洛谷 P4840 解题报告
    洛谷P4840解题报告STEP1.题目大意求字符串\(S\)的所有循环同构中本质不同的回文子串数量的最大值。数据范围$|S|\leq1.5e6$STEP2.思路分析看到回......
  • luogu P7004 [NEERC2013]Interactive Interception 题解
    题目链接感觉比较玄学的交互,看了题解才会做。主体的思想是,我们在二分位置的同时也对\(v\)的范围进行修改。假设我们现在的区间是\([L,R]\),那么我们取\(mid=\frac{L......
  • BZOJ 2453 维护队列 题解
    带修莫队模板,双倍经验,注意add和del的顺序以及数据范围(洛谷上)。//bzoj#2453.维护队列#pragmaGCCoptimize(2)#include<bits/stdc++.h>usingnamespacestd;cons......