zoukankan      html  css  js  c++  java
  • K

    https://codeforces.com/gym/101982/attachments

    K 打表暴力

    /*#include<bits/stdc++.h>
    using namespace std;
    
    map<int,double> dmin,dmax;
    
    bool legal(int n){
        int a[10]={};
        int cur=10;
        while(n){
            int t=n%10;
            if(t==0||a[t]||t>=cur)
                return false;
            cur=t;
            a[t]++;
            n/=10;
        }
        return true;
    }
    
    int main(){
        int cnt=0;
        freopen("Yinku.out","w",stdout);
        for(int i=1;i<=123456789;i++){
            if(legal(i)){
                //calc(i);
                printf("%d,",i);
                cnt++;
            }
        }
        cerr<<cnt<<endl;
    }*/
    
    
    /*int num[]={1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,19,23,24,25,26,27,28,29,34,35,36,37,38,39,45,46,47,48,49,56,57,58,59,67,68,69,78,79,89,
    123,124,125,126,127,128,129,134,135,136,137,138,139,145,146,147,148,149,156,157,158,159,167,168,169,178,179,189,234,235,236,237,238,239,245,
    246,247,248,249,256,257,258,259,267,268,269,278,279,289,345,346,347,348,349,356,357,358,359,367,368,369,378,379,389,456,457,458,459,467,468,
    469,478,479,489,567,568,569,578,579,589,678,679,689,789,1234,1235,1236,1237,1238,1239,1245,1246,1247,1248,1249,1256,1257,1258,1259,1267,1268,
    1269,1278,1279,1289,1345,1346,1347,1348,1349,1356,1357,1358,1359,1367,1368,1369,1378,1379,1389,1456,1457,1458,1459,1467,1468,1469,1478,1479,
    1489,1567,1568,1569,1578,1579,1589,1678,1679,1689,1789,2345,2346,2347,2348,2349,2356,2357,2358,2359,2367,2368,2369,2378,2379,2389,2456,2457,
    2458,2459,2467,2468,2469,2478,2479,2489,2567,2568,2569,2578,2579,2589,2678,2679,2689,2789,3456,3457,3458,3459,3467,3468,3469,3478,3479,3489,
    3567,3568,3569,3578,3579,3589,3678,3679,3689,3789,4567,4568,4569,4578,4579,4589,4678,4679,4689,4789,5678,5679,5689,5789,6789,12345,12346,12347,
    12348,12349,12356,12357,12358,12359,12367,12368,12369,12378,12379,12389,12456,12457,12458,12459,12467,12468,12469,12478,12479,12489,12567,12568,
    12569,12578,12579,12589,12678,12679,12689,12789,13456,13457,13458,13459,13467,13468,13469,13478,13479,13489,13567,13568,13569,13578,13579,13589,
    13678,13679,13689,13789,14567,14568,14569,14578,14579,14589,14678,14679,14689,14789,15678,15679,15689,15789,16789,23456,23457,23458,23459,23467,
    23468,23469,23478,23479,23489,23567,23568,23569,23578,23579,23589,23678,23679,23689,23789,24567,24568,24569,24578,24579,24589,24678,24679,24689,
    24789,25678,25679,25689,25789,26789,34567,34568,34569,34578,34579,34589,34678,34679,34689,34789,35678,35679,35689,35789,36789,45678,45679,45689,
    45789,46789,56789,123456,123457,123458,123459,123467,123468,123469,123478,123479,123489,123567,123568,123569,123578,123579,123589,123678,123679,
    123689,123789,124567,124568,124569,124578,124579,124589,124678,124679,124689,124789,125678,125679,125689,125789,126789,134567,134568,134569,
    134578,134579,134589,134678,134679,134689,134789,135678,135679,135689,135789,136789,145678,145679,145689,145789,146789,156789,234567,234568,
    234569,234578,234579,234589,234678,234679,234689,234789,235678,235679,235689,235789,236789,245678,245679,245689,245789,246789,256789,345678,
    345679,345689,345789,346789,356789,456789,1234567,1234568,1234569,1234578,1234579,1234589,1234678,1234679,1234689,1234789,1235678,1235679,
    1235689,1235789,1236789,1245678,1245679,1245689,1245789,1246789,1256789,1345678,1345679,1345689,1345789,1346789,1356789,1456789,2345678,2345679,
    2345689,2345789,2346789,2356789,2456789,3456789,12345678,12345679,12345689,12345789,12346789,12356789,12456789,13456789,23456789,123456789};
    
    double p[13];
    
    map<int,double> dmin,dmax;
    
    int link(vector<int> s,int ex1,int ex2=-1,int ex3=-1,int ex4=-1){
        int ans=0;
        int n=s.size();
        for(int i=0;i<n;i++){
            if(i==ex1||i==ex2||i==ex3||i==ex4)
                continue;
            else{
                ans*=10;
                ans+=s[i];
            }
        }
        return ans;
    }
    
    vector<int> findnextstate(int state,int sum){
        vector<int>ans;
    
        //cout<<"state="<<state<<" has next states:
      ";
        vector<int> s;
        while(state){
            s.push_back(state%10);
            state/=10;
        }
        reverse(s.begin(),s.end());
        int n=s.size();
        for(int i=0;i<n;i++){
            if(s[i]==sum){
                ans.push_back(link(s,i));
                break;
            }
        }
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(s[i]+s[j]==sum){
                    ans.push_back(link(s,i,j));
                    break;
                }
            }
        }
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                for(int k=j+1;k<n;k++){
                    if(s[i]+s[j]+s[k]==sum){
                        ans.push_back(link(s,i,j,k));
                        break;
                    }
                }
            }
        }
    
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                for(int k=j+1;k<n;k++){
                    for(int l=k+1;l<n;l++){
                        if(s[i]+s[j]+s[k]+s[l]==sum){
                            ans.push_back(link(s,i,j,k,l));
                            break;
                        }
                    }
                }
            }
        }
    
        for(auto i:ans){
            cout<<i<<",";
        }
        cout<<endl;
        return ans;
    }
    
    void calc(int state){
        double minans=0;
        double maxans=0;
        vector<int> ns;
        for(int sum=2;sum<=12;sum++){
            ns=findnextstate(state,sum);
            if(ns.size()==0){
                minans+=p[sum]*state;
                maxans+=p[sum]*state;
            }
            else{
                double nmax=-1.0;
                double nmin=1e30;
                for(auto nsi:ns){
                    nmax=max(nmax,dmax[nsi]);
                    nmin=min(nmin,dmin[nsi]);
                }
    
                maxans+=p[sum]*nmax;
                minans+=p[sum]*nmin;
            }
        }
    
        dmax[state]=maxans;
        dmin[state]=minans;
    
        cerr<<"state="<<state<<" dmax="<<maxans<<" dmin="<<minans<<endl;
        printf("dmax[%d]=%.10f;
    dmin[%d]=%.10f;
    ",state,maxans,state,minans);
        cout<<"dmax["<<state<<"]="<<maxans<<";
    ";
        cout<<"dmin["<<state<<"]="<<minans<<";
    ";
    }
    
    int ntop=511;
    int main(){
        freopen("Yinku.out","w",stdout);
    
        for(int sum=2;sum<=7;sum++){
            p[sum]=1.0*(sum-1)/36;
        }
        for(int sum=8;sum<=12;sum++){
            p[sum]=1.0*(13-sum)/36;
        }
    
        for(int sum=2;sum<=12;sum++){
            cout<<"p["<<sum<<"]="<<p[sum]<<endl;
        }
    
        for(int i=0;i<ntop;i++){
            calc(num[i]);
        }
    }*/
    
    #include<bits/stdc++.h>
    using namespace std;
    map<int,double> dmax,dmin;
    
    void init(){
        dmax[1]=1.0000000000;
        dmin[1]=1.0000000000;
        dmax[2]=1.9444444444;
        dmin[2]=1.9444444444;
        dmax[3]=2.8333333333;
        dmin[3]=2.8333333333;
        dmax[4]=3.6666666667;
        dmin[4]=3.6666666667;
        dmax[5]=4.4444444444;
        dmin[5]=4.4444444444;
        dmax[6]=5.1666666667;
        dmin[6]=5.1666666667;
        dmax[7]=5.8333333333;
        dmin[7]=5.8333333333;
        dmax[8]=6.8888888889;
        dmin[8]=6.8888888889;
        dmax[9]=8.0000000000;
        dmin[9]=8.0000000000;
        dmax[12]=11.0277777778;
        dmin[12]=11.0277777778;
        dmax[13]=11.2500000000;
        dmin[13]=11.2500000000;
        dmax[14]=11.3611111111;
        dmin[14]=11.3611111111;
        dmax[15]=11.3611111111;
        dmin[15]=11.3611111111;
        dmax[16]=11.2500000000;
        dmin[16]=11.2500000000;
        dmax[17]=11.9722222222;
        dmin[17]=11.9722222222;
        dmax[18]=13.6388888889;
        dmin[18]=13.6388888889;
        dmax[19]=15.4166666667;
        dmin[19]=15.4166666667;
        dmax[23]=18.7145061728;
        dmin[23]=18.7145061728;
        dmax[24]=18.2638888889;
        dmin[24]=18.2638888889;
        dmax[25]=17.7006172840;
        dmin[25]=17.7006172840;
        dmax[26]=18.4691358025;
        dmin[26]=18.4691358025;
        dmax[27]=19.2361111111;
        dmin[27]=19.2361111111;
        dmax[28]=21.4614197531;
        dmin[28]=21.4614197531;
        dmax[29]=23.7993827160;
        dmin[29]=23.7993827160;
        dmax[34]=24.0509259259;
        dmin[34]=24.0509259259;
        dmax[35]=24.8672839506;
        dmin[35]=24.8672839506;
        dmax[36]=25.6805555556;
        dmin[36]=25.6805555556;
        dmax[37]=26.4907407407;
        dmin[37]=26.4907407407;
        dmax[38]=29.2762345679;
        dmin[38]=29.2762345679;
        dmax[39]=32.1759259259;
        dmin[39]=32.1759259259;
        dmax[45]=32.0277777778;
        dmin[45]=32.0277777778;
        dmax[46]=32.8842592593;
        dmin[46]=32.8842592593;
        dmax[47]=33.7361111111;
        dmin[47]=33.7361111111;
        dmax[48]=37.0833333333;
        dmin[48]=37.0833333333;
        dmax[49]=40.5462962963;
        dmin[49]=40.5462962963;
        dmax[56]=40.0802469136;
        dmin[56]=40.0802469136;
        dmax[57]=40.9722222222;
        dmin[57]=40.9722222222;
        dmax[58]=44.8827160494;
        dmin[58]=44.8827160494;
        dmax[59]=47.2716049383;
        dmin[59]=47.2716049383;
        dmax[67]=48.1990740741;
        dmin[67]=48.1990740741;
        dmax[68]=50.7854938272;
        dmin[68]=50.7854938272;
        dmax[69]=53.4351851852;
        dmin[69]=53.4351851852;
        dmax[78]=56.1250000000;
        dmin[78]=56.1250000000;
        dmax[79]=59.0370370370;
        dmin[79]=59.0370370370;
        dmax[89]=68.6265432099;
        dmin[89]=68.6265432099;
        dmax[123]=72.9483024691;
        dmin[123]=72.4930555556;
        dmax[124]=53.4598765432;
        dmin[124]=53.4598765432;
        dmax[125]=47.3634259259;
        dmin[125]=47.3634259259;
        dmax[126]=48.0941358025;
        dmin[126]=48.0941358025;
        dmax[127]=55.7924382716;
        dmin[127]=55.7924382716;
        dmax[128]=70.1481481481;
        dmin[128]=70.1481481481;
        dmax[129]=84.7322530864;
        dmin[129]=84.7322530864;
        dmax[134]=61.6057098765;
        dmin[134]=60.9737654321;
        dmax[135]=51.5339506173;
        dmin[135]=51.5339506173;
        dmax[136]=52.3125000000;
        dmin[136]=52.3125000000;
        dmax[137]=60.5864197531;
        dmin[137]=60.5864197531;
        dmax[138]=76.0979938272;
        dmin[138]=76.0979938272;
        dmax[139]=91.8425925926;
        dmin[139]=91.8425925926;
        dmax[145]=71.3016975309;
        dmin[145]=70.5331790123;
        dmax[146]=56.5061728395;
        dmin[146]=56.5061728395;
        dmax[147]=65.3541666667;
        dmin[147]=65.3541666667;
        dmax[148]=82.0262345679;
        dmin[148]=82.0262345679;
        dmax[149]=94.7970679012;
        dmin[149]=94.7970679012;
        dmax[156]=81.6242283951;
        dmin[156]=80.7638888889;
        dmax[157]=70.0956790123;
        dmin[157]=70.0956790123;
        dmax[158]=83.5439814815;
        dmin[158]=83.5439814815;
        dmax[159]=92.7901234568;
        dmin[159]=92.7901234568;
        dmax[167]=97.0331790123;
        dmin[167]=96.1304012346;
        dmax[168]=79.8456790123;
        dmin[168]=79.8456790123;
        dmax[169]=89.6550925926;
        dmin[169]=89.6550925926;
        dmax[178]=108.4174382716;
        dmin[178]=107.7114197531;
        dmax[179]=94.9969135802;
        dmin[179]=94.9969135802;
        dmax[189]=130.2307098765;
        dmin[189]=129.6041666667;
        dmax[234]=75.8672839506;
        dmin[234]=75.8672839506;
        dmax[235]=102.4124657064;
        dmin[235]=100.8269032922;
        dmax[236]=90.7445130316;
        dmin[236]=90.7445130316;
        dmax[237]=104.7986111111;
        dmin[237]=104.7986111111;
        dmax[238]=131.3254458162;
        dmin[238]=131.3254458162;
        dmax[239]=151.4512174211;
        dmin[239]=151.4512174211;
        dmax[245]=80.6995884774;
        dmin[245]=80.6995884774;
        dmax[246]=128.6604938272;
        dmin[246]=126.8414351852;
        dmax[247]=109.8263888889;
        dmin[247]=109.8263888889;
        dmax[248]=130.6715534979;
        dmin[248]=130.6715534979;
        dmax[249]=151.7037037037;
        dmin[249]=151.7037037037;
        dmax[256]=99.6547496571;
        dmin[256]=99.6547496571;
        dmax[257]=149.5511831276;
        dmin[257]=147.5733024691;
        dmax[258]=129.4416152263;
        dmin[258]=129.4416152263;
        dmax[259]=144.1989026063;
        dmin[259]=144.1989026063;
        dmax[267]=119.7229938272;
        dmin[267]=119.7229938272;
        dmax[268]=171.1649519890;
        dmin[268]=169.5565843621;
        dmax[269]=150.2122770919;
        dmin[269]=150.2122770919;
        dmax[278]=140.3369341564;
        dmin[278]=140.3369341564;
        dmax[279]=186.3179012346;
        dmin[279]=185.0694444444;
        dmax[289]=177.2290809328;
        dmin[289]=177.2290809328;
        dmax[345]=113.5054012346;
        dmin[345]=113.5054012346;
        dmax[346]=133.7564300412;
        dmin[346]=133.7564300412;
        dmax[347]=201.3310185185;
        dmin[347]=198.2947530864;
        dmax[348]=173.6041666667;
        dmin[348]=173.6041666667;
        dmax[349]=202.9302983539;
        dmin[349]=202.9302983539;
        dmax[356]=148.3471364883;
        dmin[356]=148.3471364883;
        dmax[357]=159.3734567901;
        dmin[357]=159.3734567901;
        dmax[358]=238.1693244170;
        dmin[358]=235.6723251029;
        dmax[359]=209.6433470508;
        dmin[359]=209.6433470508;
        dmax[367]=174.8269032922;
        dmin[367]=174.8269032922;
        dmax[368]=195.5067729767;
        dmin[368]=195.5067729767;
        dmax[369]=256.4344135802;
        dmin[369]=254.4699074074;
        dmax[378]=201.5748456790;
        dmin[378]=201.5748456790;
        dmax[379]=222.9701646091;
        dmin[379]=222.9701646091;
        dmax[389]=249.8924039781;
        dmin[389]=249.8924039781;
        dmax[456]=202.5902777778;
        dmin[456]=202.5902777778;
        dmax[457]=216.6087962963;
        dmin[457]=216.6087962963;
        dmax[458]=254.9200102881;
        dmin[458]=254.9200102881;
        dmax[459]=330.7530864198;
        dmin[459]=328.0833333333;
        dmax[467]=235.4837962963;
        dmin[467]=235.4837962963;
        dmax[468]=261.6674382716;
        dmin[468]=261.6674382716;
        dmax[469]=287.9881687243;
        dmin[469]=287.9881687243;
        dmax[478]=268.3657407407;
        dmin[478]=268.3657407407;
        dmax[479]=295.2870370370;
        dmin[479]=295.2870370370;
        dmax[489]=328.1095679012;
        dmin[489]=328.1095679012;
        dmax[567]=301.6936728395;
        dmin[567]=301.6936728395;
        dmax[568]=333.3815157750;
        dmin[568]=333.3815157750;
        dmax[569]=349.3172153635;
        dmin[569]=349.3172153635;
        dmax[578]=340.7096193416;
        dmin[578]=340.7096193416;
        dmax[579]=356.9629629630;
        dmin[579]=356.9629629630;
        dmax[589]=395.4831961591;
        dmin[589]=395.4831961591;
        dmax[678]=399.6203703704;
        dmin[678]=399.6203703704;
        dmax[679]=418.5442386831;
        dmin[679]=418.5442386831;
        dmax[689]=443.6514060357;
        dmin[689]=443.6514060357;
        dmax[789]=486.1234567901;
        dmin[789]=486.1234567901;
        dmax[1234]=119.4546467764;
        dmin[1234]=110.0102023320;
        dmax[1235]=54.2540294925;
        dmin[1235]=43.0411522634;
        dmax[1236]=23.1703103567;
        dmin[1236]=11.6005015432;
        dmax[1237]=25.5880486968;
        dmin[1237]=23.2014317558;
        dmax[1238]=230.4202246228;
        dmin[1238]=227.6310871056;
        dmax[1239]=401.2454561043;
        dmin[1239]=398.0474537037;
        dmax[1245]=20.0291923868;
        dmin[1245]=13.9230967078;
        dmax[1246]=22.9655778464;
        dmin[1246]=14.9202246228;
        dmax[1247]=25.8203446502;
        dmin[1247]=17.8825874486;
        dmax[1248]=26.5225051440;
        dmin[1248]=26.5225051440;
        dmax[1249]=199.7329818244;
        dmin[1249]=199.7329818244;
        dmax[1256]=231.4379286694;
        dmin[1256]=225.4654921125;
        dmax[1257]=199.9688786008;
        dmin[1257]=192.4221107682;
        dmax[1258]=167.3787294239;
        dmin[1258]=161.7572659465;
        dmax[1259]=134.0133744856;
        dmin[1259]=134.0133744856;
        dmax[1267]=377.3278892318;
        dmin[1267]=370.9889403292;
        dmax[1268]=310.0932355967;
        dmin[1268]=304.0210905350;
        dmax[1269]=277.7365826475;
        dmin[1269]=273.2816786694;
        dmax[1278]=490.5290637860;
        dmin[1278]=484.6957304527;
        dmax[1279]=458.3088134431;
        dmin[1279]=452.8862740055;
        dmax[1289]=674.2302383402;
        dmin[1289]=668.2459705075;
        dmax[1345]=135.5098593964;
        dmin[1345]=127.9563614540;
        dmax[1346]=100.7694615912;
        dmin[1346]=96.2972393690;
        dmax[1347]=401.0482253086;
        dmin[1347]=387.5869341564;
        dmax[1348]=365.5969221536;
        dmin[1348]=354.5354938272;
        dmax[1349]=329.1183984911;
        dmin[1349]=324.7734910837;
        dmax[1356]=66.5548268176;
        dmin[1356]=62.2280092593;
        dmax[1357]=69.6111968450;
        dmin[1357]=67.8202160494;
        dmax[1358]=408.8004115226;
        dmin[1358]=401.5396090535;
        dmax[1359]=373.7729766804;
        dmin[1359]=368.9358710562;
        dmax[1367]=260.4957133059;
        dmin[1367]=255.6905435528;
        dmax[1368]=225.5781464335;
        dmin[1368]=224.2401834705;
        dmax[1369]=492.1507201646;
        dmin[1369]=486.5778034979;
        dmax[1378]=419.4829818244;
        dmin[1378]=414.8127143347;
        dmax[1379]=422.7452846365;
        dmin[1379]=421.8224451303;
        dmax[1389]=655.1735253772;
        dmin[1389]=650.1018518519;
        dmax[1456]=354.8067986968;
        dmin[1456]=346.6737825789;
        dmax[1457]=158.3001543210;
        dmin[1457]=155.2708333333;
        dmax[1458]=481.0778034979;
        dmin[1458]=474.8007973251;
        dmax[1459]=723.4605624143;
        dmin[1459]=709.9681927298;
        dmax[1467]=323.5196759259;
        dmin[1467]=319.3485082305;
        dmax[1468]=165.5367369684;
        dmin[1468]=165.5367369684;
        dmax[1469]=410.0457390261;
        dmin[1469]=408.5901063100;
        dmax[1478]=494.4687500000;
        dmin[1478]=490.3422067901;
        dmax[1479]=375.7253086420;
        dmin[1479]=375.7253086420;
        dmax[1489]=706.0543124143;
        dmin[1489]=701.3932184499;
        dmax[1567]=606.5264489026;
        dmin[1567]=596.4591478052;
        dmax[1568]=436.6946587791;
        dmin[1568]=432.0253772291;
        dmax[1569]=523.6325445816;
        dmin[1569]=518.0709876543;
        dmax[1578]=530.5990226337;
        dmin[1578]=527.0187757202;
        dmax[1579]=403.3052126200;
        dmin[1579]=403.3052126200;
        dmax[1589]=711.9952846365;
        dmin[1589]=707.8954046639;
        dmax[1678]=792.9756515775;
        dmin[1678]=782.5008573388;
        dmax[1679]=656.6616941015;
        dmin[1679]=651.4583762003;
        dmax[1689]=664.9979852538;
        dmin[1689]=661.9764660494;
        dmax[1789]=946.1225994513;
        dmin[1789]=936.8689128944;
        dmax[2345]=37.1956018519;
        dmin[2345]=29.5484682213;
        dmax[2346]=42.9060999657;
        dmin[2346]=34.3794152949;
        dmax[2347]=371.8075703018;
        dmin[2347]=360.2605238340;
        dmax[2348]=49.6303798011;
        dmin[2348]=49.6303798011;
        dmax[2349]=571.8996484911;
        dmin[2349]=564.3588391632;
        dmax[2356]=306.9124514175;
        dmin[2356]=299.3814586191;
        dmax[2357]=703.6003086420;
        dmin[2357]=682.3596536351;
        dmax[2358]=902.0576989026;
        dmin[2358]=879.6421896433;
        dmax[2359]=577.4717649749;
        dmin[2359]=565.7200788752;
        dmax[2367]=252.3318329904;
        dmin[2367]=251.6157836077;
        dmax[2368]=714.7542795496;
        dmin[2368]=705.4843178441;
        dmax[2369]=848.5984367856;
        dmin[2369]=840.1232662704;
        dmax[2378]=591.2397976680;
        dmin[2378]=590.8206875857;
        dmax[2379]=923.0631001372;
        dmin[2379]=914.6124399863;
        dmax[2389]=993.9987854367;
        dmin[2389]=993.6945158893;
        dmax[2456]=190.4747085048;
        dmin[2456]=183.9033922039;
        dmax[2457]=737.3722993827;
        dmin[2457]=727.2996399177;
        dmax[2458]=198.4930555556;
        dmin[2458]=198.4930555556;
        dmax[2459]=813.4903978052;
        dmin[2459]=805.7591163695;
        dmax[2467]=475.5123671125;
        dmin[2467]=466.6498413923;
        dmax[2468]=1294.8040123457;
        dmin[2468]=1269.5820687586;
        dmax[2469]=888.5467678326;
        dmin[2469]=874.6962448560;
        dmax[2478]=485.6350951646;
        dmin[2478]=485.6350951646;
        dmax[2479]=1104.2062757202;
        dmin[2479]=1095.8524091221;
        dmax[2489]=904.7705332647;
        dmin[2489]=904.7705332647;
        dmax[2567]=641.2331532922;
        dmin[2567]=632.3825017147;
        dmax[2568]=786.4277692044;
        dmin[2568]=778.6418348003;
        dmax[2569]=717.4419295839;
        dmin[2569]=716.5374371285;
        dmax[2578]=935.7325531550;
        dmin[2578]=923.2384116369;
        dmax[2579]=1363.7049039781;
        dmin[2579]=1338.0081447188;
        dmax[2589]=874.0416666667;
        dmin[2589]=874.0416666667;
        dmax[2678]=978.0735811043;
        dmin[2678]=968.9724651349;
        dmax[2679]=1054.1356310014;
        dmin[2679]=1046.5969221536;
        dmax[2689]=1279.2054040924;
        dmin[2689]=1267.6953446502;
        dmax[2789]=1254.6332304527;
        dmin[2789]=1246.4920124600;
        dmax[3456]=168.6016375171;
        dmin[3456]=167.8963906036;
        dmax[3457]=655.1168552812;
        dmin[3457]=642.1845850480;
        dmax[3458]=946.7671039095;
        dmin[3458]=935.4454446731;
        dmax[3459]=1142.3213305898;
        dmin[3459]=1132.4689643347;
        dmax[3467]=1145.1833419067;
        dmin[3467]=1129.9692858368;
        dmax[3468]=572.7495070302;
        dmin[3468]=572.7495070302;
        dmax[3469]=1249.2494427298;
        dmin[3469]=1238.7290523548;
        dmax[3478]=1446.8596965021;
        dmin[3478]=1426.6103609396;
        dmax[3479]=1546.8643689986;
        dmin[3479]=1522.5447959534;
        dmax[3489]=1361.1638803155;
        dmin[3489]=1361.0275634431;
        dmax[3567]=496.1508916324;
        dmin[3567]=496.1508916324;
        dmax[3568]=1488.6962162780;
        dmin[3568]=1474.1989597622;
        dmax[3569]=1392.6273719707;
        dmin[3569]=1381.1784788904;
        dmax[3578]=1402.0408521948;
        dmin[3578]=1387.2846221994;
        dmax[3579]=1204.1147976680;
        dmin[3579]=1203.8704561043;
        dmax[3589]=1903.6904435299;
        dmin[3589]=1883.8273319616;
        dmax[3678]=1039.7095764746;
        dmin[3678]=1039.7095764746;
        dmax[3679]=1655.0932784636;
        dmin[3679]=1641.9003200732;
        dmax[3689]=1863.1005515546;
        dmin[3689]=1848.7299001677;
        dmax[3789]=1500.8286179698;
        dmin[3789]=1500.8286179698;
        dmax[4567]=1141.9544324417;
        dmin[4567]=1141.6019804527;
        dmax[4568]=1274.9556327160;
        dmin[4568]=1274.9556327160;
        dmax[4569]=2039.4982853224;
        dmin[4569]=2022.5546982167;
        dmax[4578]=1539.4831532922;
        dmin[4578]=1539.3751286008;
        dmax[4579]=2180.6133401920;
        dmin[4579]=2162.6604080933;
        dmax[4589]=2566.9612482853;
        dmin[4589]=2545.8911751257;
        dmax[4678]=1585.1182913237;
        dmin[4678]=1585.1182913237;
        dmax[4679]=1847.5809327846;
        dmin[4679]=1847.5809327846;
        dmax[4689]=2112.5674296982;
        dmin[4689]=2112.5674296982;
        dmax[4789]=2166.8948902606;
        dmin[4789]=2166.8948902606;
        dmax[5678]=2244.1061814129;
        dmin[5678]=2244.1061814129;
        dmax[5679]=2401.0883058985;
        dmin[5679]=2401.0883058985;
        dmax[5689]=2722.0385230910;
        dmin[5689]=2722.0385230910;
        dmax[5789]=2782.1575788752;
        dmin[5789]=2782.1575788752;
        dmax[6789]=3261.3257887517;
        dmin[6789]=3261.3257887517;
        dmax[12345]=68.8936828418;
        dmin[12345]=28.7180236435;
        dmax[12346]=82.1975213382;
        dmin[12346]=24.5750856148;
        dmax[12347]=97.8553848022;
        dmin[12347]=35.8737890089;
        dmax[12348]=111.0048368198;
        dmin[12348]=48.2685899634;
        dmax[12349]=125.3670934309;
        dmin[12349]=64.0274419867;
        dmax[12356]=80.2201562738;
        dmin[12356]=40.8158852976;
        dmax[12357]=84.8537427602;
        dmin[12357]=45.9317605929;
        dmax[12358]=120.4383311424;
        dmin[12358]=67.5882880373;
        dmax[12359]=145.4804431489;
        dmin[12359]=71.4257735101;
        dmax[12367]=97.2667562109;
        dmin[12367]=56.4173965954;
        dmax[12368]=128.7155254534;
        dmin[12368]=76.6345754029;
        dmax[12369]=166.5252867322;
        dmin[12369]=99.9029028064;
        dmax[12378]=148.2070866198;
        dmin[12378]=107.8061104443;
        dmax[12379]=183.2486044429;
        dmin[12379]=152.6676025949;
        dmax[12389]=2258.1909436443;
        dmin[12389]=2217.6901232186;
        dmax[12456]=105.4605302641;
        dmin[12456]=60.3787544296;
        dmax[12457]=101.7739126086;
        dmin[12457]=59.7399584191;
        dmax[12458]=110.8298539666;
        dmin[12458]=75.3271622799;
        dmax[12459]=135.3230595565;
        dmin[12459]=96.1446163885;
        dmax[12467]=130.5791395176;
        dmin[12467]=88.1089356139;
        dmax[12468]=131.5596969784;
        dmin[12468]=87.9305948503;
        dmax[12469]=152.6949076456;
        dmin[12469]=111.8062664323;
        dmax[12478]=150.7718585677;
        dmin[12478]=121.0528406493;
        dmax[12479]=178.6185128029;
        dmin[12479]=138.9066179412;
        dmax[12489]=205.6409000629;
        dmin[12489]=184.3991317063;
        dmax[12567]=1219.8163258745;
        dmin[12567]=1172.6707116389;
        dmax[12568]=1212.2984479786;
        dmin[12568]=1169.0029191196;
        dmax[12569]=1209.8522066949;
        dmin[12569]=1171.2606476718;
        dmax[12578]=1238.1811199703;
        dmin[12578]=1198.0754386717;
        dmax[12579]=1239.3773148148;
        dmin[12579]=1198.6230281207;
        dmax[12589]=1265.9524891404;
        dmin[12589]=1248.3427974013;
        dmax[12678]=3057.8458397634;
        dmin[12678]=2980.0848217688;
        dmax[12679]=2696.2922525149;
        dmin[12679]=2631.3414732891;
        dmax[12689]=2726.7459455018;
        dmin[12689]=2670.1675490112;
        dmax[12789]=4566.0939429012;
        dmin[12789]=4476.9786784598;
        dmax[13456]=488.7487925812;
        dmin[13456]=453.2097276997;
        dmax[13457]=528.7718121285;
        dmin[13457]=458.7735982510;
        dmax[13458]=552.5490612140;
        dmin[13458]=502.7671253429;
        dmax[13459]=1312.8041266575;
        dmin[13459]=1269.4899905693;
        dmax[13467]=556.9534715078;
        dmin[13467]=519.6793195588;
        dmax[13468]=546.3390096308;
        dmin[13468]=508.0636609797;
        dmax[13469]=579.0787822931;
        dmin[13469]=533.8523186252;
        dmax[13478]=2482.9081575789;
        dmin[13478]=2375.8243098422;
        dmax[13479]=2478.6709533608;
        dmin[13479]=2394.8990697874;
        dmax[13489]=2500.0781107110;
        dmin[13489]=2416.7810166133;
        dmax[13567]=555.4991236092;
        dmin[13567]=508.4235229957;
        dmax[13568]=587.4293957667;
        dmin[13568]=543.0868400873;
        dmax[13569]=619.1480933737;
        dmin[13569]=587.4807384545;
        dmax[13578]=641.5332576017;
        dmin[13578]=602.0972174592;
        dmax[13579]=624.8926897577;
        dmin[13579]=600.7332533150;
        dmax[13589]=2946.9804169524;
        dmin[13589]=2873.2640460677;
        dmax[13678]=2141.9245791895;
        dmin[13678]=2115.6638910322;
        dmax[13679]=2196.7535008002;
        dmin[13679]=2123.1369932175;
        dmax[13689]=2228.1483243789;
        dmin[13689]=2201.1028199303;
        dmax[13789]=4162.9569687357;
        dmin[13789]=4106.9212391404;
        dmax[14567]=1443.1123221022;
        dmin[14567]=1400.8586069673;
        dmax[14568]=1482.3117462563;
        dmin[14568]=1412.0010335696;
        dmax[14569]=3545.0566772405;
        dmin[14569]=3432.3871694483;
        dmax[14578]=1502.5136674097;
        dmin[14578]=1457.1131615798;
        dmax[14579]=1541.2273662551;
        dmin[14579]=1515.0383087563;
        dmax[14589]=4818.8587534294;
        dmin[14589]=4727.5581728205;
        dmax[14678]=1534.3182513146;
        dmin[14678]=1504.4821566358;
        dmax[14679]=1547.0355366941;
        dmin[14679]=1513.6037701475;
        dmax[14689]=1598.6005670344;
        dmin[14689]=1572.8882411218;
        dmax[14789]=3676.3401277435;
        dmin[14789]=3645.2802211934;
        dmax[15678]=4280.0875878772;
        dmin[15678]=4206.0998085277;
        dmax[15679]=2980.3495846670;
        dmin[15679]=2947.9075526787;
        dmax[15689]=3011.6955947074;
        dmin[15689]=2963.5740359701;
        dmax[15789]=3946.9544753086;
        dmin[15789]=3924.8462839125;
        dmax[16789]=6517.5464749085;
        dmin[16789]=6415.2605667010;
        dmax[23456]=147.6400986892;
        dmin[23456]=89.2601963782;
        dmax[23457]=257.1858496228;
        dmin[23457]=190.8584128753;
        dmax[23458]=252.3629270024;
        dmin[23458]=184.5396681940;
        dmax[23459]=301.3552002362;
        dmin[23459]=243.1498175774;
        dmax[23467]=236.5152820645;
        dmin[23467]=178.6969825246;
        dmax[23468]=291.6070982891;
        dmin[23468]=233.6940568559;
        dmax[23469]=359.9126717059;
        dmin[23469]=293.1627371971;
        dmax[23478]=295.5584764613;
        dmin[23478]=256.2226520824;
        dmax[23479]=3669.4914694787;
        dmin[23479]=3563.7280711782;
        dmax[23489]=389.4286372599;
        dmin[23489]=384.4475701589;
        dmax[23567]=2251.1179483882;
        dmin[23567]=2205.1296891670;
        dmax[23568]=3017.6644173430;
        dmin[23568]=2939.3314326343;
        dmax[23569]=2338.7110990449;
        dmin[23569]=2248.7861823443;
        dmax[23578]=5695.9455101642;
        dmin[23578]=5460.6340913637;
        dmax[23579]=5676.9275882106;
        dmin[23579]=5488.4613840306;
        dmax[23589]=5710.2617574493;
        dmin[23589]=5568.1564190863;
        dmax[23678]=2381.4294815005;
        dmin[23678]=2362.1686818098;
        dmax[23679]=2478.9458257125;
        dmin[23679]=2459.3707668896;
        dmax[23689]=6466.6833875521;
        dmin[23689]=6315.4665702690;
        dmax[23789]=5845.0903730376;
        dmin[23789]=5798.7655015591;
        dmax[24567]=1719.2177652511;
        dmin[24567]=1633.1462167543;
        dmax[24568]=1780.9554374333;
        dmin[24568]=1736.6722546503;
        dmax[24569]=1832.7807022558;
        dmin[24569]=1753.0964315653;
        dmax[24578]=1792.3268354195;
        dmin[24578]=1760.9091959114;
        dmax[24579]=7407.7422458467;
        dmin[24579]=7247.6857519814;
        dmax[24589]=1901.1101156455;
        dmin[24589]=1886.5162664165;
        dmax[24678]=4649.3631794410;
        dmin[24678]=4593.8993716421;
        dmax[24679]=4677.8817443987;
        dmin[24679]=4554.0368929565;
        dmax[24689]=8830.5971626848;
        dmin[24689]=8673.4565353033;
        dmax[24789]=4766.5699255068;
        dmin[24789]=4742.1305679393;
        dmax[25678]=4162.2289320892;
        dmin[25678]=4053.2304431489;
        dmax[25679]=6341.0042771681;
        dmin[25679]=6247.8671386793;
        dmax[25689]=4929.2392308718;
        dmin[25689]=4873.7036055331;
        dmax[25789]=7872.9425678250;
        dmin[25789]=7743.7882523942;
        dmax[26789]=8231.5991750495;
        dmin[26789]=8090.2792856621;
        dmax[34567]=1422.0523524425;
        dmin[34567]=1382.6826488912;
        dmax[34568]=1505.6993181775;
        dmin[34568]=1478.7650649514;
        dmax[34569]=1656.4089029873;
        dmin[34569]=1629.7378162628;
        dmax[34578]=6436.6032438367;
        dmin[34578]=6273.9314998190;
        dmax[34579]=6505.9448302469;
        dmin[34579]=6318.7160755792;
        dmax[34589]=9454.9624938081;
        dmin[34589]=9256.2829011711;
        dmax[34678]=5516.1204811100;
        dmin[34678]=5475.1114921506;
        dmax[34679]=10468.7030749886;
        dmin[34679]=10225.8148469650;
        dmax[34689]=5634.7702939243;
        dmin[34689]=5604.7104945416;
        dmax[34789]=10562.7302240512;
        dmin[34789]=10407.4795965268;
        dmax[35678]=4804.0017730243;
        dmin[35678]=4780.5669133103;
        dmax[35679]=4844.1055098308;
        dmin[35679]=4823.9204437205;
        dmax[35689]=13897.8296983755;
        dmin[35689]=13634.6802623668;
        dmax[35789]=9971.1276339354;
        dmin[35789]=9863.9338142369;
        dmax[36789]=9292.2046039095;
        dmin[36789]=9226.4675711591;
        dmax[45678]=4854.2439021776;
        dmin[45678]=4849.4561197321;
        dmax[45679]=11383.0826188843;
        dmin[45679]=11294.3846379172;
        dmax[45689]=12726.1525396281;
        dmin[45689]=12628.5057282934;
        dmax[45789]=15397.3263460219;
        dmin[45789]=15273.4797548964;
        dmax[46789]=10532.2069901692;
        dmin[46789]=10532.2069901692;
        dmax[56789]=16021.8635211858;
        dmin[56789]=16021.8635211858;
        dmax[123456]=194.3717704920;
        dmin[123456]=40.2302529599;
        dmax[123457]=369.4698726772;
        dmin[123457]=46.9140025657;
        dmax[123458]=371.9810700779;
        dmin[123458]=75.2925873136;
        dmax[123459]=478.4578042441;
        dmin[123459]=149.8941924159;
        dmax[123467]=352.6189403808;
        dmin[123467]=70.6543663353;
        dmax[123468]=422.6110858077;
        dmin[123468]=70.4962120641;
        dmax[123469]=531.3186563675;
        dmin[123469]=158.2084714932;
        dmax[123478]=506.2029678212;
        dmin[123478]=202.3029483128;
        dmax[123479]=659.3351861378;
        dmin[123479]=223.9294352598;
        dmax[123489]=794.1044832073;
        dmin[123489]=348.1515887494;
        dmax[123567]=465.5540028858;
        dmin[123567]=139.7917832939;
        dmax[123568]=580.8660937315;
        dmin[123568]=233.0884790862;
        dmax[123569]=556.1440568029;
        dmin[123569]=294.8483882295;
        dmax[123578]=625.4961465398;
        dmin[123578]=263.8479657123;
        dmax[123579]=642.8518058096;
        dmin[123579]=323.0687892682;
        dmax[123589]=1020.9240737168;
        dmin[123589]=499.9841627822;
        dmax[123678]=756.9396216159;
        dmin[123678]=361.4385244736;
        dmax[123679]=804.2393221625;
        dmin[123679]=434.8427317778;
        dmax[123689]=1142.0635114746;
        dmin[123689]=616.5431549698;
        dmax[123789]=1358.7606006373;
        dmin[123789]=910.0163939588;
        dmax[124567]=590.9853454599;
        dmin[124567]=285.2257360214;
        dmax[124568]=684.3316508059;
        dmin[124568]=300.4752586636;
        dmax[124569]=829.7499158538;
        dmin[124569]=453.6492028866;
        dmax[124578]=648.5562656385;
        dmin[124578]=398.7582965392;
        dmax[124579]=904.3724744227;
        dmin[124579]=419.5800738582;
        dmax[124589]=952.4708516709;
        dmin[124589]=607.1082081328;
        dmax[124678]=986.5068496807;
        dmin[124678]=580.5497240639;
        dmax[124679]=995.7816625943;
        dmin[124679]=617.0753063002;
        dmax[124689]=1102.6942109916;
        dmin[124689]=696.1225803332;
        dmax[124789]=1293.8514094888;
        dmin[124789]=975.4886042405;
        dmax[125678]=11757.5867930527;
        dmin[125678]=11452.5924467921;
        dmax[125679]=11719.1314496223;
        dmin[125679]=11389.9265688639;
        dmax[125689]=11750.2670435782;
        dmin[125689]=11461.0877875260;
        dmax[125789]=12089.0516284675;
        dmin[125789]=11781.1398258755;
        dmax[126789]=26955.1883466221;
        dmin[126789]=26097.8127519094;
        dmax[134567]=4374.7485768572;
        dmin[134567]=4104.8980572544;
        dmax[134568]=4510.6907207759;
        dmin[134568]=4132.7463151961;
        dmax[134569]=4829.0138829351;
        dmin[134569]=4404.0240757411;
        dmax[134578]=4796.2065658658;
        dmin[134578]=4409.9280139032;
        dmax[134579]=5022.3018086674;
        dmin[134579]=4406.8152915111;
        dmax[134589]=5279.0935696016;
        dmin[134589]=4884.9633739035;
        dmax[134678]=4973.2614562892;
        dmin[134678]=4627.3166211801;
        dmax[134679]=5163.2132753360;
        dmin[134679]=4727.1126293153;
        dmax[134689]=5107.2382390446;
        dmin[134689]=4820.0923381694;
        dmax[134789]=24390.2699051450;
        dmin[134789]=23491.1350201475;
        dmax[135678]=5153.8803542000;
        dmin[135678]=4766.2568523599;
        dmax[135679]=5148.2828131880;
        dmin[135679]=4740.6162474703;
        dmax[135689]=5557.1326270740;
        dmin[135689]=5175.4939360478;
        dmax[135789]=5940.8348074798;
        dmin[135789]=5593.7875913966;
        dmax[136789]=21270.1288526663;
        dmin[136789]=20884.8449715755;
        dmax[145678]=13638.4393950760;
        dmin[145678]=13416.0666316984;
        dmax[145679]=14081.7711540416;
        dmin[145679]=13539.5563146576;
        dmax[145689]=14670.2829646776;
        dmin[145689]=13898.5369767058;
        dmax[145789]=14776.8501347927;
        dmin[145789]=14279.5084507411;
        dmax[146789]=14695.6440549507;
        dmin[146789]=14392.6185539830;
        dmax[156789]=29053.3553291017;
        dmin[156789]=28658.3706208244;
        dmax[234567]=967.0998273812;
        dmin[234567]=483.5995414031;
        dmax[234568]=1228.8454561439;
        dmin[234568]=585.4682000727;
        dmax[234569]=1309.6274611446;
        dmin[234569]=684.7334850038;
        dmax[234578]=1656.8527406132;
        dmin[234578]=1072.5442687164;
        dmax[234579]=2303.0647797539;
        dmin[234579]=1699.1091981077;
        dmax[234589]=2020.5296184101;
        dmin[234589]=1376.3947773600;
        dmax[234678]=1512.9856212174;
        dmin[234678]=993.7750508813;
        dmax[234679]=2155.2857464643;
        dmin[234679]=1550.9985436486;
        dmax[234689]=2371.7101970530;
        dmin[234689]=1837.9024420639;
        dmax[234789]=2599.4486582383;
        dmin[234789]=2212.2162909062;
        dmax[235678]=22162.2436144135;
        dmin[235678]=21477.5099521866;
        dmax[235679]=22132.4416141679;
        dmin[235679]=21782.1836064513;
        dmax[235689]=23003.4963691436;
        dmin[235689]=22027.9335804827;
        dmax[235789]=56340.2719353048;
        dmin[235789]=54169.2986552350;
        dmax[236789]=23532.3702786827;
        dmin[236789]=23150.4181033376;
        dmax[245678]=15810.8355875854;
        dmin[245678]=15570.5119933829;
        dmax[245679]=17081.2347066896;
        dmin[245679]=16176.2199818953;
        dmax[245689]=16940.1203366325;
        dmin[245689]=16476.9611983621;
        dmax[245789]=17635.1016233605;
        dmin[245789]=17329.7402154884;
        dmax[246789]=45681.4281547422;
        dmin[246789]=44720.2818710083;
        dmax[256789]=40643.2785623486;
        dmin[256789]=39621.6045258978;
        dmax[345678]=12759.7338033746;
        dmin[345678]=12484.4791560161;
        dmax[345679]=13894.7327532007;
        dmin[345679]=13515.9984748498;
        dmax[345689]=14749.8415659029;
        dmin[345689]=14437.8743815606;
        dmax[345789]=64063.9017266116;
        dmin[345789]=61720.1351494760;
        dmax[346789]=54323.2026290533;
        dmin[346789]=53440.9330337675;
        dmax[356789]=46896.1137450465;
        dmin[356789]=46324.5863871398;
        dmax[456789]=47400.8053412209;
        dmin[456789]=47139.1641099976;
        dmax[1234567]=1298.6855006618;
        dmin[1234567]=187.6007245825;
        dmax[1234568]=1491.9750650953;
        dmin[1234568]=223.3673863063;
        dmax[1234569]=1724.2105056222;
        dmin[1234569]=282.2148528515;
        dmax[1234578]=2303.3924378041;
        dmin[1234578]=266.6182416817;
        dmax[1234579]=3192.9876480144;
        dmin[1234579]=344.0873728810;
        dmax[1234589]=2929.9214445610;
        dmin[1234589]=563.1113497477;
        dmax[1234678]=2548.9055060166;
        dmin[1234678]=434.3364947068;
        dmax[1234679]=3010.2953998723;
        dmin[1234679]=493.3574781930;
        dmax[1234689]=3453.9773810862;
        dmin[1234689]=569.0726610260;
        dmax[1234789]=4616.8603062479;
        dmin[1234789]=1626.5996866744;
        dmax[1235678]=3783.3213056337;
        dmin[1235678]=981.6508458749;
        dmax[1235679]=3717.6187803464;
        dmin[1235679]=1227.1752886146;
        dmax[1235689]=4609.1693726184;
        dmin[1235689]=1842.8698545044;
        dmax[1235789]=5467.0160719606;
        dmin[1235789]=2090.4682308705;
        dmax[1236789]=6793.0866956484;
        dmin[1236789]=2978.8418392789;
        dmax[1245678]=3919.1657507496;
        dmin[1245678]=2052.8523507892;
        dmax[1245679]=5521.3893153312;
        dmin[1245679]=2495.3251907094;
        dmax[1245689]=5737.9434120656;
        dmin[1245689]=2689.5499365372;
        dmax[1245789]=5924.6765386321;
        dmin[1245789]=3245.2574742723;
        dmax[1246789]=8213.9321715499;
        dmin[1246789]=4681.7779475531;
        dmax[1256789]=116672.3144780462;
        dmin[1256789]=112668.1486653372;
        dmax[1345678]=42111.7830760788;
        dmin[1345678]=40791.3714772151;
        dmax[1345679]=43518.5455490796;
        dmin[1345679]=40631.9199806627;
        dmax[1345689]=44863.7229470352;
        dmin[1345689]=40935.3891463184;
        dmax[1345789]=47349.6225536736;
        dmin[1345789]=42691.2014944134;
        dmax[1346789]=48770.4805365565;
        dmin[1346789]=45293.4864288149;
        dmax[1356789]=49207.0078391301;
        dmin[1356789]=46021.4548904976;
        dmax[1456789]=134381.6973255373;
        dmin[1456789]=132102.4887378579;
        dmax[2345678]=7069.0239066953;
        dmin[2345678]=3725.9974728167;
        dmax[2345679]=9321.9322390900;
        dmin[2345679]=4529.0369525895;
        dmax[2345689]=10266.3310179930;
        dmin[2345689]=4712.2985268626;
        dmax[2345789]=15134.4219958536;
        dmin[2345789]=9642.9386421078;
        dmax[2346789]=13294.5607577937;
        dmin[2346789]=8653.0856382868;
        dmax[2356789]=220712.4745010794;
        dmin[2356789]=213214.5674642164;
        dmax[2456789]=157137.1784207973;
        dmin[2456789]=153973.0654041489;
        dmax[3456789]=125797.0641292672;
        dmin[3456789]=123396.3259225896;
        dmax[12345678]=10581.3514556698;
        dmin[12345678]=1552.8631652257;
        dmax[12345679]=12609.0430973263;
        dmin[12345679]=1669.5084794961;
        dmax[12345689]=12888.2430275852;
        dmin[12345689]=1944.1378473185;
        dmax[12345789]=22216.2948490446;
        dmin[12345789]=2282.4925785500;
        dmax[12346789]=24032.8637932755;
        dmin[12346789]=3907.5529613813;
        dmax[12356789]=36149.6295980344;
        dmin[12356789]=8824.4798164677;
        dmax[12456789]=37637.2496743769;
        dmin[12456789]=18418.9426315879;
        dmax[13456789]=422754.5825671131;
        dmin[13456789]=404766.7612967730;
        dmax[23456789]=69551.1413956859;
        dmin[23456789]=34930.4199082499;
        dmax[123456789]=104798.3905297908;
        dmin[123456789]=14762.1738782474;
    }
    
    double p[13];
    
    
    int link(vector<int> s,int ex1,int ex2=-1,int ex3=-1,int ex4=-1){
        int ans=0;
        int n=s.size();
        for(int i=0;i<n;i++){
            if(i==ex1||i==ex2||i==ex3||i==ex4)
                continue;
            else{
                ans*=10;
                ans+=s[i];
            }
        }
        return ans;
    }
    
    vector<int> findnextstate(int state,int sum){
        vector<int>ans;
    
        //cout<<"state="<<state<<" has next states:
      ";
        vector<int> s;
        while(state){
            s.push_back(state%10);
            state/=10;
        }
        reverse(s.begin(),s.end());
        int n=s.size();
        for(int i=0;i<n;i++){
            if(s[i]==sum){
                ans.push_back(link(s,i));
                break;
            }
        }
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(s[i]+s[j]==sum){
                    ans.push_back(link(s,i,j));
                    break;
                }
            }
        }
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                for(int k=j+1;k<n;k++){
                    if(s[i]+s[j]+s[k]==sum){
                        ans.push_back(link(s,i,j,k));
                        break;
                    }
                }
            }
        }
    
    
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                for(int k=j+1;k<n;k++){
                    for(int l=k+1;l<n;l++){
                        if(s[i]+s[j]+s[k]+s[l]==sum){
                            ans.push_back(link(s,i,j,k,l));
                            break;
                        }
                    }
                }
            }
        }
    
        /*for(auto i:ans){
            cout<<i<<",";
        }
        cout<<endl;*/
        return ans;
    }
    
    int antilink(int state,int nstate){
        vector<int> s;
        while(state){
            s.push_back(state%10);
            state/=10;
        }
        reverse(s.begin(),s.end());
    
        vector<int> ns;
        while(nstate){
            ns.push_back(nstate%10);
            nstate/=10;
        }
        reverse(ns.begin(),ns.end());
    
        int ans=0;
        int i=0,j=0;
    
        for(int i=0;i<s.size();i++){
            int notlink=0;
            for(int j=0;j<ns.size();j++){
                if(ns[j]==s[i]){
                    notlink=1;
                    break;
                }
    
            }
            if(notlink==0){
                ans*=10;
                ans+=s[i];
            }
        }
        return ans;
    }
    
    void calc(int state,int sum){
        double maxans=0;
        double minans=0;
    
        int maxansnum=-1;
        int minansnum=-1;
    
        vector<int> ns;
        /*for(int sum=2;sum<=12;sum++)*/{
            ns=findnextstate(state,sum);
            if(ns.size()==0){
                minans+=state;
                maxans+=state;
            }
            else{
                double nmax=-1.0;
                double nmin=1e30;
                for(auto nsi:ns){
                    if(dmax[nsi]>nmax){
                        nmax=dmax[nsi];
                        maxansnum=antilink(state,nsi);
                    }
    
                    if(dmin[nsi]<nmin){
                        nmin=dmin[nsi];
                        minansnum=antilink(state,nsi);
                    }
                    //nmax=max(nmax,dmax[nsi]);
                    //nmin=min(nmin,dmin[nsi]);
                }
    
                maxans=nmax;
                minans=nmin;
            }
        }
    
        //dmax[state]=maxans;
        //dmin[state]=minans;
    
        //cerr<<"state="<<state<<" dmax="<<maxans<<" dmin="<<minans<<endl;
        //printf("dmax[%d]=%.10f;
    dmin[%d]=%.10f;
    ",state,maxans,state,minans);
        //cout<<"dmax["<<state<<"]="<<maxans<<";
    ";
        //cout<<"dmin["<<state<<"]="<<minans<<";
    ";
    
        printf("%d %.5f
    ",minansnum,minans);
        printf("%d %.5f
    ",maxansnum,maxans);
    }
    
    int main(){
        init();
        for(int sum=2;sum<=7;sum++){
            p[sum]=1.0*(sum-1)/36;
        }
        for(int sum=8;sum<=12;sum++){
            p[sum]=1.0*(13-sum)/36;
        }
    
        int state,a,b;
        while(cin>>state>>a>>b){
            calc(state,a+b);
        }
    }
    View Code

     dalao的代码:复杂度真的过关吗?

    #include <bits/stdc++.h>
    using namespace std;
    #define db(x) cerr << #x << "=" << x << endl
    #define db2(x, y) cerr << #x << "=" << x << "," << #y << "=" << y << endl
    #define db3(x, y, z) cerr << #x << "=" << x << "," << #y << "=" << y << "," << #z << "=" << z << endl
    #define dbv(v) cerr << #v << "="; for (auto _x : v) cerr << _x << ", "; cerr << endl
    #define dba(a, n) cerr << #a << "="; for (int _i = 0; _i < (n); ++_i) cerr << a[_i] << ", "; cerr << endl
    typedef long long ll;
    typedef long double ld;
    int sumb[1 << 9], score[1 << 9];
    ld mindp[1 << 9], maxdp[1 << 9];
    char BS[66];
    int main() {
        for (int i = 0; i < (1 << 9); ++i)
            for (int j = 0; j < 9; ++j)
                if (i & (1 << j)) {
                    sumb[i] += j + 1;
                    score[i] = score[i] * 10 + (j + 1);
                }
        int r1, r2;
        scanf("%s%d%d", BS, &r1, &r2);
        int B = 0;
        for (int i = 0; i < strlen(BS); ++i)
            B |= 1 << (BS[i] - '1');
        int tot = r1 + r2;
        for (int b = 0; b < (1 << 9); ++b) {
            for (int i = 1; i <= 6; ++i)
                for (int j = 1; j <= 6; ++j) {
                    int sum = i + j;
                    // try all subsets that sum to sum
                    ld mn = 1e15;
                    ld mx = -1e15;
                    bool has = false;
                    for (int bb = b; bb; bb = (bb - 1) & b) {
                        if (sumb[bb] == sum) {
                            mn = min(mn, mindp[b ^ bb]);
                            mx = max(mx, maxdp[b ^ bb]);
                            has = true;
                        }
                    }
                    if (!has) {
                        mindp[b] += score[b] / 36.L;
                        maxdp[b] += score[b] / 36.L;
                    } else {
                        mindp[b] += mn / 36;
                        maxdp[b] += mx / 36;
                    }
                }
        }
        bool has = false;
        ld mn = 1e15;
        ld mx = -1e15;
        int mnset, mxset;
        for (int bb = B; bb; bb = (bb - 1) & B) {
            if (sumb[bb] == tot) {
                if (mn > mindp[B ^ bb]) {
                    mnset = bb;
                    mn = mindp[B ^ bb];
                }
                if (mx < maxdp[B ^ bb]) {
                    mxset = bb;
                    mx = maxdp[B ^ bb];
                }
                has = true;
            }
        }
        auto calc = [&](int bb) {
            int ret = 0;
            for (int i = 0; i < 9; ++i)
                if (bb & (1 << i)) ret = ret * 10 + (i + 1);
            return ret;
        };
        printf("%d %.5Lf
    ", has ? calc(mnset) : -1, has ? mn : calc(B));
        printf("%d %.5Lf
    ", has ? calc(mxset) : -1, has ? mx : calc(B));
    }
  • 相关阅读:
    CPU飙高,OOM排查?
    反射
    Mybatits
    spring 基础问题
    java中格式化数字0和#区别
    java中File对象的mkdir和mkdirs的区别
    java截取字符串几种方式
    java工厂模式
    Java获取文件路径的几种方式
    jxl生成excel时,增加批注和冻结窗口
  • 原文地址:https://www.cnblogs.com/Yinku/p/10591573.html
Copyright © 2011-2022 走看看