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 ...
随机推荐
- Today’s words
transcendental,transcendental capacity commission,the commission would keep venetian unimodel transi ...
- 暑假集训(4)第七弹——— 组合(hdu1850)
题意概括:你赢得了第一局.魔鬼给出的第二局是,如果有N堆牌,先手的人有几种可能胜利. 问题分析:尼姆游戏,先得到n堆牌的数量异或和,再将异或和与每一个牌组的数量异或,如果结果小于原牌组数量 则可能++ ...
- 关键字 explicit
C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色. 1 是个构造器 ,2 是个默认且隐含的类型转换操作符. 所以, 有时候在我们写下如 AAA ...
- Poj 2993 Emag eht htiw Em Pleh
1.Link: http://poj.org/problem?id=2993 2.Content: Emag eht htiw Em Pleh Time Limit: 1000MS Memory ...
- php 实现 mysql数据表优化与修复
<?php $link = mysql_connect("localhost", "root", "") or die("e ...
- Android开发系列之按钮事件的4种写法
经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...
- C# Json数据反序列化为Dictionary并根据关键字获取指定值
Json数据: { "dataSet": { "header": { "returnCode": "0", " ...
- sizeof() 之 数组
在平时的编程中,我们会经常用到数组,并且需要知道数组的长度,有时我们可以明确的知道数组的长度,但有时并不,这时,可以借用sizeof(),来获得数组的长度,如下: arrayLength = size ...
- CentOS 6,7最小化安装后再安装图形界面
CentOS 6.2最小化安装后再安装图形界面 在安装CentOS 6.2时发现它没有提示我要怎么安装,而是“自作主张”地给我选择了最小化安装,结果装完之后只有终端界面,因为有时候不得不用图形界面,所 ...
- 中科红旗倒下,谁来挑战windows
中科红旗解散 国产操作系统从此梦断 2月10日,关门上锁的中科红旗北京总部大门上粘贴了一张最新公告,这张公告彻底击破了那些仍然坚守公司工作的员工“拯救中国红旗”的希望.该公告称:因北京中科红旗软件技术 ...