zoukankan      html  css  js  c++  java
  • codeforces #232 div2 解题报告

    A:简单题;我们可以把点换成段处理,然后枚举段看是否被霸占了;

      #include<iostream>

    #include<string>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int b[1000];
    int main()
    {
        int n;
        cin>>n;
        int l,r;
        cin>>l>>r;
        for (int i=l;i<r;i++)
            b[i+1]=1;
        for (int i=2;i<=n;i++)
        {
            cin>>l>>r;
            for (int i=l;i<r;i++)
                if (b[i+1]) b[i+1]=0;
        }

        int sum=0;
        for (int i=1;i<=1000;i++)
            if (b[i]) sum++;
        cout<<sum<<endl;
        return 0;

    } 

    B:数学题,题目越长越简单,这个道理没错啊,开始没推出来,猜了个结论;

       可以达到的值的范围是[L,R],[2*L,2*R],[3*L,3*R],......[X*L,X*R],只可能是这些结果。。

      所以XL<=ni<=X*R;

     结论就是:

      if (a/l*l<=a&&a/l*r>=a) cout<<"Yes"<<endl;

    C题:题目简单,但是很难,没做出来。。。。

    大概思路是:先将每个书分解质因数CI,然后将这CI个质因数分配到N个盒子里,组合数学求这个方案数:AI=C(ci+n-1,n-1);ps:我还推不出这个等式啊。。。。。

    ANS=a[i]乘积%10000000007;

    对了求C(N,M)=C(N-1,M-1)+C(N,M-1)可以运用数组求出

     #include<iostream>

    #include<algorithm>
    #include<string.h>
    #include<map>
    using namespace std;
    map<int,int> v;
    const int mod=1000000007;
    int c[18000][1000];
    int n,a[1000],cnt=0;
    long long num[100000];

    void getnum(int x)
    {
        for (int i=2;i*i<=x;i++)
        {
            while (x%i==0) {
                if (v.count(i))
                {
                    num[v[i]]++;
                    x/=i;
                }
                else{
                        v[i]=++cnt;
                num[v[i]]++;
                x/=i;
                }
            }
        }
        if (x==1return;
        if (v.count(x))
            num[v[x]]++;
            else
            {
               v[x]=++cnt;
               num[v[x]]++;
            }
        }

    int main()
    {
        c[0][0]=1;
        for (int i=1;i<=17000;i++)
            for (int j=0;j<=i&&j<=1000;j++)
            {
            if (j==0||j==i) c[i][j]=1;
            else
            c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
            }

        int n;
        cin>>n;
        for (int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            getnum(x);
        }

        long long ans=1;
        for (int i=1;i<=cnt;i++)
            ans=ans*c[num[i]+n-1][n-1]%mod;
        cout<<ans<<endl;
        return 0;
    }

     D题:个人认为这题比C简单,赛后wo耐心的把公式推出了,其实也比较好推的

    ANS:(v[i]-2)u[i]+2*(n-v[i]+1) / (2*u[i]*v[i]);

     卡在求U[I],V[I];

    居然有这样的神结论:因为10^9的素数很密集,可以直接暴力求解,吓尿了。。。。

    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<math.h>

    using namespace std;
    int prime[100002];
    int cnt=0;
    int vis[100000+5];

    void init()
    {
          for (int i=2;i<=100000;i++){
          if (vis[i]) continue;
          prime[++cnt]=i;
          for (int j=i+i;j<=100000;j+=i)
          vis[j]=1;
       }
    }

    long long  gcd(long long  x,long long  y)
    {
        if (x<y) swap(x,y);
        if (x%y==0return y;
        return gcd(y,x%y);
    }

    long long  find1(long long  x)
    {
        while (1)
        {
            int i=1;
                while (i<=cnt)
                {
                if (x%prime[i]==0&&x!=prime[i]) {x--;i=1;continue;}
                i++;
                }
            return x;
        }
    }

    long long  find2(long long  x)
    {
        x++;
        while (1)
        {
            int i=1;
             while (i<=cnt)
             {
                if (x%prime[i]==0&&x!=prime[i]) {x++;i=1;continue;}
                i++;
             }
            return x;
        }
    }

    int main()
    {
       int n;
       init();
       cin>>n;
       for (int i=1;i<=n;i++)
       {
           int x;
           cin>>x;
           long long l=find1(x),r=find2(x);
           long long a=(l-2)*r+2*(x-l+1),b=2*(l*r);
           cout<<a/gcd(a,b)<<"/"<<b/gcd(a,b)<<endl;
       }

       return 0;

    }

     可见我弱的一般性。。。

    随性Code
  • 相关阅读:
    vs2017默认以管理员运行
    net abp core的appservice中访问httpcontext对象
    .net core 支持apk下载
    EF Core 2.1变化
    .Net 高效开发之不可错过的实用工具
    win10 远程出现身份验证错误 要求的函数不受支持
    分享个百度网盘下载工具
    mysql迁移sqlserver
    2020.08.11 【ABAP随笔】-ITS Mobile 配置
    2020.05.07 【ABAP随笔】- ABAP-SM30删除前检查
  • 原文地址:https://www.cnblogs.com/forgot93/p/3574563.html
Copyright © 2011-2022 走看看