文章

124

粉丝

0

获赞

137

访问

8.8k

头像
有多少个点在直线上 题解:
P5246 浙江工商大学2023年机试题
发布于2026年2月6日 14:01
阅读数 62

#include<bits/stdc++.h>
using namespace std;

int main() {
    // 读取点A和点B的坐标
    long long xa, ya, xb, yb;
    cin >> xa >> ya >> xb >> yb;    
    int n;
    cin >> n;  
    int count = 0;    
    for (int i = 0; i < n; i++) {
        long long x, y;
        cin >> x >> y;      
        // 向量AB
        long long abx = xb - xa;
        long long aby = yb - ya;       
        // 向量AP
        long long apx = x - xa;
        long long apy = y - ya;       
        // 叉积为0说明共线(点P在直线AB上)
        if (abx * apy - aby * apx == 0) {
            count++;
        }
    }   
    cout << count << endl; 
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发