zoukankan      html  css  js  c++  java
  • Codeforces Gym101572 G.Galactic Collegiate Programming Contest (2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017))

    Problem G Galactic Collegiate Programming Contest

     

    这个题题意读了一会,就是几个队参加比赛,根据实时的信息,问你1号队的实时排名(题数和罚时相同的时候并列)。

    暴力模拟,简直要模拟死了。。。有个地方感觉很有意思,就是如果某个队还一道题都没写出来的话根本就不用和1队比较,这里用一个数组存一下出题数大于等于1的队伍,直接比较这些队伍就可以,如果全都比较一遍就会超时,真的,相信我。

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cstdlib>
     6 #include<string.h>
     7 #include<set>
     8 #include<vector>
     9 #include<queue>
    10 #include<stack>
    11 #include<map>
    12 #include<cmath>
    13 using namespace std;
    14 typedef long long ll;
    15 const int INF=0x3f3f3f3f;
    16 double PI=acos(-1.0);
    17 const int maxn=1e5+100;
    18 int s[maxn],t[maxn],num[maxn],flag[maxn];
    19 int main(){
    20     int m,n,a,b,h,ans;
    21     while(~scanf("%d%d",&m,&n)){
    22         memset(flag,0,sizeof(flag));
    23         memset(s,0,sizeof(s));
    24         memset(t,0,sizeof(t));
    25         memset(num,0,sizeof(num));
    26         h=0,ans=0;
    27         for(int i=0;i<n;i++){
    28             scanf("%d%d",&a,&b);
    29                 num[a]++;
    30                 t[a]+=b;
    31                 if(num[a]==1)s[h++]=a;
    32                 if(a==1){
    33                     for(int j=0;j<h;j++){
    34                         int cnt=s[j];
    35                         if(cnt==1)continue;
    36                         if(num[cnt]+1==num[1]&&(t[cnt]<(t[1]-b))){
    37                             ans--;
    38                             flag[cnt]=0;
    39                         }
    40                         else if(num[cnt]==num[1]&&t[cnt]>=t[1]){
    41                             ans--;
    42                             flag[cnt]=0;
    43                         }
    44                     }
    45                 }
    46                 else{
    47                     if(num[a]==num[1]+1&&!flag[a]){
    48                         ans++;flag[a]=1;
    49                     }
    50                     if(num[a]==num[1]&&t[a]<t[1]&&!flag[a]){
    51                         ans++;flag[a]=1;
    52                     }
    53                 }
    54             printf("%d
    ",ans+1);
    55         }
    56     }
    57     return 0;
    58 }
  • 相关阅读:
    Morpheus
    UCSC cancer genome
    LSF 作业系统常用命令
    R 语言处理excel为data.frame
    Expression Atlas
    Oncomine 数据库
    pathlib.Path 类的使用
    DT包 -- R语言中自定义表格数据
    R 目录及文件操作
    R 指定安装镜像的方法
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9703502.html
Copyright © 2011-2022 走看看