noip2016普及组--海港

题目:

这道题主要的思路是用一个结构体队列存每个人来的时间和他的国籍,用一个数组存每个国籍的人来的次数,是第一次来总数sum便加一。如果这个队列的第一个人到达的时间超过了一天,就把这个人删除,同时数组[这个人的国籍]减一,当这个国籍的人数为0时,sum减一,每检查一个人就删除一个人,直到队列的首位时间不超过一天,循环结束。

代码如下

#include 
#include 
#include 

using namespace std;
struct passengers
{
    int pt,px;//存入每个乘客的时间和国籍
};
queue  ship;//存入每个人的到来时间和国籍
int ans[100005];//存入每个国籍的人数
int main()
{
    int n;
    cin>>n;
    int sum=0;
    while(n--)
    {   int t,k,x;
        scanf("%d%d",&t,&k);//船来的时间和人数
        for(int i=0;i


借鉴于 csdn 青天璇

你可能感兴趣的:(ACM修炼)