题目描述

N \times NN×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_iRi​行,第C_iCi​ 列。求至少被一个车攻击的格子数量。

车可以攻击所有同一行或者同一列的地方。

输入输出格式

输入格式:

第1 行,2 个整数N,KN,K。

接下来K 行,每行2 个整数R_i,C_iRi​,Ci​。

输出格式:

1 个整数,表示被攻击的格子数量。

输入输出样例

输入样例#1: 复制

3 2
1 2
2 2
输出样例#1: 复制

7

说明

• 对于30% 的数据,1 \le N \le 10^3; 1 \le K \le 10^31≤N≤103;1≤K≤103;

• 对于60% 的数据,1 \le N \le 10^6; 1 \le K \le 10^61≤N≤106;1≤K≤106;

• 对于100% 的数据,1 \le N \le 10^9; 1 \le K \le 10^6; 1 \le R_i , C_i \le N1≤N≤109;1≤K≤106;1≤Ri​,Ci​≤N。

思路:见小学课本。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 1001000
using namespace std;
long long n,k,ans;
long long r[MAXN],c[MAXN];
int main(){
scanf("%lld%lld",&n,&k);
for(int i=;i<=k;i++)
scanf("%lld%lld",&r[i],&c[i]);
sort(r+,r++k);
sort(c+,c++k);
long long n1=unique(r+,r++k)-r-;
long long n2=unique(c+,c++k)-c-;
ans=n*n-(n-n1)*(n-n2);
printf("%lld",ans);
}

最新文章

  1. [PHP内核探索]PHP中的哈希表
  2. ajax乱码
  3. Redis应用场景
  4. mfc控件——list control的使用
  5. 关于linux内核模块Makefile的解析
  6. apk反编译(8)如何完全防止反编译?
  7. MOSS母板页制作 学习笔记(一)
  8. js键盘控制DIV移动
  9. linux中多线程解析
  10. 【MD5解密】免费帮大家解MD5
  11. KnockoutJS知识规整目录
  12. Python3 网络爬虫(请求库的安装)
  13. Laravel5使用QQ邮箱发送邮件配置
  14. JMeter&#160;利用Jmeter批量数据库插入数据
  15. less中使用calc
  16. 记一个视频播放器插件 video.js
  17. 用Python连接SQLServer抓取分析数据、监控 (pymssql)
  18. 图片在线处理 webp!
  19. Java 从业一年的心得体会
  20. thinkphp调试

热门文章

  1. Angry IP Scanner 获取设备的IP
  2. 巧妇能为少米之炊(1)——Android下小内存下的生存之道
  3. C# - Thread.Join()
  4. 远程登录工具 —— filezilla(FTP vs. SFTP)、xshell、secureCRT
  5. 洛谷 P2542 [AHOI2005]航线规划 树链剖分_线段树_时光倒流_离线
  6. webpack(构建一个前端项目)详解--升级
  7. 俩层判断,判断button是否可以点击
  8. Git 内部原理 - (5)引用规格 (6) 传输协议
  9. opencv3.4.1和vs2017配置
  10. 免费录屏软件之OBS Studio