• 【PAT甲级】1056 Mice and Rice (25 分)


    题意:

    输入两个正整数N和M(<=1000),接着输入两行,每行N个数,第一行为每只老鼠的重量,第二行为每只老鼠出战的顺序。输出它们的名次。(按照出战顺序每M只老鼠分为一组,剩余不足M只为一组,每组只能有一个胜者,其他老鼠排名均为这一轮胜者数量+1)

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int n,m;
     5 int a[1007],b[1007];
     6 int num;
     7 int ans[1007];
     8 int c[1007],d[1007];
     9 pair<int,int>e[1007];
    10 int flag;
    11 bool vis[1007];
    12 void contest(){
    13     int cnt=0;
    14     int round=0;
    15     int no=0;
    16     for(int i=1;i<=num;++i){
    17         c[++cnt]=b[i];
    18         if(cnt==m||i==num){
    19             ++round;
    20             int mx=a[c[1]],pos=c[1];
    21             for(int j=2;j<=cnt;++j)
    22                 if(a[c[j]]>mx){
    23                     mx=a[c[j]];
    24                     pos=c[j];
    25                 }
    26             for(int j=1;j<=cnt;++j)
    27                 if(c[j]==pos)
    28                     d[++no]=c[j];
    29                 else
    30                     vis[c[j]]=1;
    31             cnt=0;
    32         }
    33     }
    34     for(int i=1;i<=num;++i)
    35         if(!ans[b[i]]&&vis[b[i]])
    36             ans[b[i]]=round+1;
    37     if(round==1){
    38         ans[d[1]]=1;
    39         flag=1;
    40     }
    41     for(int i=1;i<=no;++i)
    42         b[i]=d[i];
    43     num=no;
    44     no=0;
    45 }
    46 int main(){
    47     ios::sync_with_stdio(false);
    48     cin.tie(NULL);
    49     cout.tie(NULL);
    50     cin>>n>>m;
    51     for(int i=1;i<=n;++i)
    52         cin>>a[i];
    53     for(int i=1;i<=n;++i){
    54         cin>>b[i];
    55         ++b[i];
    56     }
    57     num=n;
    58     while(!flag)
    59         contest();
    60     cout<<ans[1];
    61     for(int i=2;i<=n;++i)
    62         cout<<" "<<ans[i];
    63     return 0;
    64 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    问题:关于抛出例外的一个问题。
    向北京球迷致敬!!!
    [下载]高质量C++C编程指南
    WinCE.NET中播放声音
    WINCE.NET中程序只运行一次
    解决vs2003开发PDA(wince.net4.2)调试与部署问题
    WinCE.NET中设置系统日期时间
    网页上发送mail(PHP)
    点阵字库预览工具 V1.0.0
    WINCE.NET4.2下如何获取程序当前运行目录
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11674701.html
Copyright © 2020-2023  润新知