noip2016普及组--海港

题目:

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

代码如下

#include <iostream>
#include <cstdio>
#include <queue>

using namespace std;
struct passengers
{
    int pt,px;//存入每个乘客的时间和国籍
};
queue <passengers> 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<k;i++)
        {
            scanf("%d",&x);//k个人每个人的国籍
            passengers m;
&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值