2017中国大学生程序设计竞赛

HDU - 6023

【题意】:求AC题数和总时长。

【分析】:模拟。设置标记数组记录AC与否,再设置错题数组记录错的次数。罚时罚在该题上,该题没AC则不计入总时间,AC则计入。已经AC的题不用再管,因为不会再罚时

【代码】:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#define ll long long
#define inf 0x3fffffff
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;

int main()
{
    int t;
    int n,m;
    int x,hh,mm,num,time;
    char s[10];
    int vis[1000],wa[1000];//标记AC与否 标记某题WA次数
    scanf("%d",&t);
    while(t--)
    {
        num=time=0;
        mem(vis,0);
        mem(wa,0);
        scanf("%d%d",&n,&m);
        for(int i=0;i<m;i++)
        {
            scanf("%d%d:%d%s",&x,&hh,&mm,s);
            x-=1000;
            if(vis[x])//AC过的不再访问
                continue;
            if(s[0]=='A')//A了的话
            {
                num++;//A题数++
                time+=hh*60+mm+wa[x]*20;
                vis[x]=1;
            }
            else
            {
                wa[x]++;
            }
        }
        printf("%d %d
",num,time);
    }
}
悲惨七夕
原文地址:https://www.cnblogs.com/Roni-i/p/7445976.html