codeforces Round #131 div2水题报告

来源:互联网 发布:狸窝mac版下载 编辑:程序博客网 时间:2024/06/05 06:13

只会前两个,早上起来看c题……貌似就是div1的A题,看不太懂,不过貌似不难……

a题……没啥说的,暴力过

#include<iostream>

#include<cstdio>

#include<cstring>

#include<vector>

#include<string>

#include<algorithm>

#include<cmath>

using name space std;

int main()

{intn,m;

while

(~scanf("%d %d",&n,&m))

{

int cnt=0;

for(inti=0;i<1000;i++)

{

for(intj=0;j<1000;j++)

{

if(i*i+j==n&&i+j*j==m)

{

cnt++;}

}

}

printf("%d\n",cnt);}

return0;

}

第二题,貌似做法比较抽风,浪费时间,考虑不全……相当智障……

#include <iostream>

#include <cstdio>

#include <cstring>

#include <vector>

#include <string>

#include <algorithm>

#include <cmath>

using namespace std;


bool cmp(int a,int b)

{

    return a>b;

}

int a[100010];

int num[10];

int main()

{

    int n;

    while(~scanf("%d",&n))

    {

        int sum=0;

        int flag=0;

        memset(num,0,sizeof(num));

        for(int i=0; i<n; i++)

        {

            scanf("%d",&a[i]);

            sum+=a[i];

            num[a[i]]++;

            if(a[i]==0)

                flag=1;

        }

        sort(a,a+n,cmp);


        int mark=0;

        if(flag)

        {




                if(sum%3==1)

                {

                    if(num[1])

                    {

                        num[1]--;

                    }

                    else if(num[4])

                    {

                        num[4]--;

                    }

                    else if(num[7])

                    {

                        num[7]--;

                    }

                    else if(num[2]>1)

                    {

                        num[2]-=2;

                    }

                    else if(num[2]&&num[5])

                    {

                        num[2]--;

                        num[5]--;

                    }

                    else if(num[5]>=2)

                    {

                        num[5]-=2;

                    }

                    else if(num[5]&&num[8])

                    {

                        num[5]--;

                        num[8]--;

                    }

                    else flag=0;

                }

                else if(sum%3==2)

                {


                    if(num[2])

                    {

                        num[2]--;

                    }

                    else if(num[5])

                    {

                        num[5]--;

                    }

                    else if(num[8])

                    {

                        num[8]--;

                    }

                    else if(num[1]>=2)

                    {

                        num[1]-=2;

                    }

                    else if(num[4]>=2)

                    {

                        num[4]-=2;

                    }

                    else if(num[1]&&num[4])

                    {

                        num[1]--;

                        num[4]--;

                    }

                    else if(num[1]&&num[7])

                    {

                        num[1]--;

                        num[7]--;

                    }

                    else if(num[7]>=2)

                    {

                        num[7]-=2;

                    }

                    else flag=0;

                }

                else flag=1;




        }

        if(flag)

        {

            for(int i=1; i<=9; i++)

            {

                if(num[i]>=1)

                {

                    mark=1;

                    break;

                }

            }


            if(mark)

            {

                for(int i=9; i>=0; i--)

                {

                    for(int j=0; j<num[i]; j++)

                        cout<<i;

                }

                cout<<endl;

                continue;

            }

            else cout<<0<<endl;


        }

        else

        {

            int t=0;

            for(int i=0;i<n;i++)

            {

                if(a[i]==0)

                {

                    t=1;

                    cout<<0<<endl;

                    break;

                }

            }

            if(t==0)

            cout<<"-1"<<endl;

        }

    }

    return 0;

}

后面的没看……估计不会……水呀

原创粉丝点击