空间限制:1024M
时间限制:114514h
约束:空间视为申请多少则占用多少
题目描述
有一个由 HHH 行 WWW 列组成的 H×WH \times WH×W 的网格。第 iii 行第 jjj 列的格子记作 (i,j)(i, j)(i,j)。
一开始,棋盘上的 (x1,y1)(x_1, y_1)(x1,y1) 位置上放有一个“车”,OIer 将进行 KKK 次如下操作:
- 将车移动到与当前所在格子同行或同列的另一个格子(不能停在原地)。
请问经过 KKK 次操作后,车恰好停在 (x2,y2)(x_2, y_2)(x2,y2) 这个格子的方案数有多少种?答案可能非常大,请输出对 998244353998244353998244353 取模的结果。
由于这是6661年,所以棋盘非常大。
输入从标准输入中给出,格式如下:
- HHH WWW KKK x1x_1x1 y1y_1y1 x2x_2x2 y2y_2y2
输出经过 KKK 次操作后,车恰好停在 (x2,y2)(x_2, y_2)(x2,y2) 这个格子的方案数,对 998244353998244353998244353 取模后的结果。
范围
- 2≤H,W≤1092 \leq H, W \leq 10^92≤H,W≤109
- 1≤K≤1061 \leq K \leq 10^61≤K≤106
- 1≤x1,x2≤H1 \leq x_1, x_2 \leq H1≤x1,x2≤H
- 1≤y1,y2≤W1 \leq y_1, y_2 \leq W1≤y1,y2≤W
代码
#include</*1*/>
using namespace std;
/*2*/ k;
const int N=1.8e6,M=200,p=998244353;
/*3*/ op[N][M];
long long c,d,a,b,w,h,x,y,X,Y,A,B,C,D;
signed main(){
srand(time(0));
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
/*5.1*/;
cin>>w>>h>>k>>x>>X>>y>>Y;
for(int i=k;i>=1;i--){
k=max(k,i);
int lx=rand()%N,ly=rand()%M;
op[lx][ly]=rand()%40000000;
}
for(int i=1;i<=k;++i){
A=(d*(h-/*4.1*/)+a*(w-/*4.2*/))%p;
B=(d*(h-/*4.3*/)+c+b*(w-/*4.4*/))%p;
C=(a*(w-/*4.5*/)+c+b*(h-/*4.6*/))%p;
D=(b*(w+h-/*4.7*/)+d+a)%p;
/*5.2*/=A;
/*5.3*/=B;
/*5.4*/=C;
/*5.5*/=D;
}
cout<<(y==x&&Y==X?c:(y==x?d:(Y==X?a:b)));
return 0;
}
- 1(1分)111 处应填:
A:https://luogu.com.cn
B:bits/stdc++.h
C:Windows.h
D:con - 2(2分)222 处应填:
A:int
B:long long
C:short
D:__int128_t - 3(2分)333 处应填:
A:short
B:int
C:long long
D:__int128_t - 4(2.5分)4.1至4.74.1\text{至}4.74.1至4.7 处应填:
A:2 1 1 2 2 1 3
B:2 1 2 1 2 1 4
C:1 1 2 1 2 1 4
D:2 2 1 2 1 2 3
- 5(2.5分) 5.1至5.55.1\text{至}5.55.1至5.5 处应填:
A:a=1 a b c d
B:b=1 b c d a
C:c=1 c d a b
D:d=1 d a b c
后记
grok4:101010 分!!!!!!!
grok3:888 分
Google Gimini:7.57.57.5 分
CSDN_AI:6.56.56.5 分
deepseekR1:6.56.56.5 分
豆包:6.56.56.5 分
phind:666 分
MINMAX:666 分
chatgpt:333 分
perplexity:333 分
deepseekV3:111 分
百度AI:111 分
Le Chat Mistral:111 分