2018ACM上海大都会赛 F Color it【基础的扫描线】
题目:戳这里
题意:有n*m个点全为白色,q个圆,将q个圆内所有的点都染成黑色,问最后剩下多少白色的点。
解题思路:每一行当做一个扫描线,扫描所有的圆,记录每一行在圆中的点即可,O(n*q)。
附ac代码:
1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <algorithm>
5 #include <string>
6 #include <cmath>
7 using namespace std;
8 const int maxn = 2e5 + 10;
9 struct nod
10 {
11 int x;
12 int y;
13 int r;
14 nod(){}
15 bool operator < (const nod & b) const
16 {
17 if(x == b.x) return y < b.y;
18 return x < b.x;
19 }
20 }nu[maxn],a[maxn];
21 int main()
22 {
23 int t;
24 int n, m, q;
25 scanf("%d", &t);
26 while(t--)
27 {
28 int ans = 0;
29 scanf("%d %d %d", &n, &m, &q);
30 for(int i = 1; i <= q; ++i)
31 {
32 scanf("%d %d %d", &a[i].x, &a[i].y, &a[i].r);
33 }
34 int len = 0;
35 for(int i = 0; i < n; ++i)
36 {
37 len = 0;
38 for(int j = 1; j <= q; ++j)
39 {
40 int u = a[j].r * a[j].r - (a[j].x - i) * (a[j].x - i);
41 if(u < 0) continue;
42 u = sqrt(u);
43 //printf("%d u\n", u);
44 nu[++len].x = max(a[j].y - u, 0);
45 nu[len].y = min(a[j].y + u, m - 1);
46 //printf("%d len %d %d\n", len, nu[len].x, nu[len].y);
47 }
48 if(len == 0) continue;
49 sort(nu + 1, nu + 1 + len);
50 int lt = nu[1].x, rt = nu[1].y;
51 for(int j = 2; j <= len; ++j)
52 {
53 if(nu[j].y < 0) continue;
54 if(nu[j].x >= m) break;
55 if(rt >= nu[j].x)
56 {
57 rt = max(rt,nu[j].y);
58 }
59 else
60 {
61 ans += rt - lt + 1;
62 //printf("%d i %d %d lt %d rt\n", i, ans, lt, rt);
63 lt = nu[j].x;
64 rt = nu[j].y;
65 }
66 }
67 ans += rt - lt + 1;
68 //printf("%d i %d %d lt %d rt\n", i, ans, lt, rt);
69 }
70 printf("%d\n", n * m - ans);
71 }
72 return 0;
73 }
2018ACM上海大都会赛 F Color it【基础的扫描线】的更多相关文章
- 【数位dp】Beautiful Numbers @2018acm上海大都会赛J
目录 Beautiful Numbers PROBLEM 题目描述 输入描述: 输出描述: 输入 输出 MEANING SOLUTION CODE Beautiful Numbers PROBLEM ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it
链接:https://www.nowcoder.com/acm/contest/163/F 来源:牛客网 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it 时间限制:C ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it (扫描线)
2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it (扫描线) 链接:https://ac.nowcoder.com/acm/contest/163/F来源:牛客网 时间 ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛
传送门:2018 ACM 国际大学生程序设计竞赛上海大都会赛 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛2018-08-05 12:00:00 至 2018-08-05 17:00:0 ...
- 2018 ACMICPC上海大都会赛重现赛 H - A Simple Problem with Integers (线段树,循环节)
2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 H - A Simple Problem with Integers (线段树,循环节) 链接:https://ac.nowcoder.co ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers (数位DP)
2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers (数位DP) 链接:https://ac.nowcoder.com/acm/contest/163/ ...
- 2018 ICPC上海大都会赛重现赛 D Thinking-Bear magic (几何)
2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 D Thinking-Bear magic (几何) 链接:https://ac.nowcoder.com/acm/contest/163/ ...
- 牛客 Fruit Ninja 2018 ACM 上海大都会赛 (随机化算法)
题目链接:Fruit Ninja 比赛链接:2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 题目描述 Fruit Ninja is a juicy action game enjoyed ...
- [2019上海网络赛F题]Rhyme scheme
题目链接 题意,求出合法的长度为n的字典序第k小字符串,合法的定义为除了最后一位,每一位的取值范围为'A'到'A'+pos-1,而最后一位的取值范围'A'到当前字符串最大值+1. 队友tql,Orz ...
随机推荐
- C# 关机/重启/注销计算机
一.调用 shutdown.exe 执行操作 调用 shutdown.exe 执行计算机关机.重启.注销操作,还可以设置多长时间后执行操作,代码如下: 1 /// <summary> 2 ...
- kettle数据质量统计
1.利用Kettle的"分组","JavaScript代码","字段选择"组件,实现数据质量统计.2.熟练掌握"JavaScrip ...
- 数据分析——Numpy/pandas
NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数据进行快速运算的标准数学函数(无需编 ...
- linux GPU上多个buffer间的同步 —— ww_mutex、dma-fence的使用 笔记
原文链接:https://www.cnblogs.com/yaongtime/p/14111134.html WW-Mutexes 在GPU中一次Render可能会涉及到对多个buffer的引 ...
- ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络
ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高.另外,HFF的 ...
- Shell从入门到精通
熟悉基本shell操作不仅是运维的基本功,对于开发来说也是多多益善,我在学习的过程中,总结了十个练手的小demo,并附上涉及的知识点,仅供娱乐. 1. 多线程ping监控,检查同一网段的IP是否连通 ...
- Redis持久化之父子进程与写时复制
之所以将Linux底层的写时复制技术放在Redis篇幅下,是因为Redis进行RDB持久化时,BGSAVE(后面称之为"后台保存")会开辟一个子进程,将数据从内存写进磁盘,这儿我产 ...
- IDEA_2019.1版本中Protobuf的使用
一.Protobuf是什么 Protobuf 是 Google 发布的开源项目,全称 Google Protocol(/'prəʊtəkɒl/,协议,草案) Buffers,是一种轻便高效的结构化数据 ...
- MySQL调优用户监控之show processlist
简介 show processlist显示这台MySQL正在连接的用户: mysql> show processlist; +----+------+-----------+-------+-- ...
- Qt 自动化测试Test cutedriver
示例 https://github.com/nomovok-opensource/cutedriver-examples CuteDriver examples This repository con ...