E - フードチェーン(互いに素-設定スプリットポイント)

トピックへのリンク:https://vjudge.net/contest/339425#problem/E

 

アイデア:

今回の質問は互いに素セットのようなものとしなければならなかったが、私は忘れてしまいました。

より多くの形而上学的なアプローチが用意されました 

それはABCの三点との間の関係を意味しているので

だから私は(つまり、3回オープンスペースである)の三点にポイント分割を置くポイントを表すABCであります

その後の質問は、シミュレーションになりましたか?

 

1の#include <math.h>の
 2の#include <stdio.hの>
 3の#include <STDLIB.H>
 4の#include <iostreamの>
 5の#include <アルゴリズム>
 6の#include < ストリング >
 7の#include < 文字列・H>
 8の#include <ベクトル>
 9の#include <地図>
 10の#include <積層>
 11の#include < 設定 >
 12  // の#include <ランダム>
13  
14  の#define LL長い長い
 15  の#define 0x3f3f3f3f INF
 16  の#define LS NOD << 1
17個 の#define RS(NOD << 1)+1
 18  のconst  int型 MAXN = 3E5 + 10 19の CONST  ダブル EPS = 1E- 9 20  int型のプレ[MAXN]。
21  
22  ボイドのinit(int型N){
 23      のためのint型 I = 0 ; iが<= N; iが++ ){
 24          プレ[I] = I。
25      }
 26  }
 27  
28  int型の検索(int型X){
 29      であれば(予備[X] == x)は
30          リターンX。
31      リターンは、予め[X] = ([X] PRE)を見つけます。
32  }
 33  
34  空隙マージ(int型のx、int型のY){
 35      INT rootx = =(x)は、ルーティを見つける(y)を見つけます。
36      プレ[ルーティー] = rootx。
37  }
 38  INT メイン(){
 39      int型N、K。
40      のscanf(" %D%dの"、&​​N&K)。
41          INIT(3 *のN)。
42          int型、D、X、Y。
43          INT ANS = 0 44          のためにint型 i = 1 ; iが= Kを<; Iは++ ){
 45              のscanf(" %D%D%D "、&​​D、およびX&Y)。
46              であれば(X> N || Y> N){
 47の                  ANS ++ 48                  続け;
49              }
 50              であれば(Dの== 1 ){
 51                  であれば((X)==検索(Y + n)を見つける||を見つける(X)==検索(Y + 2 *のN)){
 52の                      ANS ++;
53                      続け;
54                  }
 55                  マージ(X、Y)
56                  マージ(X + N、Y + N)。
57                  マージ(X + 2 ×n個、Y + 2 *のN)。
58              }
 59              であれば(Dの== 2 ){
 60                  であれば(見つける(X)==検索(Y)||(X)==検索(Y +見つける2 *のN)){
 61の                      ANSを++ 62                      続け;
63                  }
 64                  マージ(X、Y +N);
65                  マージ(X + N、Y + 2 * N)。
66                  マージ(X + 2 *のN、Y)。
67              }
 68          }
 69          のprintf(" %d個の\ n " 、ANS)。
70      リターン 0 ;
71 }

 

おすすめ

転載: www.cnblogs.com/-Ackerman/p/11779482.html