????????

acmlgt  发布于5年前 329 阅读 评论(0)

OJ????????????????????????1???????????????????????????????????1?????????????????????????????????????????????????????????????


????: ????

    ??????????????????????

    ????????????????????????????????????4210

    ????????????????????????????????????????????????????????????????????????????

    ??????1777?4?30??
   
    ????????????????????5343??????????1791?12?15??

    ?????????????????8113  

    ?????????????????

?????????yyyy-mm-dd, ???1980-03-21

??????????????????
???????????????????????????????

???1799-07-16


??: ?????


    ???????????????????????????????

    ????????????36 x 495 = ?

    ???????396 x 45 = ?

    ????????????????????

    ?? 36 * 495 = 396 * 45 = 17820

    ???????????????????27 * 594 = 297 * 54

    ?? a b c d e ??1~9???5??????????????????0?

    ?????? ab * cde = adb * ce ?????????????


??????????????????????????????

?????????????????????????????


????????????
??????????????????????????????????????
???

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int i,j,k,l,a,b,c,d,e,count = 0;
    for(a=1;a<=9;a++)
    {
        for(b=1;b<=9;b++)
        {
            if(b==a) continue;
            for(c=1;c<=9;c++)
            {
                if(c==b||c==a)  continue;
                for(d=1;d<=9;d++)
                {
                    if(d==a||d==b||d==c) continue;
                    for(e=1;e<=9;e++)
                    {
                        if(e==a||e==b||e==c||e==d) continue;
                        i = a*10+b;
                        j = c*100+d*10+e;
                        k = a*100+d*10+b;
                        l = c*10+e;
                        if(i*j==k*l) count++;
                    }
                }
            }
        }
    }
    cout<<count<<endl;
    return 0;
}

????: ?39???

    ??????????39?????????????????????????????39?!

    ?????????????????

    ??????????1??2??????????????????????????????????????????39???????????????


    ????????????????????

???????????
???????????????????????

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int f1[40] = {0,1,1};
    int f2[40] = {0,0,1};
    for(int i=3;i<=39;i++)
    {
        f1[i] = f2[i-1]+f2[i-2];
        f2[i] = f1[i-1]+f1[i-2];
    }
    cout<<f2[39]<<endl;
    return 0;
}


??: ?????


    ?????0.61803... ??????????????????????????????????????????

    ??????????????????????????????????????????????????????????????????????????????????????????????????!!


    ????????????????????????????????

    ?????????????

                  1
    ??? = ---------------------
                        1
             1 + -----------------
                          1
                 1 + -------------
                            1
                     1 + ---------
                          1 + ...

                          

    ???????????????????????????

    ??????????????????????????????????100??

    ????3?????0.618
    ????4?????0.6180
    ????5?????0.61803
    ????7?????0.6180340
   ??????0??????

???????????????100??????????

??????????? ???0?????

????????????????100??????????????????
????????????????????????

?????????????


?????????

    ??????? needle_start???????haystack_start???????????????NULL?

    ???"abcd1234" ???? "abc" ???

char* prefix(char* haystack_start, char* needle_start)
{
    char* haystack = haystack_start;
    char* needle = needle_start;

   
    while(*haystack && *needle){
        if(___*haystack++ != *needle++___________________________) return NULL;  //????
    }
   
    if(*needle) return NULL;
   
    return haystack_start;
}


?????????????????????????
????????????????????????????????????


???????

    ?????????????????????????

    ?????????????????????????????????????????????????????

    ?????????????????????

    ????????????????0????????????????????????????????????????1??????????!!

    ????????????

    ??x???????????len???????

void sort3p(int* x, int len)
{
    int p = 0;
    int left = 0;
    int right = len-1;
   
    while(p<=right){
        if(x[p]<0){
            int t = x[left];
            x[left] = x[p];
            x[p] = t;
            left++;
            p++;
        }
        else if(x[p]>0){
            int t = x[right];
            x[right] = x[p];
            x[p] = t;
            right--;           
        }
        else{
            _______p++___________________;  //????
        }
    }
   
}

   ???????
   25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0
   ??????
   -3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25
   


????????????????????????
????????????????????????????????????


???????

    ???????????????????????

    ????????ID?????????ID???????ID????????????

    ????????????ID?????????????????ID???????ID???

    ???????????????ID????ID?

    ?????????????????

????????????N(N<100)?????????
????N????
???????????????????????100?????????100000?
????????ID??

??????1???????m n???????
???m????ID?n????ID

???
?????
2
5 6 8 11 9
10 12 9

??????
7 9


????
?????
6
164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196
172 189 127 107 112 192 103 131 133 169 158
128 102 110 148 139 157 140 195 197
185 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190
149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188
113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147 198 111 119

??????
105 120
  

?????
?????? < 64M
CPU??  < 1000ms


??????????????????????????...? ??????

????????????????????????????

??: main??????0
??: ???ANSI C/ANSI C++ ?????????????????????????
??: ????????????????? #include <xxx>? ?????????????????

??????????????????
???

#include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
int Convert(char *s)
{
    int i,ans=0;
    for(i=0;s[i]!='\0';i++)
        ans =ans*10+s[i]-'0';
    return ans;
}

