hihocoder 1497 Queen Attack
排序。
分别按照$x$,$y$以及对角线排序,统计一下方案数就可以了。
#include<bits/stdc++.h>
using namespace std; int n;
struct X
{
int x,y;
}s[]; bool cmp1(X a, X b)
{
return a.x<b.x;
} bool cmp2(X a, X b)
{
return a.y<b.y;
} bool cmp3(X a, X b)
{
return a.x+a.y<b.x+b.y;
} bool cmp4(X a, X b)
{
return a.y-a.x<b.y-b.x;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d%d",&s[i].x,&s[i].y); long long sum=; sort(s+,s++n,cmp1);
long long a=;
for(int i=;i<=n;i++)
{
if(s[i].x==s[i-].x) a++;
else
{
sum=sum+a*(a-)/;
a=;
}
}
sum=sum+a*(a-)/; sort(s+,s++n,cmp2);
a=;
for(int i=;i<=n;i++)
{
if(s[i].y==s[i-].y) a++;
else
{
sum=sum+a*(a-)/;
a=;
}
}
sum=sum+a*(a-)/; sort(s+,s++n,cmp3);
a=;
for(int i=;i<=n;i++)
{
if(s[i].y+s[i].x==s[i-].y+s[i-].x) a++;
else
{
sum=sum+a*(a-)/;
a=;
}
}
sum=sum+a*(a-)/; sort(s+,s++n,cmp4);
a=;
for(int i=;i<=n;i++)
{
if(s[i].y-s[i].x==s[i-].y-s[i-].x) a++;
else
{
sum=sum+a*(a-)/;
a=;
}
}
sum=sum+a*(a-)/; printf("%lld\n",sum); return ;
}
hihocoder 1497 Queen Attack的更多相关文章
- Queen Attack -- 微软2017年预科生计划在线编程笔试第二场
#!/usr/bin/env python # coding:utf-8 # Queen Attack # https://hihocoder.com/problemset/problem/1497 ...
- 【微软2017年预科生计划在线编程笔试第二场 A】Queen Attack
[题目链接]:http://hihocoder.com/problemset/problem/1497 [题意] 给你n个皇后; 然后问你其中能够互相攻击到的皇后的对数; 皇后的攻击可以穿透; [题解 ...
- hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
#1392 : War Chess 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Rainbow loves to play kinds of War Chess gam ...
- 【leetcode】1222. Queens That Can Attack the King
题目如下: On an 8x8 chessboard, there can be multiple Black Queens and one White King. Given an array of ...
- 【LeetCode】1222. Queens That Can Attack the King 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...
- hihocoder -1121-二分图的判定
hihocoder -1121-二分图的判定 1121 : 二分图一•二分图判定 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我是小Hi和小Ho的小伙伴Net ...
- Hihocoder 太阁最新面经算法竞赛18
Hihocoder 太阁最新面经算法竞赛18 source: https://hihocoder.com/contest/hihointerview27/problems 题目1 : Big Plus ...
- hihoCoder太阁最新面经算法竞赛15
hihoCoder太阁最新面经算法竞赛15 Link: http://hihocoder.com/contest/hihointerview24 题目1 : Boarding Passes 时间限制: ...
- 【hihoCoder 1454】【hiho挑战赛25】【坑】Rikka with Tree II
http://hihocoder.com/problemset/problem/1454 调了好长时间,谜之WA... 等我以后学好dp再来看为什么吧,先弃坑(╯‵□′)╯︵┻━┻ #include& ...
随机推荐
- C++字符串使用sizeof时注意
] = {"hello,你好"}; char tmp2[] = {"hello,你好"}; ]; sprintf(tmp3,"%s",&qu ...
- c++数组遍历十种方式
int ia[3][4] = {1,2,3,4,5,6,7,8}; //下标 for (int i = 0; i < 3; i++) { for (int j = 0; j < 4 ...
- Android Studio Gradle's dependency cache may be corrupt Re-download dependencies and sync project (requires network)
转:Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle-3.*-all.zip快速下载 Andr ...
- bzoj 3261: 最大异或和 (可持久化trie树)
3261: 最大异或和 Time Limit: 10 Sec Memory Limit: 512 MB Description 给定一个非负整数序列 {a},初始长度为 N. ...
- HDU6129 规律
LINK 题意:n个数进行m次前缀和异或和后的情况,其中$n,m(1\leq n\leq2\times10^5,1\leq m\leq10^9)$. 思路:看到m这么大,肯定要分解m的,又是异或和,二 ...
- synchronized的实现原理
常见三种使用方法: 1)普通同步方法,锁是当前实例: 2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁: 3)对于同步代码块,锁是synchronized括 ...
- composer 上提交自己的包
先在github上复制自己的地址在 https://packagist.org/packages/submit ->check->submit
- windows环境下搭建Redis集群
转载请注明出处,原文章地址: https://www.cnblogs.com/tommy-huang/p/6240083.html Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Red ...
- vsftpd.conf 详解
//不允许匿名访问 anonymous_enable=NO //设定本地用户可以访问.注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问 local_enable=YES // ...
- C/C++——C语言跳出多重循环方法
c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...