问题标题: 酷町堂:2969,救命

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者
#include <bits/stdc++.h>
using namespace std;
int b[5555];
int main(){
    int p[11111],t[11111];
    int n;
    cin>>n;
    int mx=0;
    for(int i=1;i<=n;i++){
        cin>>p[i]>>t[i];
        mx=max(mx,t[i]);
    }
    int xtn=0;
    for(int i=1;i<=mx;i++){
        int cnt=0;
        int tc=0;
        bool f=0;
        for(int j=1;j<=n;j++){
            if(t[j]==mx){
                t[j]=1;
                i+=59;
                tc=p[j];
                f=1;
            }
            if(f==1){
                if(p[j]==tc&&t[j]<=i&&b[j]==0){
                    ++cnt;
                    b[j]=1;
                }
            }
        }
        if(cnt>0){
            xtn++;
        }
    }
    cout<<xtn;
    return 0;
}
rt,求大神指导

 

汪宇航在2021-10-16 20:11:29追加了内容
#include <bits/stdc++.h>
using namespace std;
int b[5555];
int main(){
    int p[11111],t[11111];
    int n;
    cin>>n;
    int mx=0;
    for(int i=1;i<=n;i++){
        cin>>p[i]>>t[i];
        mx=max(mx,t[i]);
    }
    int xtn=0;
    for(int i=1;i<=mx;i++){
        int cnt=0;
        int tc=0;
        bool f=0;
        for(int j=1;j<=n;j++){
            if(t[j]==i){
                t[j]=1;
                i+=59;
                tc=p[j];
                f=1;
            }
            if(f==1){
                if(p[j]==tc&&t[j]<=i&&b[j]==0){
                    ++cnt;
                    b[j]=1;
                }
            }
        }
        if(cnt>0){
            xtn++;
        }
    }
    cout<<xtn;
    return 0;
}

RT


0
已采纳
武奕楷
武奕楷
新手天翼
新手天翼

先是定义:

int n,cnt;
struct js{
    int t,p;
}a[2002];
bool cmp(js a,js b){
    if(a.t!=b.t) return a.t<b.t;
    return a.p<b.p;
}

再sort一下。(*。t为出现时间,*.p为出现在哪一列)

接着有6个单重循环,给你列举2个你应该就明白剩下4的是什么样的了:

int p=0;
    for(int i=1;i<=n;i++){
        if(a[i].p==1){
            if(a[i].t>p){
                cnt++;
                p=a[i].t+59;
            }
        }
    }
    p=0;
    for(int i=1;i<=n;i++){
        if(a[i].p==2){
            if(a[i].t>p){
                cnt++;
                p=a[i].t+59;
            }
        }
    }

 

0
0
0
王泽轩
王泽轩
资深天翼
资深天翼

万能头

整型 n,ans,pos;
整型 num[7];
结构体 nond{
    int t[2010];
}v[7];
主函数(){
    输入n;
    循环(1~n){
        整型 p,t;
        scanf("%d%d",&p,&t);
        v[p].t[++num[p]]=t;
    }
    循环(int i=1;i<=6;i++)
        排序(v[i].t+1,v[i].t+1+num[i]);
    循环(int i=1;i<=6;i++){
        如果(num[i]){
            pos=1;
            ans++; 
        }
        循环(int j=2;j<=num[i];j++)
            如果(v[i].t[j]-v[i].t[pos]>=60)
                ans++,pos=j;
    }
    输出ans;
}

 

我要回答