zoukankan      html  css  js  c++  java
  • poj1269 Intersecting Lines

    传送门

    本来是奔着做线段求交去的qwq

    结果是个直线求交...

    直接用课本知识求个一般式然后搞就行

    (话说这个代码应该加一句a1==0||a2==0时把a变成b)

    但是poj数据水就过了

    Code:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #define ms(a,b) memset(a,b,sizeof a)
     5 #define rep(i,a,n) for(int i = a;i <= n;i++)
     6 #define per(i,n,a) for(int i = n;i >= a;i--)
     7 #define inf 2147483647
     8 using namespace std;
     9 typedef long long ll;
    10 typedef double D;
    11 #define eps 1e-8
    12 ll read() {
    13     ll as = 0,fu = 1;
    14     char c = getchar();
    15     while(c < '0' || c > '9') {
    16         if(c == '-') fu = -1;
    17         c = getchar();
    18     }
    19     while(c >= '0' && c <= '9') {
    20         as = as * 10 + c - '0';
    21         c = getchar();
    22     }
    23     return as * fu;
    24 }
    25 //head
    26 #define R(x) scanf("%lf",&x)
    27 D x1,x2,x3,x4;
    28 D y1,y2,y3,y4;
    29 D a1,b1,c1;
    30 D a2,b2,c2;
    31 D d,ansx,ansy;
    32 void solve() {
    33     R(x1),R(y1),R(x2),R(y2),R(x3),R(y3),R(x4),R(y4);
    34     a1 = x1-x2,b1 = y2-y1,c1 = x1*y2-x2*y1;
    35     a2 = x3-x4,b2 = y4-y3,c2 = x3*y4-x4*y3;
    36     d = a1*b2-a2*b1;
    37     if(d == 0) return void(c1/a1 == c2/a2 ? puts("LINE") : puts("NONE"));
    38     D ansy = (b2*c1-b1*c2) / d;
    39     D ansx = (a1*c2-a2*c1) / d;
    40     printf("POINT %.2lf %.2lf
    ",ansx,ansy);
    41 }
    42 
    43 int main() {
    44     int T = read();
    45     puts("INTERSECTING LINES OUTPUT");
    46     while(T--) solve();
    47     puts("END OF OUTPUT");
    48     return 0;
    49 }
  • 相关阅读:
    QWidget在QPopupMenu显示
    QTable中header高度
    在OpenSSL中添加自定义加密算法
    LibXML2不支持中文补遗
    基于arm+uClinux的嵌入式系统的开发
    关于嵌入式系统的启动
    在Qt/Embedded 2.3.8中添加MX21Ads键盘处理
    QT/Embedded 2.3.8 MX21ADS板移植
    Windows/Linux/Solaris 软中断处理机制
    RMI原理及实现
  • 原文地址:https://www.cnblogs.com/yuyanjiaB/p/9996142.html
Copyright © 2011-2022 走看看