链接:https://www.nowcoder.com/acm/contest/163/F

来源:牛客网

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it

时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

There is a matrix A that has N rows and M columns. Each grid (i,j)(0 ≤ i < N, 0 ≤ j < M) is painted in white at first.
Then we perform q operations:
For each operation, we are given (xc, yc) and r. We will paint all grids (i, j) that meets to black.
You need to calculate the number of white grids left in matrix A.

输入描述:

The first line of the input is T(1≤ T ≤ 40), which stands for the number of test cases you need to solve.
The first line of each case contains three integers N, M and q (1 ≤ N, M ≤ 2 x 104; 1 ≤ q ≤ 200), as mentioned above.
The next q lines, each lines contains three integers x

c

, y

c

 and r (0 ≤ x

c

 < N; 0 ≤ y

c

 < M; 0 ≤ r ≤ 10

5

), as mentioned above.

输出描述:

For each test case, output one number.
示例1

输入

复制

2
39 49 2
12 31 6
15 41 26
1 1 1
0 0 1

输出

复制

729
0

题意还是比较简单的,给你n和m的格子让你去画圆,如果这个点在圆内,就要被染色,问你还剩多少点没有被染色

这个题目可以直接暴力扫描线,也就成了维护线段的并

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
vector<pair<int,int> >V[N];
int main()
{int T;scanf("%d",&T);while(T--){for(int i=0; i<N; i++)V[i].clear();int n,m,q;scanf("%d%d%d",&n,&m,&q);for(int j=0,x,y,r; j<q; j++){scanf("%d%d%d",&x,&y,&r);for(int i=max(0,y-r),d; i<=min(m-1,y+r); i++)d=(sqrt(r*r-(y-i)*(y-i)+1e-6)),V[i].push_back(make_pair(max(0,x-d),min(x+d,n-1)));}int s=n*m;for(int i=0; i<m; i++){int l=V[i].size();if(l>0){sort(V[i].begin(),V[i].end());int r=-1;for(auto X:V[i]){if(X.second<=r)continue;if(X.first>r) s-=X.second-X.first+1;else s-=X.second-r;r=X.second;}}}cout<<s<<"\n";}return 0;
}

转载于:https://www.cnblogs.com/BobHuang/p/9493577.html

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it相关推荐

  1. 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers

    传送门 题意:问你从[1,N]有多少个数能被自身的SOD(sum of digits)整除 题解:数位dp,枚举SOD,因为最多只有12位,所以只要枚举1到12*9,一维记录pos,二维记录当前剩余要 ...

  2. acm国际大学上计算机竞赛,2018年ACM国际大学生程序设计竞赛校内选拔赛报名通知...

    2018年ACM国际大学生程序设计竞赛校内选拔赛报名通知 我校自2002年开始举办ACM国际大学生程序设计竞赛校内选拔赛,吸引了大量喜爱程序设计和算法的同学积极参与.本项赛事参照ACM国际大学生程序设 ...

  3. ACM国际大学生程序设计竞赛

    ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC))是由国际计算机协会(ACM) ...

  4. ACM国际大学生程序设计竞赛及练习题库

    ACM国际大学生程序设计竞赛 ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由 ...

  5. acm竞赛php,我校代表队参加 2017 ACM国际大学生程序设计竞赛

    2017年12月17日,第42届ACM国际大学生程序设计竞赛亚洲东大陆决赛(EC-Final)在上海大学落下帷幕,ACM竞赛2017年亚洲区比赛告一段落.在学校教务处的大力支持和信息学院的精心指导下, ...

  6. 中国矿业大学计算机学院张铖,中国矿大在第41届ACM国际大学生程序设计竞赛中国区决赛中荣获银奖...

    12月10-11日,第41届ACM国际大学生程序设计竞赛中国区决赛(ACM-ICPC Asia China-Final Contest)在上海大学举办.中国矿业大学计算机学院由刘厚泉教授担任领队,由杨 ...

  7. 红书《题目与解读》第一章 数学 题解《ACM国际大学生程序设计竞赛题目与解读》

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 红书<题目与解读>第一章 数学 题解<ACM国际大学生程序设计竞赛题目与解读> ...

  8. acm国际大学上计算机竞赛,ACM国际大学生程序设计竞赛

    ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC))是由美国计算机协会(ACM) ...

  9. 大连,第36届ACM国际大学生程序设计竞赛,亚洲区大连赛区预选赛

    大连,第36届ACM国际大学生程序设计竞赛,亚洲区大连赛区预选赛 第一天 出发去大连 去大连理工大学参加ACM/ICPC比赛. 在长白路临时候车室,很多人,像农村赶集一样.空气里充满了白酒和熟食的气 ...

最新文章

  1. python中画圆的代码_Python编程12:Python画图之turtle库如何画圆
  2. TYAN_S8230做硬Raid
  3. Python3文件操作详解 Python3文件操作大全
  4. go reflect的用法
  5. 亡命逃窜(nyoj523广搜)
  6. C#中的where泛型约束【转】
  7. AngularJs自定义指令详解(10) - 执行次序
  8. html5 怎么入门,初学HTML5 从入门到精通你需要懂得这些
  9. Dijkstra算法原理
  10. Jenkins File Matrix 对于label设置环境变量
  11. C#:办公用品管理软件项目总结
  12. 史话上:量子物理学的前世今生
  13. Element UI 自定义动态换肤(主题)
  14. CSDN博主排行榜上线!
  15. mobaxterm配置Tunneling隧道连接服务器
  16. 1367. 二叉树中的列表
  17. 自制操作系统1:先动手操作
  18. woo语言使用sockets模拟http请求
  19. 数仓知识10_数据泛化
  20. 天地图离线瓦片的打包与发布(GeoServer)

热门文章

  1. 计算字符串相似度算法—Levenshtein
  2. Learning Perl 8
  3. Windows 7会成为Win XP第二的10大理由
  4. shell脚本——实现简单的功能
  5. 万能媒体播放器 PotPlayer
  6. 【转】Android studio安装与配置
  7. [ASP.NET] Session的了解
  8. 组合数取模 Lucas定理
  9. HTML5 将改变Web开发模式
  10. 把控制台程序嵌入到 WinForm 中执行