题解

123 条题解

  • -1
    @ 2008-10-03 19:34:42

    program ex;

    var

    a:array[0..9] of integer;

    d:array[0..9] of boolean;

    c:array[0..9,0..9] of boolean;

    f:array[1..100] of integer;

    n,m:integer;

    b:array[1..10] of integer;

    i,j,ope,clos:integer;

    k:string;

    begin

    readln(k);

    i:=pos(' ',k);

    val(copy(k,i+1,length(k)-i),n,m);

    delete(k,i,length(k)-i+1);

    fillchar(c,sizeof(c),false);

    for i:=1 to n do

    begin

    readln(j,m);

    c[j,m]:=true;

    end;

    for i:=0 to 9 do

    begin

    ope:=0;

    clos:=1;

    fillchar(d,sizeof(d),true);

    fillchar(b,sizeof(b),0);

    a[i]:=1;

    d[i]:=false;

    b[1]:=i;

    repeat

    ope:=ope+1;

    for j:=0 to 9 do

    if (c[b[ope],j])and(d[j]) then

    begin

    clos:=clos+1;

    b[clos]:=j;

    d[j]:=false;

    a[i]:=a[i]+1;

    end;

    until ope>=clos;

    end;

    f[1]:=1;

    for i:=1 to length(k) do

    begin

    m:=ord(k[i])-48;

    for j:=1 to 100 do

    f[j]:=f[j]*a[m];

    for j:=1 to 99 do

    begin

    f[j+1]:=f[j+1]+(f[j] div 10);

    f[j]:=f[j] mod 10;

    end;

    end;

    i:=100;

    while f[i]=0 do

    i:=i-1;

    for j:=i downto 1 do

    write(f[j]);

    writeln;

    end.

    一次AC太爽了!!!

  • -1
    @ 2007-03-27 17:17:53

    最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~最后一组数据有问题!!!!!~~~~~

  • -2
    @ 2016-07-21 15:42:58
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<vector>
    using namespace std;
    
    int k;
    int d[10][10];
    int cnt[10];
    string n;
    
    void mul (vector<int>& a, int b) {
        int k = 0;
        for (int i = 1; i < a.size(); i++) {
            a[i] = a[i] * b + k;
            k = a[i] / 10;
            a[i] %= 10;
        }
        if (k) a.push_back(k);
    }
    
    int main ()
    {
    //  freopen("in.txt", "r", stdin);
        cin >> n >> k;
        if (!k) { cout << 0; return 0;}
        
        for (int i = 0; i < 10; i++) d[i][i] = 1;
        while (k--) {
            int a, b; cin >> a >> b;
            d[a][b] = 1;
        }
        
        for (int k = 0; k < 10; k++) 
            for (int i = 0; i < 10; i++)
                for (int j = 0; j < 10; j++)
                    d[i][j] |= d[i][k] & d[k][j];
        
        for (int i = 0; i < 10; i++) 
            for (int j = 0; j < 10; j++) 
                if (d[i][j]) cnt[i]++;
                
        vector<int> ans(2); ans[1] = 1;
        for (int i = 0; i < n.length(); i++) mul(ans, cnt[n[i]-'0']);
        for (int i = ans.size()-1; i > 0; i--) cout << ans[i];
        return 0;
    }
    

信息

ID
1129
难度
6
分类
高精度 点击显示
标签
递交数
3872
已通过
1107
通过率
29%
被复制
26
上传者