70分求调,悬关
查看原帖
70分求调,悬关
749175
114514xxx楼主2024/8/11 19:21

subtask 2 第二个点TLE,求调。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=4e5+25;
int n,m,T;
struct node{
    int num,val;
}a[N];
int delta[N];
bool cmp(node a,node b){
    return a.num<b.num;
}
int gcd(int x,int y){
    return __gcd(x,y);
}
signed main(){
    std::ios::sync_with_stdio(0);
    cin>>T;
    while(T--){
        memset(a,0,sizeof(a));
        memset(delta,0,sizeof(delta));
        cin>>n>>m;
        if(m==0){
            cout<<"yes"<<"\n";
            goto lop;
        }
        for(int i=1;i<=m;i++)
            cin>>a[i].num>>a[i].val;
        sort(a+1,a+1+m,cmp);
        delta[1]=(a[2].val-a[1].val)/(a[2].num-a[1].num);
        for(int i=1;i<=m;i++)
            if((a[i].num-a[1].num)*delta[1]+a[1].val!=a[i].val){
            cout<<"no"<<endl;
            goto lop;
        }
        cout<<"yes"<<endl;
        lop:;
    }
}

2024/8/11 19:21
加载中...