hdu 3952
因为一个小错 不过 好不爽........
#include <iostream>
#include <fstream>
using namespace std;
struct Node
{
int x, y;
};
class shap
{
public:
int num;
Node dian[22];
} q[22];
double getk(int x1, int y1, int x2, int y2)
{
return (double)(y1-y2)/(double)(x1-x2);
}
double esp = 1e-7;
int main(void)
{
// freopen("1.txt", "r", stdin);
int kase;
cin>>kase;
int n;
int count = 1;
while(kase-- && cin>>n)
{
int m;
for(int i = 0; i < n; i++)
{
cin>>m;
q[i].num = m;
for(int j = 0; j < m; j++)
cin>>q[i].dian[j].x>>q[i].dian[j].y;
}
if(n <= 2)
{
printf("Case %d: %d\n", count++, n);
continue;
}
int _max = 2;
for(int i = 0; i < n; i++)
{
for(int j = i+1; j < n; j++)
{
for(int k = 0; k < q[i].num; k++)
{
for(int g = 0; g < q[j].num; g++)
{
int a = q[i].dian[k].x;
int b = q[i].dian[k].y; int c = q[j].dian[g].x;
int d = q[j].dian[g].y; int cnt = 2;
if(a == c)
{
for(int ii = 0; ii < n; ii++)
{
if(ii == i || ii == j)
continue;
int x = a;
int ok = q[ii].dian[0].x < x? -1:1; if(q[ii].dian[0].x == x)
{
cnt++;
continue;
}
//0表示点在下方
for(int jj = 1; jj < q[ii].num; jj++)
{
int pos = q[ii].dian[jj].x < x? -1:1;
if(q[ii].dian[jj].x == x)
{
cnt++;
break;
}
if(ok * pos == -1)
{
cnt++;
break;
}
}
}
continue;
}
double k = getk(a, b, c, d);
double bi = b - k*a; //枚举第三个多边形
for(int ii = 0; ii < n; ii++)
{
if(ii == i || ii == j)
continue;
//0表示点在下方
if(k*q[ii].dian[0].x + bi - q[ii].dian[0].y == 0)
{
cnt++;
continue;
}
int ok = k*q[ii].dian[0].x + bi - q[ii].dian[0].y < 0? -1:1;
for(int jj = 1; jj < q[ii].num; jj++)
{
int pos = k*q[ii].dian[jj].x + bi - q[ii].dian[jj].y < 0? -1:1;
if(k*q[ii].dian[jj].x + bi - q[ii].dian[jj].y == 0)
{
cnt++;
break;
}
if(ok * pos == -1)
{
cnt++;
break;
}
}
}
_max = max(cnt, _max);
}
}
}
}
printf("Case %d: %d\n", count++, _max);
} return 0;
}
hdu 3952的更多相关文章
- hdu - 3952 Fruit Ninja(简单几何)
思路来自于:http://www.cnblogs.com/wuyiqi/archive/2011/11/06/2238530.html 枚举两个多边形的两个点组成的直线,判断能与几个多边形相交 因为最 ...
- HDU——1130 How Many Trees?
How Many Trees? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
- hdu 4481 Time travel(高斯求期望)(转)
(转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...
随机推荐
- ViewPager的基本使用--可左右循环切换也可自动切换
ViewPager也算是Android自带的常用控件之一,但是有可能会无法直接调用,所以只需要将工程目录里/libs/android-support-v4.jar该jarAdd to Build Pa ...
- php 中cookie和session的用法比较
1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session. ...
- 使用Emmet(前身Zen Coding)加速Web前端开发
Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章 ...
- Javascript中的函数
Javascript中的函数 1.什么是函数 函数是被命名的,独立的,完成特定功能的代码段.其可能给调用它的程序返回值,我们把这个代码段就称之为"函数". 被命名的:函数大部分都是 ...
- SpringInAction读书笔记--第1章Spring之旅
1.简化Java开发 Spring是一个开源框架,它的根本使命在于简化java开发.为了降低java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程 ...
- maven中scope参数说明
官方说明文档地址https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Depen ...
- 再说 extern "C"
早知道 C++ 源文件中要调用C语言函数需要在函数申明时 指定extern "C": 要不然可以编译通过,但连接时提示找不到什么什么符号,原因是C和C++生成的函数名不一样,ext ...
- linux下golang的配置
linux下golang的配置 之前开发golang一直在windows下,今天在linux下试了一下 ,遇到一些梗,比如go 找不到 sync包.花了一小时全部解决,把过程记录一下. 安装 go 我 ...
- ActiveMq+zookeeper+levelDB集群整合配置
ActiveMq+zookeeper+levelDB集群整合配置 环境:linux系统,jdk1.7 三台linux系统电脑.我这里使用一台window,分别远程3台linux电脑.三台电脑的ip分 ...
- js字符串长度计算(一个汉字==两个字符)和字符串截取
js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\ ...