zoukankan      html  css  js  c++  java
  • Codeforces Round #209 (Div. 2)

    A:

    要么是两次要么4次,判断是否在边界;

     1 #include<cstdio>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n,m,x;
     7     bool flag=0;
     8     scanf("%d%d",&n,&m);
     9     for(int i=0; i<n; i++)
    10         for(int j=0; j<m; j++)
    11         {
    12             scanf("%d",&x);
    13             if(x==1&&(i==0||i==n-1||j==0||j==m-1))
    14                 flag=1;
    15         }
    16     if(flag)puts("2");
    17     else puts("4");
    18     return 0;
    19 }
    View Code

    B:

    太简单了;

     1 #include<cstdio>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n,k;
     7     scanf("%d%d",&n,&k);
     8     for(int i=1;i<=k;i++)
     9         printf("%d %d ",i*2,i*2-1);
    10     for(int i=k+1;i<=n;i++)
    11         printf("%d %d ",i*2-1,i*2);
    12     return 0;
    13 }
    View Code

    C:

    分子每个都是N-1项的,所以从他们的最小的那个开始;

    如果有k的整数倍个,就把他们合成一个,然后找到最小的那个不能合成的;

     1 #include<cstdio>
     2 #include<map>
     3 #include<iostream>
     4 #define maxn 100005
     5 #define ll long long
     6 #define mod 1000000007
     7 using namespace std;
     8 ll d[maxn],sum;
     9 ll num[maxn];
    10 map<ll,ll>mp;
    11 map<ll,ll>::iterator it;
    12 
    13 ll Pow(ll x,ll k)
    14 {
    15     if(k==0)
    16         return 1;
    17     if(k==1)
    18         return x;
    19     ll c=Pow(x,k>>1);
    20     if(k&1)
    21         return ((c*(x%mod))%mod)*c%mod;
    22     else
    23         return c*c%mod;
    24 }
    25 
    26 int main()
    27 {
    28     int n;
    29     ll k,ans;
    30     cin>>n>>k;
    31     for(int i=0; i<n; i++)
    32     {
    33         cin>>num[i];
    34         sum+=num[i];
    35     }
    36     for(int i=0; i<n; i++)
    37     {
    38         mp[sum-num[i]]++;
    39     }
    40     for(it=mp.begin(); it!=mp.end(); it++)
    41     {
    42         if(it->second)
    43         {
    44             if(it->second%k==0)
    45                 mp[it->first+1]+=it->second/k;
    46             else
    47             {
    48                 if(it->first<=sum)
    49                     ans=it->first;
    50                 else ans=sum;
    51                 break;
    52             }
    53         }
    54     }
    55     cout<<Pow(k,ans)<<endl;
    56     return 0;
    57 }
    View Code
  • 相关阅读:
    gitlab 本地 定时备份
    centos 7 部署 汉化版 gitlab
    ELK开机启动 service文件内容
    通过 kms 激活 office 2016
    让 kibana 后台启动的方案
    centos7 yum 安装 redis
    域账户登录时提示“你的账户配置不允许使用这台电脑。请试一下其他电脑” 解决方案
    gitlab 接入 openldap、AD
    VS访问不到TFS、VS连接TFS报TF30063
    php--纯静态和伪静态的区别与关系
  • 原文地址:https://www.cnblogs.com/yours1103/p/3417570.html
Copyright © 2011-2022 走看看