NC229174. 憧憬
描述
但愿这漫天时起时落的星斗
曾照拂过的人们都能被庇佑
在颠沛之中漂流于不经意的时候
你会与你的梦悄然邂逅
——周深《请笃信一个梦》
输入描述
第一行给定一个整数n接下来n行每行四个整数x1,y1,x2,y2,表示第i个向量的起点和终点最后一行给出四个整数x1,y1,x2,y2,表示目标向量的起点和终点
输出描述
若可以,输出“YES”否则输出“NO”(均不含引号)
示例1
输入:
5 1 2 4 8 2 4 5 10 1 2 2 4 3 5 4 6 6 10 7 11 1 1 4 7
输出:
YES
说明:
1号向量与3号向量相加C++ 解法, 执行用时: 5ms, 内存消耗: 488K, 提交时间: 2021-10-25 20:43:51
#include<bits/stdc++.h> using namespace std; int n; int x[1010],y[1010]; int main(){ cin>>n; for(int i=0;i<=n;i++){ int a,b,c,d; cin>>a>>b>>c>>d; x[i]=c-a; y[i]=d-b; } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if((x[i]+x[j])*y[n]==(y[i]+y[j])*x[n]){ cout<<"YES"; return 0; } } } cout<<"NO"; return 0; }
Python3 解法, 执行用时: 319ms, 内存消耗: 4668K, 提交时间: 2022-09-19 16:00:16
n=int(input()) x=[] y=[] for _ in range(n+1): x1,y1,x2,y2=map(int,input().split()) x.append(x2-x1) y.append(y2-y1) for i in range(n): for j in range(i+1,n): if (y[j]+y[i])*x[-1]==y[-1]*(x[j]+x[i]): print('YES') exit(0) print('NO')