题目描述

YJC决定对入侵C国的W国军队发动毁灭性打击。将C国看成一个平面直角坐标系,W国一共有n^2个人进入了C国境内,在每一个(x,y)(1≤x,y≤n)上都有恰好一个W国人。YJC决定使用m颗核导弹,每一颗核导弹将杀死某个圆内所有的W国人,恰好在圆上也会被杀死。现在YJC想知道,在这一轮核打击之后,还有多少个W国人在C国境内。

输入输出格式

输入格式:

第一行包含两个整数n和m,意思如题所示。

接下来m行每行三个整数x,y和r,表示以(x,y)为圆心,r为半径的圆圆内和圆上的W国人被全部杀死。

输出格式:

一行,包含一个整数,表示幸存的W国人个数。

输入输出样例

输入样例#1:

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

1

说明

第一枚导弹杀死了(1,2)、(2,1)、(2,2)、(2,3)、(3,2)上的W国人,第二枚导弹杀死了(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(3,1)上的W国人,只剩下(3,3)上的W国人没有被杀死。

对于50%的数据,满足n,m≤50。

对于100%的数据,满足1≤x,y≤n≤5000,0≤r≤n,1≤m≤5000。

还是码力问题 以后不确定还是要写暴力啊QAQ不能太自信没对拍就交啊

——————————————————————————————————

这道题很容易想到的一个暴力就是枚举每一个核弹和每一个点(这样的复杂度是o(nnm))

很明显只能拿五十分

那么我们可以想着降一维 考虑每一行和每一个核弹的关系 利用差分就很容易实现辣

我的方法呢是 每读入一个核弹就枚举所有他能覆盖到的行数 枚举的方向大概是这样

利用勾股定理可以算出他和直线的交点 可以发现两个交点构成的线段长度是递减的

然后就很好实现辣

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int n,m,ans;
int sum[][];
int main()
{
n=read(); m=read();
for(int k=;k<=m;k++){
int x=read(),y=read(),r=read();
for(int i=,j=r;i<=r;i++){
int mx=r*r-i*i;
while(j*j>mx) j--;
int L=y-j,R=y+j;
if(L<) L=;
if(R>n) R=n;
if(x-i>=) sum[x-i][L]++,sum[x-i][R+]--;
if(x+i<=n) sum[x+i][L]++,sum[x+i][R+]--;
}
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
ans+=bool(sum[i][j]+=sum[i][j-]);
printf("%d\n",n*n-ans);
return ;
}

最新文章

  1. Debian/Ubuntu server上安装安全更新
  2. js 判断移动设备、pc端、android、iPhone、是否为微信、微博、qq空间
  3. es6 let
  4. Python 练习 31
  5. wordpress安装,创建配置文件无反应
  6. Linux中的时间和时间管理
  7. java.io.FileNotFoundException: /exapp/hadoop/name/current/VERSION (Permission denied)
  8. POI读取公式的值
  9. MyEclipse常用操作
  10. JeeSite如何正确连接SQL SERVER 数据库
  11. python3全栈开发-多进程的守护进程、进程同步、生产者消费者模式(重点)
  12. WinForm打包或部署
  13. linux服务基础之DNS正反向解析、主从同步、子域授权及视图
  14. 震惊!!!源程序特征统计程序——基于python getopt库
  15. delete,truncate ,drop区别
  16. Django框架----模板语法
  17. 逆袭之旅DAY13.东软实训.Oracle.简单的查询语句.限制.排序
  18. VS2008中MFC对话框界面编程Caption中文乱码的解决办法
  19. shell编程小结
  20. Andoid数据存储之SQLite数据库

热门文章

  1. 在CentOS VPS上通过SSH安装 MySQL
  2. pytorch中如何使用预训练词向量
  3. POJ:1222-EXTENDED LIGHTS OUT(矩阵反转)
  4. [Codeforces947D]Riverside Curio(思维)
  5. RHCE考试
  6. PHP.24-TP框架商城应用实例-后台1-添加商品功能、钩子函数、在线编辑器、过滤XSS、上传图片并生成缩略图
  7. 当Hadoop 启动节点Datanode失败解决
  8. 网易云深度剖析Kubernetes优化与实践
  9. 《Cracking the Coding Interview》——第17章:普通题——题目1
  10. MQ消息中间件