• codeforces #330 div2


    A:

    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<map>
    #include<iostream>
    #include<vector>
    #include<cstring>
    #include<queue>
    #include<string>
    using namespace std;
    int n,m;
    int ans;
    int a,b;
    int main()
    {
       //freopen("input.txt","r",stdin);
        cin>>n>>m;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                   cin>>a>>b;
                   if(a||b)
                    ans++;
            }
        }
        cout<<ans<<endl;
    }

    B:

    暴力,pow函数误差太大。。。。

    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<map>
    #include<iostream>
    #include<vector>
    #include<cstring>
    #include<queue>
    #include<string>
    using namespace std;
    int n,k,f;
    int a[100005];
    int b[100005];
    int ans[100005];
    int cnt=0;
    long long res=1LL;
    int xx;
    const long long gg=1e9+7;
    int g[15]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
    int main()
    {
     // freopen("input.txt","r",stdin);
        scanf("%d %d",&n,&k);
        f=n/k;
        xx=g[k]-1;
        for(int i=0;i<f;i++)
         scanf("%d",&a[i]);
        for(int i=0;i<f;i++)
         scanf("%d",&b[i]);
        for(int i=0;i<f;i++)
        {
            int w1=xx/a[i]+1;
            int y1=g[k-1]*b[i];
            int y2=g[k-1]*(b[i]+1);
            int mod1=y1%a[i];
            if(mod1==0)
              y1-=a[i];
            int mod2=y2%a[i];
            if(mod2==0)
                y2-=a[i];
            ans[i]=w1-((y2-mod2)-(y1+a[i]-mod1))/a[i]-1;
            res=(res*(long long)ans[i])%gg;
           // printf("%d %d %d %d
    ",w1,y1+a[i]-mod1,y2-mod2,ans[i]);
        }
        printf("%I64d
    ",res);
    }

    C:

    一道博弈论,正面很难想,那么就从反面想:

    如果剩下的是L,R;

    A,他要剩下的最小,他肯定是删L,R外面的。

    B,他要剩下的大,肯定是删L,R里面的。

    所以答案肯定就是a[x]-a[x-n/2],因为小的那个先取,所以取min。

    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<map>
    #include<iostream>
    #include<vector>
    #include<cstring>
    #include<queue>
    #include<string>
    using namespace std;
    typedef long long LL;
    int n;
    LL a[200000+5];
    int main()
    {
      //freopen("input.txt","r",stdin);
      LL ans=1<<30;
      scanf("%d",&n);
     for(int i=1;i<=n;i++)
         scanf("%I64d",&a[i]);
     sort(a+1,a+n+1);
     for(int i=n/2+1;i<=n;i++)
     {
         ans=min(ans,a[i]-a[i-n/2]);
     }
     printf("%I64d
    ",ans);
    }
  • 相关阅读:
    Linux目录操作
    图形库
    Mybatis两表连接(一对一)
    ssm图片上传到数据库
    ajax函数实例
    html、css基础
    HDU 1213 How Many Tables
    HTML5简介
    在script中创建标签的三种方式
    html css js jq问题总结
  • 原文地址:https://www.cnblogs.com/acliang/p/4990109.html
Copyright © 2020-2023  润新知