bool cmp(int a,int b)
{
    return a<=b;
}
int main()
{
    char S[101][1001];
    int i,j,N,ID[10001],m,n,sta,Count = 0;
    cin>>N;
    getchar();
    for(i=1;i<=N;i++)
    {
        gets(S[i]);
        for(j=0,sta=0;S[i][j]!='\0';j++)
        {
            if(S[i][j]==' ')
            {
                S[i][j] = '\0';
                ID[Count++] = Convert(S[i]+sta);
                sta = j+1;
            }
        }
        ID[Count++] = Convert(S[i]+sta);
    }
    sort(ID,ID+Count,cmp);
    for(i=0;i<Count-1;i++)
    {
        if(ID[i+1]-ID[i]>1) m = ID[i]+1;
        if(ID[i]==ID[i+1]) n = ID[i];
    }
    cout<<m<<" "<<n<<endl;
    return 0;
}


????????

    ????????????????

    ????????????????? * ?????? o ????????????????

    ?????????**oo***oooo
   
    ??????????????????oooo***oooo

    ???????????????????????????????????????????,???????????????????
    ???????????????????????????
  
?????
????????????????????????????????<1000

?????
?????????????

???
?????
**********
o****o****

???????
5

????
?????
*o**o***o***
*o***o**o***

???????
1




?????
?????? < 64M
CPU??  < 1000ms


??????????????????????????...? ??????

????????????????????????????

??: main??????0
??: ???ANSI C/ANSI C++ ?????????????????????????
??: ????????????????? #include <xxx>? ?????????????????

??????????????????
???

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    char src[1001],dst[1001];
    cin>>src>>dst;
    int i,Num=0,len = strlen(src);
    for(i=0;i<len;i++)
    {
        if(src[i]==dst[i]) continue;
        else
        {
            Num++;
            if(src[i]=='*') src[i] = 'o';
            else src[i] = '*';
            if(src[i+1]=='*') src[i+1] = 'o';
            else src[i+1] = '*';
        }
    }
    cout<<Num<<endl;
    return 0;
}

??????

    100 ????????????100 = 3 + 69258 / 714

    ???????100 = 82 + 3546 / 197

    ????????????1~9??????????????0??

    ?????????100 ? 11 ?????

?????
????????????N (N<1000*1000)
??????????1~9????????????????????
???????????????????????


???
?????
100
?????
11

????
?????
105
?????
6


?????
?????? < 64M
CPU??  < 3000ms


??????????????????????????...? ??????

????????????????????????????

??: main??????0
??: ???ANSI C/ANSI C++ ?????????????????????????
??: ????????????????? #include <xxx>? ?????????????????

??????????????????

???
#include <iostream>
#include <cstdio>
using namespace std;
bool Check1(int a[],int n)    //?????0?????
{
    if(a[0]!=0) return false;
    for(int i=1;i<n;i++)
        if(a[i]>1) return false;
    return true;
}

bool Check2(int a[],int n)    //??????????
{
    if(a[0]!=0) return false;
    for(int i=1;i<n;i++)
        if(a[i]!=1) return false;
    return true;
}

void IsSave(int a[],int elem,bool flag)//?????????????
{
    while(elem)
    {
        if(flag==true) a[elem%10]++;
        else a[elem%10]--;
        elem/=10;
    }
}
int main()
{
    int N,m,dstCount = 0;
    cin>>N;
    for(m=1;m<N;m++)
    {
        int i,t,Num[10]={0},c,d;
        IsSave(Num,m,true);//????m???
        if(!Check1(Num,10))    continue;
        for(d=1;d<10000;d++)
        {
            IsSave(Num,d,true);//????d???
            if(!Check1(Num,10))
            {
                IsSave(Num,d,false);//??????????d???
                continue;
            }
            c= (N-m)*d;
            IsSave(Num,c,true);//????c???
            if(Check2(Num,10)) dstCount++;
            IsSave(Num,d,false);//????d???
            IsSave(Num,c,false);//????c???
        }
    }
    cout<<dstCount<<endl;
    return 0;
}

????????

    ???????????????????????

    ?1~N???????????????????????????????

    ????[L, R] ?????????????L???R?????????????????R-L+1???????????????????

    ?N?????????????????????N????????????????????????????

?????
?????????N (1 <= N <= 50000), ?????????
????N??????Pi(1 <= Pi <= N)? ???N??????????

?????
???????????????????

???
?????
4
3 2 4 1

??????
7

?????
5
3 4 2 5 1

??????
9

???
????????7?????????[1,1], [1,2], [1,3], [1,4], [2,2], [3,3], [4,4]
????????9?????????[1,1], [1,2], [1,3], [1,4], [1,5], [2,2], [3,3], [4,4], [5,5]


?????
?????? < 64M
CPU??  < 5000ms


??????????????????????????...? ??????

????????????????????????????

??: main??????0
??: ???ANSI C/ANSI C++ ?????????????????????????
??: ????????????????? #include <xxx>? ?????????????????

??????????????????

 ?????????????????????
 
 





 
 
 
 
Vote: I like it 0 Vote: I do not like it

Reply: Reply it before Login