查询是否可以在C ++中将框连接成圆形

在本教程中,我们将讨论一个程序以查找查询以检查是否可以将框连接成一个圆。

为此,我们将提供一个从1到n的方框。我们的任务是确定是否可以用一根杆将线盒i连接到线盒j而不与先前的线杆相交。

示例

#include <bits/stdc++.h>

using namespace std;

//检查是否可以用盒子做一个圆

void isPossible(int n, int q, int queryi[], int queryj[]) {

   int arr[50];

   for (int i = 0; i <= n; i++)

      arr[i] = 0;

   for (int k = 0; k < q; k++) {

      int check = 0;

      if (queryj[k] < queryi[k]) {

         int temp = queryi[k];

         queryi[k] = queryj[k];

         queryj[k] = temp;

      }

      if (arr[queryi[k]] != 0 || arr[queryj[k]] != 0)

         check = 1;

      else if (queryi[k] == queryj[k])

         check = 1;

      else {

         for (int i = 1; i < queryi[k]; i++) {

            if (arr[i] != 0 && arr[i] < queryj[k] && queryi[k] < arr[i]) {

               check = 1;

               break;

            }

         }

         if (check == 0) {

            for (int i = queryi[k] + 1; i < queryj[k]; i++) {

               if (arr[i] != 0 && arr[i] > queryj[k]) {

                  check = 1;

                  break;

               }

            }

         }

      }

      if (check == 0) {

         cout << "Possible" << endl;

         arr[queryi[k]] = queryj[k];

         arr[queryj[k]] = queryi[k];

      }

      else

         cout << "Not Possible" << endl;

   }

}

int main() {

   int size = 5;

   int q = 2;

   int queryi[] = { 3, 5 };

   int queryj[] = { 1, 4 };

   isPossible(size, q, queryi, queryj);

   return 0;

}

输出结果

Possible

Possible

以上是 查询是否可以在C ++中将框连接成圆形 的全部内容, 来源链接: utcz.com/z/322166.html

回到顶部