1026. 皇后问题

1026. 皇后问题,第1张

1026. 皇后问题


样例:
input:
3
1 1
1 2
1 3
output:
3

input:
2
1 1
2 2
output:
1

input:
4
1 3
2 1
3 4
4 2
output:
0
思路
一开始的思路其实是想记录一下出现在某一行某一列的皇后个数,然后发现对角线的没有办法 *** 作,所以把每个皇后能走到的位置都标记下来,这样就能算出有多少对,当然在题目所给的这个数据范围里,显然是会wa的,如果都是100以内的,那可以使用。
60分做法:

#include 
#include 
#include 
using namespace std;
int n;
int num[11111][11111];
void mark(int x,int y)
{

	for(int i=1;i<=n;i++) num[x][i]++;
    for(int i=1;i<=n;i++) num[i][y]++;
    for(int i=1;in||tempy>n) break;
        num[tempx][tempy]++;
    }
    for(int i=1;in||tempy<1) break;
        num[tempx][tempy]++;
    }
    for(int i=1;in) break;
        num[tempx][tempy]++;
    }
}
int main()
{
    cin>>n;
    int x,y,cnt;
	for(int i=1;i<=n;i++)
    {
        cin>>x>>y;
        if(num[x][y]!=0) cnt+=num[x][y];
        mark(x,y);
        //cout<<"i="<
						

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3970898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存