• 百度之星初赛一 补题


    1001 小C的倍数问题

    题意:

    根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。

    现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数 的充分必要条件是每一位加起来的和是B的倍数。

    我真是一句mmp啊   wcnmlgb 题目读了半天没读懂  后面的签到题也没心思写了

    看了别人的题解  也算是明白了  自己真的是菜的可以啊

    详细解答:http://blog.csdn.net/qq_36306833/article/details/77127051

    #include <bits/stdc++.h>
    using namespace std;
    
    int main ()
    {
        ios::sync_with_stdio(false);
        int t;
        cin >> t;
        while (t--)
        {
            int n;
            cin >> n;
            n--;
            int res = 0;
            int i=1;
            for(;i*i<n;i++)
            {
                if(n%i ==0 )
                    res+=2;
            }
            if(i*i == n)
                res++;
            cout<< res <<endl;
    
        }
    }

    1006 度度熊的01世界

    题意

    度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成。

    现在给你一个n*m的图像,你需要分辨他究竟是0,还是1,或者两者均不是。

    图像0的定义:存在1字符且1字符只能是由一个连通块组成,存在且仅存在一个由0字符组成的连通块完全被1所包围。

    图像1的定义:存在1字符且1字符只能是由一个连通块组成,不存在任何0字符组成的连通块被1所完全包围。

    连通的含义是,只要连续两个方块有公共边,就看做是连通。

    完全包围的意思是,该连通块不与边界相接触。

    帮FB写 最后感觉没啥问题  wa在一个细节上 四周补0的时候   没写好 把N写成M了

    GG

    #include <bits/stdc++.h>
    using namespace std;
    int N,M;
    char s[105][105];
    
    
    int dx[]={-1,0,0,1}; //4个方向的
    int dy[]={0,1,-1,0};
    void dfs(int x,int y)
    {
        s[x][y] = '#';
        for(int i=0;i<4;i++)
        {
            int fx = x+dx[i];
            int fy = y+dy[i];
            if(s[fx][fy]=='1'&& fx>=0 && fy<=M && fx<=N && fy>=0)
            {
                dfs(fx,fy);
            }
        }
    }
    
    void dfs0(int x,int y)
    {
        s[x][y] = '#';
        for(int i=0;i<4;i++)
        {
            int fx = x+dx[i];
            int fy = y+dy[i];
            if(s[fx][fy]=='0'&& fx>=0 && fy<=M && fx<=N && fy>=0)
            {
                dfs0(fx,fy);
            }
        }
    }
    int main ()
    {
        while (~scanf("%d %d ",&N,&M))
        {
            for(int i =1; i <=N ; i++)
            {
                scanf("%s",s[i]+1);
            }
            M++;N++;
            for(int i=0;i<=M;i++)
                s[0][i] = '0';
            for(int i=0;i<=N;i++)
                s[i][0] ='0';
            for(int i=0;i<=N;i++)
                s[i][M]='0';
            for(int i=0;i<=M;i++)
                s[N][i] ='0';
            int sum0=0 ,sum1 = 0;
            for(int i=0;i<=N;i++)
            {
                for(int j=0;j<=M;j++)
                {
                    if(s[i][j]=='1')
                    {
                        dfs(i,j);
                        sum1++;
                    }
                }
            }
            for(int i=0;i<=N;i++){
                for(int j=0;j<=M;j++)
                {
                    if(s[i][j]=='0')
                    {
                        dfs0(i,j);
                        sum0++;
                    }
                }
            }
            if(sum0 ==1 && sum1 == 1)
                cout << 1 <<endl;
            else if(sum0 ==2 && sum1 ==1 )
                cout << 0<<endl;
            else
                cout<<-1<<endl;
        }
        return 0;
    }

    1005 今夕何夕

    题意
    今天是2017年8月6日,农历闰六月十五。

    小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

    为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

    小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
     
     
    #include<bits/stdc++.h>
    using namespace std;
    
    bool is_run(int y)
    {
        return ((y%4)==0&& (y%100)!=0 || y%400==0);
    }
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int y,m,d;
            scanf("%d-%d-%d",&y,&m,&d);
            int sum =0;
            while (1){
                if(m==2 && d==29)
                {
                    sum = (sum+365*4+is_run(y))%7;
                    y = y+4;
                    if(sum==0 && is_run(y)) break;
                }
                else
                {
                    if(m>2)
                    {
                        sum = (sum+365+is_run(y+1))%7;
                        y++;
                        if(sum==0) break;
                    }
                    else
                    {
                        sum = (sum+365+is_run(y))%7;
                        y++;
                        if(sum==0) break;
                    }
                }
            }
            printf("%d
    ",y);
        }
        return 0;
    }
  • 相关阅读:
    在jupyter notebook 添加 conda 环境的操作详解
    MySQL plugin 'caching_sha2_password' cannot be loaded
    mathtype公式转latex代码
    博客园如何插入latex公式
    pip使用国内源安装
    python读取XML格式文件并转为json格式
    7.用生成函数求解下列递归方程 f(n)=2f(n/2)+cn n>1 f(1)=0 n=1
    用生成函数求解下列递归方程 f(n)=2f(n-1)+1 n>1 f(1)=2 n=1
    《将博客搬至CSDN》
    111111111111111111
  • 原文地址:https://www.cnblogs.com/Draymonder/p/7353207.html
Copyright © 2020-2023  润新知