zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 24

    A题

    分析:SB题,列一个式子搞定

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "string"
     5 using namespace std;
     6 long long n,k;
     7 int main()
     8 {
     9     cin>>n>>k;
    10     long long num=n/2;
    11     num/=(k+1);
    12     cout<<num<<" "<<(num*k)<<" "<<(n-num*(k+1))<<endl;
    13     return 0;
    14 }
    View Code

    B题

    分析:模拟,通过给定条件求出要求序列,注意一下不合法条件的判定

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "string"
     5 #include "cmath"
     6 #include "vector"
     7 using namespace std;
     8 const int maxn=110;
     9 int n,m;
    10 int l[maxn],a[maxn];
    11 int vis[maxn];
    12 int main()
    13 {
    14     cin>>n>>m;
    15     for(int i=1;i<=m;i++)
    16         cin>>l[i];
    17     int num;
    18     int flag=0;
    19     memset(a,0,sizeof(a));
    20     for(int i=1;i<=m-1;i++){
    21         if(l[i+1]>l[i]){
    22             num=l[i+1]-l[i];
    23         }else{
    24             num=l[i+1]+n-l[i];
    25         }
    26         if(a[l[i]]){
    27             if(num!=a[l[i]]){
    28                 flag=1; break;
    29             }
    30         }
    31         else a[l[i]]=num;
    32     }
    33     if(flag){
    34         cout<<"-1"<<endl;
    35         return 0;
    36     }
    37     /*for(int i=1;i<=n;i++)
    38         cout<<a[i]<<" ";
    39     cout<<endl;*/
    40     memset(vis,0,sizeof(vis));
    41         for(int i=1;i<=n;i++)
    42             vis[a[i]]++;
    43     //int flag=0;
    44         for(int i=1;i<=n;i++)
    45             if(vis[i]>1){
    46                 flag=1; break;
    47             }
    48         if(flag){
    49             cout<<"-1"<<endl;
    50         }else{
    51             vector<int>h;
    52             for(int i=1;i<=n;i++)
    53                 if(!vis[i])
    54                     h.push_back(i);
    55             int k=0;
    56             for(int i=1;i<=n;i++)
    57                 if(!a[i])
    58                     a[i]=h[k++];
    59             for(int i=1;i<=n;i++){
    60                 if(i==n) cout<<a[i]<<endl;
    61                 else  cout<<a[i]<<" ";
    62             }
    63         }
    64     return 0;
    65 }
    View Code

    D题

    分析:动态统计每个数出现的次数,一旦出现该数在某个位置出现的次数比A小,则淘汰

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "string"
     5 using namespace std;
     6 const int maxn=1e6+10;
     7 int vis[maxn],d[maxn];
     8 int n,A;
     9 int main()
    10 {
    11     cin>>n>>A;
    12     vis[A]=1;
    13     for(int i=1;i<=n;i++){
    14         int x;
    15         scanf("%d",&x);
    16         if(d[x]<d[A]) vis[x]=1;
    17         d[x]++;
    18     }
    19     int pos=-1;
    20     for(int i=1;i<=maxn-10;i++)
    21         if(d[i]>=d[A]&&!vis[i]){
    22             pos=i; break;
    23         }
    24     cout<<pos<<endl;
    25 }
    View Code
  • 相关阅读:
    “能用”距离“好用”有多远?
    序列化到底是神马?
    新版Microsoft Azure Web管理控制台
    玩转Windows Azure存储服务——高级存储
    Windows 10 Threshold 2 升级记录
    玩转Windows Azure存储服务——网盘
    Windows Azure HDInsight 使用技巧
    Docker on Microsoft Azure
    Azure Linux VM Swap 分区
    Google Cloud Platform
  • 原文地址:https://www.cnblogs.com/wolf940509/p/7098622.html
Copyright © 2011-2022 走看看