OI pascal sgu282

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:34:30
今天写了sgu282 ,勉强的看懂了报告之后水了1个简化般的但是原题貌似只能过样例了。
题目中的组合数学原理很深奥,貌似是组合数学的一些运算出了问题。囧了没有1个打牛能把sgu282A了吗??我要pascal的··
最好能告诉我方法高分求啊
PS:用pálya定理我可以求出m^c 但是不知道怎么处理结果 m是颜色
我想要的是求出指数后统计的方法与原理 不是要表程饿

const
inf = 'sgu282.in';
ouf = 'sgu282.out';
maxn = 55;
maxm = 1100;

type integer = longint;

var g: array[1 .. maxn, 1 .. maxn] of integer;
na, nb, a, b: array[1 .. maxn] of integer;
e: array[0 .. maxn * maxn] of integer;
n, m, p: integer;
r, ans: int64;

function gcd(a, b: integer; var x, y: int64): integer;
var k: int64;
begin
if b = 0 then begin
x := 1; y := 0;
gcd := a; exit;
end;
gcd := gcd(b, a mod b, x, y);
k := y; y := x - a div b * y; x := k;
end;

procedure prepare;
var i, j: integer;
u, v: int64;
begin
read(n, m, p); r := 1;
for i := 1 to n do for j := 1 to n do g[i, j] := gcd(i, j, u, v);
for i := 1 to n do begin
gcd(i, p, u, v);
u := (u - u div p + p) mod p;
na[i] := u;
end;
nb[1] := 1;
for i := 2 to n d