求问
  • 板块学术版
  • 楼主wanttoac
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/8 18:55
  • 上次更新2024/10/8 20:57:17
查看原帖
求问
1258100
wanttoac楼主2024/10/8 18:55

题目链接 我的代码如下

#include<bits/stdc++.h>
using namespace std;
#define sf(x) scanf("%lld",&x)
#define int long long
struct p{
    int i,v;
}a[100007];
int n,m;
bool cmp(p &a,p& b){
    return a.i<b.i;
}
void solve(){
    sf(n);
    sf(m);
    for(int i=0;i<m;i++){
        sf(a[i].i);
        sf(a[i].v);
    }
    sort(a,a+m,cmp);
    for(int i=0;i<m;i++){
        if(i==0){
            if(a[i].v>a[i].i){
                cout<<"No"<<endl;
                return;
            }
        }
        else{
            if((a[i].v!=a[i-1].v+a[i].i-a[i-1].i&&a[i].v>a[i].i-a[i-1].i-1)||a[i].i==a[i-1].i){
                cout<<"No"<<endl;
                return;
            }
        }
    }
    cout<<"Yes"<<endl;
}
signed main(){
    int t;
    sf(t);
    while(t--)solve();
   // return 0;
}

会WA,但如果把第31行的

||a[i].i==a[i-1].i

这部分去掉就能AC,想问一下这是为什么?

2024/10/8 18:55
加载中...