⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex.dpr

📁 tongji acm-online judge solution
💻 DPR
字号:
{
 all K are divisible by 3
 Let a1a2..an for K,e.g. 134=1,3,4
 Define Set S0 (ai mod 3=0) , S1 (ai mod 3=1) , S2 (ai mod 3=2)
 S0: x=x^3=0 (mod 3)
 S1: x=x^3=1 (mod 3)
 S2: x=x^3=2 (mod 3)
 So K mod 3=F[K] mod 3
 Try Some Test
 23->35->152->134->92->737->713->353->179->1073->371....
 123->36->243->99->1458->702->351->153->153->153.....
 7->343->118->514->190->730->370->....
 67->559->979->1801->514->190->730->370->....
 23065->376->586->853->664->496->1009->730->370->...
 We can always find p for F^(p)[K]=F^(p+1)[K]
 And p << MaxN,So O(p) << O(N)
}
program Ural_1292(Input, Output);
type
    TIndex = Longint;
    TStatist = array[0..9] of TIndex;

function SecretFunction(X: TIndex): TIndex;
var
    i: TIndex;
    R: TIndex;
    F: TStatist;
    Valid: Boolean;
begin
    FillChar(F, SizeOf(F), 0);
    while X > 0 do
    begin
        Inc(F[X mod 10]);
        X := X div 10;
    end;
    X := 0;
    for i := 0 to 9 do
        Inc(X, F[i] * i * i * i);
    R := X;
    while R > 0 do
    begin
        Dec(F[R mod 10]);
        R := R div 10;
    end;
    Valid := true;
    for i := 0 to 9 do
        Valid := Valid and (F[i] = 0);
    if Valid then
        SecretFunction := -X
    else
        SecretFunction := X;
end;

procedure Main;
var
    N, K, L: TIndex;
    M: TIndex;
begin
    Readln(M);
    while M > 0 do
    begin
        Dec(M);
        Readln(N, K, L);
        while N > 1 do
        begin
            Dec(N);
            K := SecretFunction(K);
            if K < 0 then
            begin
                K := -K;
                Break;
            end;
        end;
        Writeln(K - L);
    end;
end;

begin
  {  Assign(Input, 'i.txt');
    Reset(Input);
    Assign(Output, 'o.txt');
    Rewrite(Output);}
    Main;
   { Close(Input);
    Close(Output);  }
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -