题目链接:https://ac.nowcoder.com/acm/contest/70/F

题目大意:

  略

分析:

  可以分成四步计算冲突:水平方向,垂直方向,左斜线方向,右斜线方向。只要会处理水平方向,其余同理。

代码如下:

 #pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std; #define INIT() std::ios::sync_with_stdio(false);std::cin.tie(0);
#define Rep(i,n) for (int i = 0; i < (n); ++i)
#define For(i,s,t) for (int i = (s); i <= (t); ++i)
#define rFor(i,t,s) for (int i = (t); i >= (s); --i)
#define ForLL(i, s, t) for (LL i = LL(s); i <= LL(t); ++i)
#define rForLL(i, t, s) for (LL i = LL(t); i >= LL(s); --i)
#define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i)
#define rforeach(i,c) for (__typeof(c.rbegin()) i = c.rbegin(); i != c.rend(); ++i) #define pr(x) cout << #x << " = " << x << " "
#define prln(x) cout << #x << " = " << x << endl #define SORT(c, s, t) sort(c + s, c + t + 1) #define LOWBIT(x) ((x)&(-x)) #define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin()) #define ms0(a) memset(a,0,sizeof(a))
#define msI(a) memset(a,inf,sizeof(a))
#define msM(a) memset(a,-1,sizeof(a)) #define pii pair<int,int>
#define piii pair<pair<int,int>,int>
#define MP make_pair
#define PB push_back
#define ft first
#define sd second template<typename T1, typename T2>
istream &operator>>(istream &in, pair<T1, T2> &p) {
in >> p.first >> p.second;
return in;
} template<typename T>
istream &operator>>(istream &in, vector<T> &v) {
for (auto &x: v)
in >> x;
return in;
} template<typename T1, typename T2>
ostream &operator<<(ostream &out, const std::pair<T1, T2> &p) {
out << "[" << p.first << ", " << p.second << "]" << "\n";
return out;
} typedef long long LL;
typedef unsigned long long uLL;
typedef pair< double, double > PDD;
typedef set< int > SI;
typedef vector< int > VI;
const double EPS = 1e-;
const int inf = 1e9 + ;
const LL mod = 1e9 + ;
const int maxN = 1e5 + ;
const LL ONE = ; struct Queen{
int r, c, cnt = ;
}; // 先按行排序,再按列排序
inline bool cmp1(const Queen &x, const Queen &y) {
if(x.r == y.r) return x.c < y.c;
return x.r < y.r;
} // 先按列排序,再按行排序
inline bool cmp2(const Queen &x, const Queen &y) {
if(x.c == y.c) return x.r < y.r;
return x.c < y.c;
} // 先按r - c排序,再按r + c排序
inline bool cmp3(const Queen &x, const Queen &y) {
if(x.r - x.c == y.r - y.c) return x.r + x.c < y.r + y.c;
return x.r - x.c < y.r - y.c;
} // 先按r + c排序,再按r - c排序
inline bool cmp4(const Queen &x, const Queen &y) {
if(x.r + x.c == y.r + y.c) return x.r - x.c < y.r - y.c;
return x.r + x.c < y.r + y.c;
} // 行方向计数辅助函数
inline bool cnt1(const Queen &x, const Queen &y) {
return x.r == y.r;
} // 列方向计数辅助函数
inline bool cnt2(const Queen &x, const Queen &y) {
return x.c == y.c;
} // 左斜线方向计数辅助函数
inline bool cnt3(const Queen &x, const Queen &y) {
return x.r - x.c == y.r - y.c;
} // 右斜线方向计数辅助函数
inline bool cnt4(const Queen &x, const Queen &y) {
return x.r + x.c == y.r + y.c;
} int n, m;
Queen Q[maxN];
int ans[]; // 方向计数函数
void CountDir(bool (*fcnt)(const Queen&,const Queen&)) {
//cout << endl;
//For(i, 1, m) cout << MP(Q[i].r, Q[i].c);
int cnt = ;
For(i, , m) {
if(fcnt(Q[i], Q[i - ])) {
if(cnt == ) Q[i - ].cnt += ;
else Q[i - ].cnt += ;
++cnt;
}
else {
if(cnt > )Q[i - ].cnt += ;
cnt = ;
}
}
if(cnt > ) Q[m].cnt += ;
//For(i, 1, m) cout << Q[i].cnt << " ";
//cout << endl;
} int main(){
INIT();
cin >> n >> m;
For(i, , m) cin >> Q[i].r >> Q[i].c; // 处理左右
sort(Q + , Q + m + , cmp1);
CountDir(cnt1);
// 处理上下
sort(Q + , Q + m + , cmp2);
CountDir(cnt2);
// 处理左上,左下
sort(Q + , Q + m + , cmp3);
CountDir(cnt3);
// 处理右上,右下
sort(Q + , Q + m + , cmp4);
CountDir(cnt4); For(i, , m) ++ans[Q[i].cnt];
Rep(i, ) cout << ans[i] << " ";
cout << endl;
return ;
}

