Submission #34618748
Source Code Expand
#include<bits/stdc++.h>
#define LL long long
#define pb push_back
#define SZ(x) ((int)x.size()-1)
#define ms(a,b) memset(a,b,sizeof a)
#define F(i,a,b) for (int i=(a);i<=(b);++i)
#define DF(i,a,b) for (int i=(a);i>=(b);--i)
//#define mp make_pair
//#define OO(x) fixed<<setprecision(x)
using namespace std;
//mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
inline int read(){
char ch=getchar(); int w=1,c=0;
for(;!isdigit(ch);ch=getchar()) if (ch=='-') w=-1;
for(;isdigit(ch);ch=getchar()) c=(c<<1)+(c<<3)+(ch^48);
return w*c;
}
const int mod=998244353;//?????????
LL fast(LL x,LL p){
LL ret=1;
for (;p;p>>=1,x=x*x%mod) if (p&1) ret=ret*x%mod;
return ret;
}
const int M=1e6+10;
LL fac[M],inv[M],iv[M];
void init(int n){
fac[0]=1;
F(i,1,n) fac[i]=fac[i-1]*i%mod;
inv[n]=fast(fac[n],mod-2);
DF(i,n,1) inv[i-1]=inv[i]*i%mod;
iv[1]=1;
F(i,2,n) iv[i]=(mod-mod/i)*iv[mod%i]%mod;
}
LL C(int x,int y){
if (y<0 || x<y) return 0;
return fac[x]*inv[y]%mod*inv[x-y]%mod;
}
int n,m;
int main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
n=read(); m=read();
init(1000000);
cout<<fast(m,n-1)*fast(n,m)%mod<<"\n";
// LL o=1;
// int nn=n-1;
// LL ans=0;
// F(i,0,m){
// if (!o) continue;
// LL tmp=0;
// F(j,nn,nn){
// tmp=(tmp+C(nn,j)*fast(2,j)%mod*inv[m-i-j]%mod*inv[i+j]%mod*fac[j])%mod;
// }
// ans=(ans+tmp*o%mod*fac[m])%mod;
// o=o*(1ll*nn*(nn-1)/2%mod)%mod;
// nn-=2;
// }
// cout<<ans<<"\n";
return 0;
}
/* stuff you should look for
* int overflow, array bounds
* special cases (n=1?)
* do smth instead of nothing and stay organized
* WRITE STUFF DOWN
* DON'T GET STUCK ON ONE APPROACH
*/
Submission Info
| Submission Time |
|
| Task |
D - Sets Scores |
| User |
yangziheng |
| Language |
C++ (GCC 9.2.1) |
| Score |
700 |
| Code Size |
1722 Byte |
| Status |
AC |
| Exec Time |
44 ms |
| Memory |
26976 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
700 / 700 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
example_00.txt, example_01.txt |
| All |
example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt |
| Case Name |
Status |
Exec Time |
Memory |
| example_00.txt |
AC |
42 ms |
26796 KiB |
| example_01.txt |
AC |
39 ms |
26860 KiB |
| test_00.txt |
AC |
40 ms |
26868 KiB |
| test_01.txt |
AC |
39 ms |
26916 KiB |
| test_02.txt |
AC |
34 ms |
26840 KiB |
| test_03.txt |
AC |
44 ms |
26912 KiB |
| test_04.txt |
AC |
41 ms |
26952 KiB |
| test_05.txt |
AC |
41 ms |
26976 KiB |
| test_06.txt |
AC |
39 ms |
26836 KiB |
| test_07.txt |
AC |
40 ms |
26928 KiB |
| test_08.txt |
AC |
42 ms |
26864 KiB |
| test_09.txt |
AC |
39 ms |
26796 KiB |
| test_10.txt |
AC |
39 ms |
26816 KiB |
| test_11.txt |
AC |
39 ms |
26956 KiB |
| test_12.txt |
AC |
39 ms |
26956 KiB |
| test_13.txt |
AC |
40 ms |
26820 KiB |
| test_14.txt |
AC |
40 ms |
26912 KiB |
| test_15.txt |
AC |
36 ms |
26912 KiB |
| test_16.txt |
AC |
40 ms |
26832 KiB |
| test_17.txt |
AC |
41 ms |
26908 KiB |
| test_18.txt |
AC |
38 ms |
26976 KiB |
| test_19.txt |
AC |
41 ms |
26928 KiB |
| test_20.txt |
AC |
36 ms |
26740 KiB |
| test_21.txt |
AC |
35 ms |
26944 KiB |
| test_22.txt |
AC |
35 ms |
26740 KiB |
| test_23.txt |
AC |
38 ms |
26796 KiB |