• CF803


    链接:http://codeforces.com/contest/803

    A:Maximal Binary Matrix

     1 #include<cstdio>
     2 #include<cstring>
     3 int m[110][110];
     4 
     5 int main()
     6 {
     7     int n,k;
     8     scanf("%d%d",&n,&k);
     9 
    10         for(int i=0;i<n&&k;i++)
    11         {
    12             m[i][i]=1;
    13             k--;
    14             for(int j=i+1;j<n&&k;j++)
    15             {
    16                 if(k>=2)
    17                 {
    18                     m[i][j]=m[j][i]=1;
    19                     k-=2;
    20                 }
    21             }
    22         }
    23         if(k==0)
    24         for(int i=0;i<n;i++)
    25             for(int j=0;j<n;j++)
    26         {
    27             printf("%d%c",m[i][j],(j==n-1?'
    ':' '));
    28         }
    29         else puts("-1");
    30 
    31 }
    View Code

    B:Distances to Zero

    做的有点蠢。。

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 using namespace std;
     5 const int maxn=200010;
     6 int a[maxn],d[maxn];
     7 
     8 int main()
     9 {
    10     int n;
    11     scanf("%d",&n);
    12     int last=0;
    13     for(int i=0;i<n;i++)
    14     {
    15         d[i]=0x3f3f3f3f;
    16         scanf("%d",&a[i]);
    17         if(a[i]==0)
    18         {
    19             int ct=0;
    20             for(int j=i;j>=last;j--)
    21                 d[j]=min(ct++,d[j]);
    22             last=i+1;
    23         }
    24     }
    25     last=n-1;
    26     for(int i=n-1;i>=0;i--)
    27     {
    28         if(a[i]==0)
    29         {
    30             int ct=0;
    31             for(int j=i;j<=last;j++)
    32                 d[j]=min(ct++,d[j]);
    33             last=i-1;
    34         }
    35     }
    36     for(int i=0;i<n-1;i++)
    37         printf("%d ",d[i]);
    38     printf("%d
    ",d[n-1]);
    39 }
    View Code

     C:Maximal GCD

     弄了好久,没有注意数据范围的问题,溢出!!!
     1 #include<cstdio>
     2 #include<cstring>
     3 #define ll long long
     4 
     5 int main()
     6 {
     7     ll n,k;
     8     scanf("%lld%lld",&n,&k);
     9     if(k>1e6) // 当除数为1时用求和公式可算出n最多分成的数字小于1e6
    10     {
    11         puts("-1");
    12         return 0;
    13     }
    14     ll b=n/(k*(k+1)/2);  //除数小于等于b
    15     if(b==0)
    16     {
    17         puts("-1");
    18         return 0;
    19     }
    20     ll r=1;
    21     for(ll x=1;x*x<=n;x++)
    22     {
    23         if(n%x==0)
    24         {
    25             if(x<=b&&x>r) r=x;
    26             if(n/x<=b&&n/x>r) r=n/x;  // 必要,如(24,2)
    27         }
    28     }
    29     for(int i=1;i<k;i++)
    30         printf("%lld ",r*i);
    31     n-=r*k*(k-1)/2;
    32     printf("%lld
    ",n);
    33 
    34     return 0;
    35 }
    View Code

     D:Magazine Ad

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<string>
     4 #include<iostream>
     5 using namespace std;
     6 const int maxn=1e9;
     7 int k,n;
     8 string s;
     9 int check(int w)
    10 {
    11     int ans=0;
    12     int l=0;
    13     while(l<n)
    14     {
    15         ans++;
    16         int r=l+w;
    17         if(r>=n) break;
    18         while(r>l&&s[r-1]!=' '&&s[r-1]!='-') r--;
    19         if(r==l) return maxn;
    20         l=r;
    21     }
    22     return ans;
    23 }
    24 int main()
    25 {
    26     scanf("%d",&k);
    27     getchar();
    28     getline(cin,s);
    29     n=s.length();
    30     int l=0,r=n;
    31     while(r-l>1)
    32     {
    33         int m=(l+r)/2;
    34         if(check(m)<=k) r=m;
    35         else l=m;
    36     }
    37    printf("%d
    ",r);
    38     return 0;
    39 }
    View Code
  • 相关阅读:
    Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block 解决办法
    unknown host www.baidu.com 解决方法
    [Errno 256] No more mirrors to try 解决方法
    超级优化锁定系统重要文件防止篡改
    隐藏linux软件及内核版本
    linux内核参数注释与优化
    Linux内核参数基础优化
    ulimit linux文件配置
    history历史记录控制
    TMOUT优化终端超时
  • 原文地址:https://www.cnblogs.com/yijiull/p/6788859.html
Copyright © 2020-2023  润新知