牛客练习赛13F m皇后的更多相关文章

  1. 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D

    目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...

  2. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  3. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

  4. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  5. 牛客练习赛28-B(线段树,区间更新)

    牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ ​ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, ​ 1 l r 询问区间[l,r]内的元素和 ​ 2 l r 询问区间[l,r]内的 ...

  6. 牛客练习赛26:D-xor序列(线性基)

    链接:牛客练习赛26:D-xor序列(线性基) 题意:小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 题解:线性基 #inc ...

  7. [堆+贪心]牛客练习赛40-B

    传送门:牛客练习赛40 题面: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i 个任务需要花费  x_i 的时间,同时完成第 i 个任务的时间不 ...

  8. 牛客练习赛 29 E 位运算?位运算!(线段树)

    题目链接  牛客练习赛29E 对$20$位分别建立线段树.首先$1$和$2$可以合起来搞(左移右移其实是等效的) 用个lazy标记下.转移的时候加个中间变量. $3$和$4$其实就是区间$01$覆盖操 ...

  9. 牛客练习赛22C Bitset

    牛客练习赛22C 一共有 n个数,第 i 个数是 xi  xi 可以取 [li , ri] 中任意的一个值. 设 ,求 S 种类数. 感觉二进制真是一个神奇的东西. #include <iost ...

随机推荐

  1. nginx相关命令

    https://www.cnblogs.com/zdz8207/p/CentOS-nginx-yum.html

  2. http和https工具类 (要注意httpclient版本号和log4j的版本号)

    1 工具类 package dd.com; import java.io.IOException; import java.security.cert.CertificateException; im ...

  3. google colab 使用指南

    重启colab !kill - - 输出ram信息 !cat /proc/meminfo 输出cpu信息 !cat /proc/cpuinfo 更改工作文件夹 一般,当你运行下面的命令: !ls 你会 ...

  4. ASP.NET MVC]WebAPI应用支持HTTPS的经验总结

    WebAPI应用支持HTTPS的经验总结 在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP.微信. ...

  5. 发现一款比echarts更牛B,效果更炫的图表组件 d3.js

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code d3.js  ,能制作更加复杂的图表 https://github.com/d3/d3 ...

  6. 2018年尚硅谷《全套Java、Android、HTML5前端视频》

    全套整合一个盘里:链接:https://pan.baidu.com/s/1nwnrWOp 密码:h4bw 如果分类里没有请下载下边那些小项教程链接 感谢尚硅谷提供的视频教程:http://www.at ...

  7. EL表达式运算符使用

    EL表达式关系运算符的使用 == eq 等于 != ne 不等于 > gt 大于 < lt 小于 >= ge 大于等于 <= le 小于等于 举例说明 > 或者 gt, ...

  8. Memcache分布式锁 转发 https://www.cnblogs.com/li150dan/p/9529090.html

    在分布式缓存的应用中,会遇到多个客户端同时争用的问题.这个时候,需要用到分布式锁,得到锁的客户端才有操作权限 下面通过一个简单例子介绍: 这里引用的是Memcached.ClientLibrary.d ...

  9. 吴恩达课后作业学习1-week4-homework-multi-hidden-layer -2

    参考:https://blog.csdn.net/u013733326/article/details/79767169 希望大家直接到上面的网址去查看代码,下面是本人的笔记 实现多层神经网络 1.准 ...

  10. Spring Security(三):1、Getting Started

    The later parts of this guide provide an in-depth discussion of the framework architecture and imple ...