2013 ACM/ICPC Asia Regional Hangzhou Online hdu4739 Zhuge Liang's Mines
Zhuge Liang's Mines
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 44 Accepted Submission(s): 9
Once, Zhuge Liang sent the arrogant Ma Shu to defend Jie Ting, a very important fortress. Because Ma Shu is the son of Zhuge Liang's good friend Ma liang, even Liu
The mine field can be considered as a the Cartesian coordinate system. Every mine had its coordinates. To simplify the problem, please only consider the squares which
The first line is an integer N, meaning that there are N mines( 0 < N <= 20 ).
Next N lines describes the coordinates of N mines. Each line contains two integers X and Y, meaning that there is a mine at position (X,Y). ( 0 <= X,Y <= 100)
The input ends with N = -1.
先暴力找出所有的正方形(因为地雷最多只有20个,所以n^4完全没问题),再0,1背包下选那些正方形能选到最多正方形就行了。
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <math.h>
#include <queue>
#include <map> using namespace std;
typedef struct abcd
{
double x,y;
} abcd;
abcd a[];
int t;
int maxa;
int c[];
int b[][];
bool cmp(abcd x,abcd y)
{
if(x.x!=y.x)return x.x<y.x;
else return x.y<y.y;
}
void dfs(int x,int sum)
{
if(x>=t)
{
if(maxa<sum)
maxa=sum;
return ;
}
int i;
int fla=;
for(i=x;i<t;i++)
{
if((c[b[i][]]||c[b[i][]]||c[b[i][]]||c[b[i][]])==)
{
fla=;
c[b[i][]]=;c[b[i][]]=;c[b[i][]]=;c[b[i][]]=;
dfs(i+,sum+);
c[b[i][]]=;c[b[i][]]=;c[b[i][]]=;c[b[i][]]=;
}
}
if(!fla)
{
if(maxa<sum)
maxa=sum;
}
}
int fun(int i,int j,int x,int y)
{
if(a[i].x==a[j].x&&a[j].x==a[x].x) return ;
if(a[i].y==a[j].y&&a[j].y==a[x].y) return ;
if(a[i].x!=a[j].x||a[x].x!=a[y].x)
return ;
if(a[i].y!=a[x].y||a[j].y!=a[y].y)
return ;
if(a[j].y-a[i].y!=a[x].x-a[i].x)
return ;
else return ;
}
int main()
{
int n; while(scanf("%d",&n))
{
if(n==-)
break;
int i,j,x,y;
for(i=; i<n; i++)
{
scanf("%lf%lf",&a[i].x,&a[i].y);
}
sort(a,a+n,cmp);
memset(c,,sizeof(c));
maxa=;
t=;
for(i=; i<n; i++)
{
for(j=i+; j<n; j++)
{
for(x=j+; x<n; x++)
{
for(y=x+; y<n; y++)
{
if(fun(i,j,x,y))
{
b[t][]=i;
b[t][]=j;
b[t][]=x;
b[t][]=y;
t++;
}
}
}
}
}
dfs(,);
cout<<maxa<<endl;
}
}
2013 ACM/ICPC Asia Regional Hangzhou Online hdu4739 Zhuge Liang's Mines的更多相关文章
- hdu 4747 Mex (2013 ACM/ICPC Asia Regional Hangzhou Online)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4747 思路: 比赛打得太菜了,不想写....线段树莽一下 实现代码: #include<iost ...
- [2013 ACM/ICPC Asia Regional Hangzhou Online J/1010]hdu 4747 Mex (线段树)
题意: + ;];;;], seg[rt << | ]);)) * fa.setv;) * fa.setv;;], seg[rt << | ], r - l + );;, ...
- HDU4745——Two Rabbits——2013 ACM/ICPC Asia Regional Hangzhou Online
这个题目虽然在比赛的时候苦思无果,但是赛后再做就真的是个水题,赤果果的水题. 题目的意思是给n个数构成的环,两只兔子从任一点开始分别顺逆时针跳,每次可以调到任意一个数(最多不会跳过一圈). 求最多能跳 ...
- HDU4747——2013 ACM/ICPC Asia Regional Hangzhou Online
啦啦啦. 这是杭州网赛的一个题目,当时没做出来,当然这个想法确实比较难想到. 题目质量很高,这个题目也很特别,以前都没做过类似的题目.让我又一次体验了线段树的强大力量. 题目的意思是给你n个数a1-a ...
- HDU 4745 Two Rabbits(最长回文子序列)(2013 ACM/ICPC Asia Regional Hangzhou Online)
Description Long long ago, there lived two rabbits Tom and Jerry in the forest. On a sunny afternoon ...
- HDU 4744 Starloop System(最小费用最大流)(2013 ACM/ICPC Asia Regional Hangzhou Online)
Description At the end of the 200013 th year of the Galaxy era, the war between Carbon-based lives a ...
- HDU 4747 Mex(线段树)(2013 ACM/ICPC Asia Regional Hangzhou Online)
Problem Description Mex is a function on a set of integers, which is universally used for impartial ...
- hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...
- hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...
随机推荐
- bat调用kettle的job文件
@bat set /p param=请输入时间:echo %param%F:cd D:/data-integrationecho 正在执行接口call Kitchen.bat/norep /file ...
- 常用的十大Python开发工具
据权威机构统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业.可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉 ...
- 大数问题:打印从1到最大的n位数
//打印从1到最大的n位数:大数问题,用字符串表示数字来避免溢出 bool increment(char* number){ bool isOverFlow = false; int nTakeOve ...
- 微信网页授权封装接口——node.js版
Wechat 网页授权 授权url:(请在微信客户端中打开此链接体验) xxx为config.js中的WECHAT_DOMAIN 1.scope为snsapi_base xxx/?route=auth ...
- node.js的fs核心模块读写文件操作 -----由浅入深
node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFil ...
- Angular 新手容易碰到的坑
Q1.<div ng-include="views/user/show.html"></div> 错在哪里? 如果你这么写过,会发现这个位置啥也没有加载出来 ...
- WeTest+微信:小程序云端测试系统上线
日前,微信新增小程序测试系统,可便于开发者检测小程序缺陷,评估小程序产品质量.在小程序发布之前,开发者可将小程序代码提交到测试系统,在不同型号的手机真机上运行,执行完毕后自动生成测试报告.小程序云端测 ...
- 带你简单了解python协程和异步
带你简单了解python的协程和异步 前言 对于学习异步的出发点,是写爬虫.从简单爬虫到学会了使用多线程爬虫之后,在翻看别人的博客文章时偶尔会看到异步这一说法.而对于异步的了解实在困扰了我好久好久,看 ...
- 【★】SPF(Dijkstra)算法完美教程
- 【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)
写在前面的话 此次团队作业8可以拆分成两部分:1.beta阶段冲刺计划安排,2.7天敏捷冲刺."我们很低调"没有使用leangoo,经过与张老师的商议,张老师同意他们不使用lean ...