造福人类
查看原帖
造福人类
52381
CodingJellyfish楼主2022/3/9 20:07

题解中 ai 的表,左面是分子,右面是分母,从上到下是 i = 0 ~ n 的分数表示。

Ans 2:
1 1
0 1
0 1
Ans 3:
-11 18
1 1
-1 2
1 9
Ans 4:
35 144
-13 18
19 24
-7 18
11 144
Ans 5:
-17 240
71 240
-59 120
49 120
-41 240
7 240
Ans 6:
7 432
-31 360
137 720
-121 540
107 720
-19 360
17 2160
Ans 7:
-23 7560
59 3024
-3 56
247 3024
-113 1512
23 560
-19 1512
5 3024
Ans 8:
13 26880
-73 20160
239 20160
-149 6720
209 8064
-391 20160
61 6720
-7 2880
23 80640
Ans 9:
-29 435456
59 103680
-7 3240
31 6480
-353 51840
67 10368
-53 12960
151 90720
-41 103680
13 311040
Ans 10:
11 1360800
-211 2721600
607 1814400
-97 113400
31 21600
-107 64800
19 14400
-41 56700
59 226800
-151 2721600
29 5443200

由 望月 Asta 编写的 checker:

#include <cstdio>
#include <cstdlib>
typedef long long ll;

ll val[5005];
ll MOD;
int d;

inline ll mul(ll a,ll b) {
	ll res = 0;
	for(;b;b >>= 1) {
		if(b & 1) res = (res + a) % MOD;
		a = (a + a) % MOD;
	}
	return res;
}

inline ll qpow(ll a,ll b) {
	ll res = 1;
	for(;b;b >>= 1) {
		if(b & 1) res = res * a % MOD;
		a = a * a % MOD;
	}
	return res;
}

char s[10];

inline void WrongAnswer(const char *s) {
	puts("Wrong Asnwer");
	puts(s),exit(0);
}

int main() {
	freopen("foo.txt","r",stdin);
	for(int i = 1;i <= 5000;++i)
		val[i] = 1;
	printf("remember to set x,y,d,p\n");
	
	val[1] = 12,val[2] = 13;
	d = 10,MOD = 998244353;
	
	ll res = mul(val[1],val[2]);
	int x,y,z,cnt = 0;
	while(~scanf("%s",s + 1)) {
		if(s[1] == '+') {
			scanf("%d %d %d",&x,&y,&z);
			if(x < 1 || x > 5000 || y < 1 || y > 5000 || z < 1 || z > 5000)
				WrongAnswer("Invalid Memory Use");
			val[z] = (val[x] + val[y]) % MOD;
		}
		else if(s[1] == '^') {
			scanf("%d %d",&x,&y);
			if(x < 1 || x > 5000 || y < 1 || y > 5000)
				WrongAnswer("Invalid Memory Use");
			val[y] = qpow(val[x],d);
		}
		else if(s[1] == 'f') {
			scanf("%d",&x);
			if(x < 1 || x > 5000) WrongAnswer("Invalid Memory Use");
			else if(val[x] == res) {
				puts("Accepted");
				return 0;
			}
			else WrongAnswer("Not Corret Number");
		}
		if(++cnt == 4999)
			WrongAnswer("Too much steps");
	}
	WrongAnswer("A Sudden End With No Result");
	return 0;
}

2022/3/9 20:07
加载中...