⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1034_2.cpp

📁 我的URAL的1000 ~ 1050 的全部代码 包含WA 最后AC的程序 有2~3个比较难的是MAIGO的程序
💻 CPP
字号:
//排列组合问题  其实 非常简单 不要被题目名字吓到
//一开始我也写得很恶心 
//原始的 queen的位置就已经是和谐的啦
//所以我们只需要枚举三个QUEEN出来看他们能不能改变位置 
//三个QUEEN都必须要改变位置才行,大家画个图出来就知道为什么了 
#include <iostream>
#include <math.h>
using namespace std;

const int maxN = 50;
struct Point{int x, y; };
Point p[maxN + 1];
int n, ans;
void readIn()
{
     int i;
     cin >> n;
     for( i = 1; i <= n; i++ )
          cin >> p[i].x >> p[i].y;
}
void check( Point a, Point b, Point c )
{
     int i;
     for( i = 1; i <= n; i++ )
     {
          if( p[i].x != a.x && abs( p[i].x - a.x ) == abs( p[i].y - a.y ) )return;
          if( p[i].x != b.x && abs( p[i].x - b.x ) == abs( p[i].y - b.y ) )return;
          if( p[i].x != c.x && abs( p[i].x - c.x ) == abs( p[i].y - c.y ) )return;
     }
     ans ++;
}
int main()
{
    int i, j, k, t;
    readIn();
    ans = 0;
    for( i = 1; i <= n-2; i++ )
         for( j = i+1; j <= n-1; j++ )
              for( k = j+1; k <= n; k++ )
              {
                   t = p[i].y; p[i].y = p[j].y; p[j].y = p[k].y; p[k].y = t;
                   check( p[i], p[j], p[k] );
                   t = p[i].y; p[i].y = p[j].y; p[j].y = p[k].y; p[k].y = t;
                   check( p[i], p[j], p[k] );
                   t = p[i].y; p[i].y = p[j].y; p[j].y = p[k].y; p[k].y = t;
              }
    cout << ans << endl;
 //   system("pause");
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -