QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#367147 | #6736. Alice and Bob | Berlin_Jacor | TL | 987ms | 32796kb | C++14 | 4.3kb | 2024-03-25 19:25:53 | 2024-03-25 19:25:53 |
Judging History
answer
#include<bits/stdc++.h>
//#include<ext/rope>
//#include<bits/extc++.h>
//using namespace __gnu_cxx;
//using namespace __gnu_pbds;
using namespace std;
//typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>order_set;
//find_by_order() order_of_key()
const int maxn=2e3+5;
const int INF=0x3f3f3f3f;
const int inf=0x3f3f3f3f;
//#define int long long
//#define double long double
const int LINF=0x3f3f3f3f3f3f3f3f;
#define bit(x) (1LL << (x))
#define lowbit(x) (x & (-x))
#define sq(x) ((x) * (x))
#define pb(i) push_back(i)
#define mk(i,j) make_pair((i),(j))
#define pum(i,j) push(make_pair((i),(j)))
#define pbm(i,j) push_back(make_pair((i),(j)))
#define fup(a,b,c,d) for(int a=(b);a<=(c);a+=(d))
#define fdown(a,b,c,d) for(int a=(b);a>=(c);a-=(d))
typedef unsigned long long ull;
#define ull unsigned ll
using ll = long long;
using pi = pair<int,int>;
using vi = vector<int>;
using vd = vector<double>;
using vc = vector<char>;
using vp = vector<pair<int,int>>;
using vvi = vector<vector<int>>;
using vvd = vector<vector<double>>;
using vvp = vector<vector<pair<int,int>>>;
using vvc = vector<vector<char>>;
using mi = map<int,int>;
using mpi = map<pair<int,int>,int>;
using miv = map<int,vector<int>>;
using mpv = map<pair<int,int>,vi>;
using gi = greater<int>;
using gp = greater<pi>;
using djs_queue =priority_queue<pi,vp,gp>;
//using ld = long double;
using namespace std;
double eps=1e-12;
double pai=acos(-1.0);
int mod=998244353;
const int zsmaxn=0;
vi zs(zsmaxn,0);
void Prime() {
zs[0]=zs[1]=1;
fup (i,2,zsmaxn,1) {
if (zs[i]) continue;
fup(j,i*i,maxn,i) {
zs[j]=1;
}
}
}
int gcd(int a, int b){
return b?gcd(b,a%b):a;
}
int ksminv(int a,int b,int p) {
int ans=1;
a=(a%p+p)%p;
for(;b;b>>=1) {
if(b&1)ans=(a*ans)%p;
a=(a*a)%p;
}
return ans;
}
void exgcdinv(int a,int b,int& x,int& y) {
if (b==0){x=1,y=0;return;}
exgcdinv(b,a%b,y,x);
y-=a/b*x;
}
int qpow(int x,int y) {
long long res=1;
while(y){
if(y&1)res=res*x%mod;
x=1ll*x*x%mod;
y>>=1;
}
return res;
}
//void add(int &x,int y) {
// x+=y;
// if(x>=mod)x-=mod;
// if(x<0)x+=mod;
//}
void multiplication(int &x,int y){
x=x*y%mod;
}
int dx[]={0,0,1,-1,1,1,-1,-1};
int dy[]={1,-1,0,0,1,-1,1,-1};
void solve()
{
int n;
cin >> n;
long long ans = 0;
const int p = 998244353;
vi lc(n + 10, 0);
lc[0] = 1;
for (int i = 1; i <= n; ++i) {
lc[i] = 1ll*lc[i - 1] * i % p;
}
for (int i = 1; n - 2 * i + 1 >= 0; ++i) {
ans = (ans + 1ll*lc[n-i] * lc[n-i] % p * qpow(lc[n-2*i+1],p-2) % p) % p ;
}
cout << ans << "\n";
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//cout<<fixed<<setprecision(2);
// clock_t tStart=clock();
//SetIO("main");
// freopen("data3.in","r",stdin);
// freopen("out.txt","w",stdout);
//Prime();
int T = 1;
//cin >> T;
while(T--) {
solve();
}
//cerr<<"\nTime Taken: ";
//cerr<<fixed<<setprecision(0)<<(double)(clock() - tStart)/CLOCKS_PER_SEC;
}
/*
*/
//# ┏┓ ┏┓+ +
//# ┏┛┻━━━┛┻┓ + +
//# ┃ ┃
//# ┃ ━ ┃ ++ + + +
//# ████━████ ┃+
//# ┃ ┃ +
//# ┃ ┻ ┃
//# ┃ ┃ + +
//# ┗━┓ ┏━┛
//# ┃ ┃
//# ┃ ┃ + + + +
//# ┃ ┃
//# ┃ ┃ + gmy保佑,一发过,不能再痒了
//# ┃ ┃
//# ┃ ┃ +
//# ┃ ┗━━━┓ + +
//# ┃ ┣┓
//# ┃ ┏┛
//# ┗┓┓┏━┳┓┏┛ + + + +
//# ┃┫┫ ┃┫┫
//# ┗┻┛ ┗┻┛+ + + +
//————————————————————————————————
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3796kb
input:
1
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
2
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
10
output:
997920
result:
ok 1 number(s): "997920"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
100
output:
188898954
result:
ok 1 number(s): "188898954"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3672kb
input:
4
output:
10
result:
ok 1 number(s): "10"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
8
output:
12336
result:
ok 1 number(s): "12336"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
16
output:
373118483
result:
ok 1 number(s): "373118483"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3800kb
input:
32
output:
314585464
result:
ok 1 number(s): "314585464"
Test #9:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
64
output:
627827331
result:
ok 1 number(s): "627827331"
Test #10:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
128
output:
828497685
result:
ok 1 number(s): "828497685"
Test #11:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
256
output:
65697890
result:
ok 1 number(s): "65697890"
Test #12:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
512
output:
854187619
result:
ok 1 number(s): "854187619"
Test #13:
score: 0
Accepted
time: 1ms
memory: 3552kb
input:
1024
output:
513823539
result:
ok 1 number(s): "513823539"
Test #14:
score: 0
Accepted
time: 179ms
memory: 8608kb
input:
1361956
output:
617368199
result:
ok 1 number(s): "617368199"
Test #15:
score: 0
Accepted
time: 987ms
memory: 32796kb
input:
7579013
output:
827172636
result:
ok 1 number(s): "827172636"
Test #16:
score: -100
Time Limit Exceeded
input:
8145517
output:
710624331