Rectangles(hdu2461)
Rectangles
Time Limit: 5000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1497 Accepted Submission(s): 773
are developing a software for painting rectangles on the screen. The
software supports drawing several rectangles and filling some of them
with a color different from the color of the background. You are to
implement an important function. The function answer such queries as
what is the colored area if a subset of rectangles on the screen are
filled.
input consists of multiple test cases. Each test case starts with a
line containing two integers N(1 ≤ N ≤ 20) and M(1 ≤ M ≤ 100000),
indicating the number of rectangles on the screen and the number of
queries, respectively.
The i-th line of the following N lines
contains four integers X1,Y1,X2,Y2 (0 ≤ X1 < X2 ≤ 1000, 0 ≤ Y1 <
Y2 ≤ 1000), which indicate that the lower-left and upper-right
coordinates of the i-th rectangle are (X1, Y1) and (X2, Y2). Rectangles
are numbered from 1 to N.
The last M lines of each test case describe
M queries. Each query starts with a integer R(1<=R ≤ N), which is
the number of rectangles the query is supposed to fill. The following
list of R integers in the same line gives the rectangles the query is
supposed to fill, each integer of which will be between 1 and N,
inclusive.
The last test case is followed by a line containing two zeros.
For
each query in the input, print a line containing the query number
(beginning with 1) followed by the corresponding answer for the query.
Print a blank line after the output for each test case.
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string.h>
5 #include<queue>
6 #include<stack>
7 #include<map>
8 using namespace std;
9 typedef struct pp
10 {
11 int x1;
12 int y1;
13 int x2;
14 int y2;
15 } ss;
16 ss ju[30];
17 int quer[1<<22];
18 int cnt[30];
19 int aa[1<<22];
20 int bt[30];
21 int cp[100005];
22 int ask[100005];
23 int tt[100];
24 int N;
25 void dfs(int k,int u);
26 int main(void)
27 {
28 int i,j,k,p,q;
29 int kk=0;
30 while(scanf("%d %d",&p,&q),p!=0&&q!=0)
31 {
32 kk++;
33 memset(ask,0,sizeof(ask));
34 for(i=0; i<p; i++)
35 {
36 scanf("%d %d %d %d",&ju[i].x1,&ju[i].y1,&ju[i].x2,&ju[i].y2);
37 }
38 int s;
39 int n;
40 for(s=0; s<q; s++)
41 {
42 N=0;
43 scanf("%d",&n);
44 int mn=0;
45 int dd;
46 for(i=0; i<n; i++)
47 {
48 scanf("%d",&dd);
49 mn|=(1<<(dd-1));
50 }
51 cp[s]=mn;
52 }
53 int flag[23];
54 for(i=1; i<=(1<<p)-1; i++)
55 {
56 int cn=0;
57 memset(flag,0,sizeof(flag));
58 for(j=0; j<p; j++)
59 {
60 if(i&(1<<j))
61 {
62 cn++;
63 flag[j]=1;
64 }
65 }
66 int nn;
67 int ak=0;
68 for(nn=0; nn<22; nn++)
69 {
70 if(flag[nn])
71 {
72 cnt[ak++]=nn;
73 }
74 }
75 int mm;
76 int xx1,yy1,xx2,yy2;
77 xx1=ju[cnt[0]].x1;
78 yy1=ju[cnt[0]].y1;
79 xx2=ju[cnt[0]].x2;
80 yy2=ju[cnt[0]].y2;
81 int uu=0;
82 for(nn=1; nn<ak; nn++)
83 {
84 if(xx1>=ju[cnt[nn]].x2)
85 {
86 uu=1;
87 aa[i]=0;
88 break;
89 }
90 else if(xx2<=ju[cnt[nn]].x1)
91 {
92 uu=1;
93 aa[i]=0;
94 break;
95 }
96 else if(yy1>=ju[cnt[nn]].y2)
97 {
98 uu=1;
99 aa[i]=0;
100 break;
101 }
102 else if(yy2<=ju[cnt[nn]].y1)
103 {
104 uu=1;
105 aa[i]=0;
106 break;
107 }
108 else
109 {
110 xx1=max(xx1,ju[cnt[nn]].x1);
111 yy1=max(yy1,ju[cnt[nn]].y1);
112 xx2=min(xx2,ju[cnt[nn]].x2);
113 yy2=min(yy2,ju[cnt[nn]].y2);
114 }
115 }
116 if(!uu)
117 {
118 int miji=abs(xx1-xx2)*abs(yy1-yy2);
119 aa[i]=miji;
120 for(s=0; s<q; s++)
121 {
122 int gg=cp[s]|i;
123 if(gg<=cp[s])
124 {
125 if(cn%2)
126 {
127 ask[s]+=aa[i];
128 }
129 else ask[s]-=aa[i];
130 }
131 }
132 }
133 }
134 printf("Case %d:\n",kk);
135 for(j=0; j<q; j++)
136 {
137 printf("Query %d: ",j+1);
138 printf("%d\n",ask[j]);
139 }
140 printf("\n");
141 }
142 return 0;
143 }
Rectangles(hdu2461)的更多相关文章
- Rectangles hdu2461容斥定理
Rectangles Time Limit: 5000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu2461 Rectangles 线段树--扫描线
You are developing a software for painting rectangles on the screen. The software supports drawing s ...
- poj-1314 Finding Rectangles
题目地址: http://poj.org/problem?id=1314 题意: 给出一串的点,有些点可以构成正方形,请按照字符排序输出. 因为这道题的用处很大, 最近接触的cv 中的Rectangl ...
- [ACM_暴力][ACM_几何] ZOJ 1426 Counting Rectangles (水平竖直线段组成的矩形个数,暴力)
Description We are given a figure consisting of only horizontal and vertical line segments. Our goal ...
- codeforces 713B B. Searching Rectangles(二分)
题目链接: B. Searching Rectangles time limit per test 1 second memory limit per test 256 megabytes input ...
- White Rectangles[HDU1510]
White Rectangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...
- Counting Rectangles
Counting Rectangles Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1043 Accepted: 546 De ...
- UVA 10574 - Counting Rectangles 计数
Given n points on the XY plane, count how many regular rectangles are formed. A rectangle is regular ...
随机推荐
- [转载]ORA-02287: 此处不允许序号
原文地址:ORA-02287: 此处不允许序号作者:nowhill 转载自 http://blog.sina.com.cn/s/blog_6d496bad01011dyv.html 开发人员反映序列不 ...
- java中接口可以继承接口
今天阅读别人的代码才发现,接口是可以继承接口的 一个类只能extends一个父类,但可以implements多个接口. 一个接口则可以同时extends多个接口,却不能implements任何接口. ...
- mysql数据操作语言DML
插入insert 插入方式1 语法: insert into 表名(列名,....) values(值1,....) 说明: 1.插入的值的类型要与列的类型一致或兼容 2.可以为null的值:①列写了 ...
- acute, adapt
acute In Euclidean [欧几里得] geometry, an angle is the figure [图形] formed by two rays, called the sides ...
- stlink 无法再keil中识别 按下复位键可以识别
最近遇到一个很是头痛的问题 本来板子是好好的,就是从公司带回的家里 然后再次用stlink烧写程序的时候就出现了问题: 但是查看电脑端,上面是有stlink的 也就是电脑是好的, 我立刻又试了一下家中 ...
- springboot热部署与监控
一.热部署 添加依赖+Ctrl+F9 <dependency> <groupId>org.springframework.boot</groupId> <ar ...
- Spring Boot简单操作
目录 一.自定义异常页面 二.单元测试 三.多环境选择 四.读取主配置文件中的属性 五.读取List属性 一.自定义异常页面 对于404.405.500等异常状态,服务器会给出默认的异常页面,而这些 ...
- 【Linux】【Services】【Configuration】puppet
1. 简介 1.1. 官方网站:https://docs.puppet.com/ 1.2. puppet是IT基础设施自动化管理工具,他的整个生命周期包括:provisioning,configura ...
- VueAPI 2 (生命周期钩子函数)
所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法. beforeCreate 在实例初始化之后,此时还不 ...
- 使用beanUtils封装对象的servlet
package com.hopetesting.web.servlet;import com.hopetesting.dao.UserDao;import com.hopetesting.domain ...