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;
}

