zoukankan      html  css  js  c++  java
  • [群内模拟3.25]过生日,方程狂魔,监视

      这一周是clz出题,他的博客:http://www.cnblogs.com/pinkrabbit

      一共是3题,整体难度大约是普及+/提高,三题覆盖了DP、数学和图论的内容。难度排序是T1<T2<T3。

      第一题:过生日,要求给定一个01图,求一个最大的正方形覆盖的区域都是0的正方形边长。

      容易看出这就是一个O(nm)的dp,f[i][j]表示以(i,j)为右下角的点的正方形的最大边长。

      对于一个不在左或上边界的点,我们找出它左边和上方的最长0段(扫的时候顺便计算)和左上角的点的最大正方形边长取个min就是它的最大边长。

      本题细节不多,大约普及T4的难度。

      代码如下:

    #include<cstdio>
    using namespace std;
    int n,m,row[3001],lin,dp[2][3001],maxn;
    int mn(int x,int y){return x<y?x:y;}
    int mx(int x,int y){return x>y?x:y;}
    int main()
    {
        freopen("birthday.in","r",stdin);
        freopen("birthday.out","w",stdout);
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            lin=0;
            for(int j=1;j<=m;j++)
            {
                char c=getchar();
                while(c!='0'&&c!='1')c=getchar();
                bool a=c=='0'?0:1,k=i&1;
                if(a)lin=j,row[j]=i;
                int sq=mn(i-row[j],j-lin);
                sq=mn(sq,dp[k^1][j-1]+1);
                dp[k][j]=sq;
                maxn=mx(maxn,dp[k][j]);
            }
        }
        maxn>2?printf("%d",maxn):printf("Impossible");
        return 0;
    }

      第二题:方程狂魔,求的所有正整数对(x,y);

      思路:由题中方程组我们可以通分得到,那么把它分解可得,也就是要计算的正因数个数。

         那么我们根据因数个数公式:进行质因数分解,用筛法处理就做完了(不会线筛的悲哀)。

         赞一下出题人,细节真心少,码起来带劲!


      P.S.1:我在题面中被出题人狠狠地D了一番。。

      P.S.2:公式打得好累。。

      下面贴上代码:

    #include<cstdio>
    using namespace std;
    const long long clz=1000000007;
    int n;long long ans=1;
    bool prime[10000001];
    int main()
    {
        freopen("devil.in","r",stdin);
        freopen("devil.out","w",stdout);
        scanf("%d",&n);
        for(int i=2;i<=n;i++)if(!prime[i])
        {
            for(int j=i+i;j<=n;j+=i)prime[j]=1;
            long long m=0;
            for(long long j=i;j<=n;j*=i)m+=n/j;
            ans=(ans*(m*2+1))%clz;
        }
        printf("%d",ans);
        return 0;
    }

      第三题 监视

      还记得被NOIP2016的Day1T2的天天爱跑步(running)支配的恐惧吗!完完全全的原题!不过加上了最小生成树建树。

      难度:显然是提高D1T2。

      代码就不贴了吧。

      树的处理什么的都是大!丧!题!

    本文由qrc出品,若不在本博客上看到,请与本人联系。 网址:http://www.cnblogs.com/qrcer
  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/qrcer/p/clz.html
Copyright © 2011-2022 走看看