【】リニアSDOI2006を方程式

フェイス質問

https://www.luogu.org/problem/P2455

問題の解決策

#include <iostreamの> 
する#include <iomanip> 
の#include <cmath> 
の#include <cstdioを>
 の#define EPS 1E-5を
 使用して 名前空間STD。

int型N、I、J、K、X、P。
ダブル [ 105 ] [ 105 ]、TA [ 105 ] [ 105 ]、ANS [ 105 ]、T、マックス、和;
ブールブック[ 105 ]。

ブールチェック(){
   int型I、J、K。
  (i = 1 ; iが<= N; iは++ ){
     BOOL S = 0 (J =1 ; J <= N + 1、J ++)場合(TA [I] [J] =!0)、S = 1 もし(S!)リターン 1 
  } 
  ため(i = 1 ; iが<= N; iは++ のために(j = iは+ 1、J <= nであり、j ++ ){
       BOOL S = 0 二重 X = TA [I] [ 1 ] / TA [J] [ 1 ]。
      (K = 1 ; K <= N + 1 ; ++ K)であれば(TA [I] [K] / TA [J] [K] = X!)S = 1 もし(S!)リターン 1 ; 
    } 
  戻り 0 
} 

int型のmain(){ 
    CIN >> N。
    BOOL宜昌= 0 (i = 1 ; iが<= N; iが++ のために(J = 1 ; J <= N + 1、J ++){CIN >> [I] [J]。TA [i] [j]は[I] [j]は[I] [J] * = = 1.0 ;}
     ため(X = 1 ; X <= nであり; x ++ ){ 
        最大 = 0 ため ; <;(J ++ = N J J = xで)なら、{[X]マックス= [J]; P =(最大ファブ([J] [X]))> J;}
        ため(J = xであり、j <= N + 1、J ++){Tが[X] [j]を= [X] [j]は[P] [j]を= [P] [J] = T ;} 
         ため(J = X + 1、J <= N + 1、J ++ ){
           場合(ファブ([X] [X])<EPS){ANS [X] = 2.3333本[X] = 1宜昌= 1後藤L1;} 
           そう [X] [J] =([X] [J] * 1.0)/([X] [X] * 1.0 )。
        } 
        [X] [X] = 1 (J = X + 1、J <= nであり、j ++ ){ 
          T = [J] [X]。
          (K = X; K <= N + 1 ; ++ K)[j]が[k]が[J] [K] -t * = [X] [k]を、
          [J] [X] = 0 
        } 
        L1 :; 
    } 
    もし([N] [N] == 0 ){ 
      宜昌 = 1 
      ANS [N] = 2.333 
    } 
    { 
      ANS [n]は [n]を= [N + 1 ]。
    } 
    
    のための(I = N- 1、I> = 1 ; i--)であれば(!{ブック[i])と
      の和 = 0 にとって(J = I + 1、J <= N; J ++)合計=合計+ [I] [J] * ANS [J]。
      ANS [I] =([I] [N + 1 ] -sum)/ [I] [I]。
    } 
    BOOL缶= 1 (i = 1 ; iが<= N; iは++ ){
       ダブル ansx = 0 (J = 1 ; J <= N; J ++)ansx + =(ANS [J] * TA [I] [J])。
      もし(ファブ(ansx-TA [i]が[N + 1 ])> EPS)缶= 0 
    } 
    であれば(宜昌){
       場合(CAN)のprintf(" 0 ")。のprintf(" -1 " );
      リターン 0 ; 
    } 
    であれば(チェック()){ 
      プット(" 0 " )。
      リターン 0 ; 
    } 
    のための(I = 1 iが++; iが<= N ){ 
      のprintf(" X%D = " 、I)。
      もし(ファブ(ANS [I])<EPS)ANS [I] = 0.0 
      printf(" %.2lfする\ n " 、ANS [I])。
    } 
}

 

おすすめ

転載: www.cnblogs.com/shxnb666/p/11427178.html