问题标题: 酷町堂:@康曦

0
0
已解决
李素妍
李素妍
新手天翼
新手天翼

 

4760   飞行员酷町猫为什么90!!!

#include <iostream>
using namespace std;
int n,x[1000],y[1000],cnt=0,ans=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x[i]>>y[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            cnt=2;
            for(int k=j+1;k<=n;k++){
                if(k!=i&&k!=j){
                    if((y[i]-y[j])*(x[i]-x[k])==(y[i]-y[k])*(x[i]-x[j])){
                        cnt++;
                    }
                }
            }
            ans=max(ans,cnt);
        }
    }
    cout<<ans;
    return 0;
}

李素妍在2020-08-06 16:32:15追加了内容

这样吧,你么找错

李素妍在2020-08-06 16:39:26追加了内容

@柯以成

李素妍在2020-08-06 16:43:12追加了内容

@王泽宇

 #include <iostream>
using namespace std;
int n,a[710],b[710],cnt=0,ans=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            cnt=2;
            for(int k=j+1;k<=n;k++){
                if((a[i]-a[j])*(b[i]-b[k])==(a[i]-a[k])*(b[i]-b[j])){
                    cnt++;
                }
            }
            ans=max(ans,cnt);
        }
    }
    cout<<ans;
    return 0;
}


0
已采纳
王泽宇
王泽宇
初级光能
初级光能
AC:
cnt=2;
            for(int k=j+1;k<=n;k++){
                if((a[i]-a[j])*(b[i]-b[k])==(a[i]-a[k])*(b[i]-b[j])){
                    cnt++;
                }
            }
            mx=max(mx,cnt);

 

王泽宇在2020-08-06 16:42:35追加了内容
把这个:改
cnt=2;
            for(int k=j+1;k<=n;k++){
                if(k!=i&&k!=j){
                    if((y[i]-y[j])*(x[i]-x[k])==(y[i]-y[k])*(x[i]-x[j])){
                        cnt++;
                    }
                }
            }
            ans=max(ans,cnt);

 

王泽宇在2020-08-06 16:44:16追加了内容

输出特判:

  • if(mx<=2) cout<<n;
  • else cout<<mx;
  • 望采纳
0
董宇昊
董宇昊
初级启示者
初级启示者

我中间用了sort,但我也是90分。

0
0
柯以成
柯以成
新手光能
新手光能

要不我来,我这题早做过了

@李素妍 

我要回答