HDU4739Zhuge Liang's Mines(状压)
预处理出只有四个1的情况存入数组中 然后状压下
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define N 1050000
int dp[][N];
int q[][N];
int pt[N];
bool f[N];
struct node
{
int x,y;
}pp[];
bool cmp(node a,node b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
int main()
{
int n,i,j,k,o,p[][];
while(scanf("%d",&n)!=EOF)
{
if(n==-)
break;
memset(dp,,sizeof(dp));
for(i = ; i < n ; i++)
scanf("%d%d",&pp[i].x,&pp[i].y);
sort(pp,pp+n,cmp);
k = ;
for(i = ; i < <<n ; i++)
{
o = ;
for(j = ; j < n ; j++)
{
if(i&(<<j))
{
o++;
p[o][] = pp[j].x;
p[o][] = pp[j].y;
}
}
if(o==)
{
int x1,x2;
if(p[][]==p[][]&&p[][]==p[][]&&p[][]==p[][]&&p[][]==p[][])
{
x1 = p[][]-p[][];
x2 = p[][]-p[][];
if(x1==x2)
{
k++;
q[][k] = i;
dp[][i] = ;
pt[k] = i;
}
}
}
}
int tt = k;
o=k;
for(i = ; i <= n/+ ; i++)
{
k = tt;tt=;
for(j = ; j <= k ; j++)
{
for(int g = ; g <= o ; g++)
{
if(q[(i-)%][j]&pt[g])
continue;
int x = q[(i-)%][j]+pt[g];
dp[i%][x] = max(dp[i%][x],dp[(i-)%][q[(i-)%][j]]+);
if(!f[x])
{
f[x] = ;
tt++;
q[i%][tt] = x;
}
}
}
}
int ans=;
for(i = ; i < <<n ; i++)
{
ans = max(ans,max(dp[][i],dp[][i]));
}
printf("%d\n",ans);
}
return ;
}
HDU4739Zhuge Liang's Mines(状压)的更多相关文章
- hdu 4739 Zhuge Liang's Mines 随机化
Zhuge Liang's Mines Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...
- BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3336 Solved: 1936[Submit][ ...
- 【BZOJ-4197】寿司晚宴 状压DP
4197: [Noi2015]寿司晚宴 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 694 Solved: 440[Submit][Status] ...
- nefu1109 游戏争霸赛(状压dp)
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...
- poj3311 TSP经典状压dp(Traveling Saleman Problem)
题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- 【专业找水题】状压dp最水题,没有之一
题目链接 现在代码能力没上升,倒是越来越会找水题了(比例题还水的裸题你值得拥有) 这网站不是针对竞赛的,所以时空限制都很宽松 然后就让我水过去了 对于每个点,包括自己的前m个元素是否取都是一种状态,所 ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
随机推荐
- [翻译][MVC 5 + EF 6] 10:处理并发
原文:Handling Concurrency with the Entity Framework 6 in an ASP.NET MVC 5 Application 1.并发冲突: 当一个用户编辑一 ...
- centos svn安装
http://fengjunoo.iteye.com/blog/1759265(参考) 以前在ubuntu上安装过一次svn,那次弄得有些麻烦. 这次记录下centos环境下安装svn的步骤 其实简单 ...
- 在Mac OS X中搭建STM32开发环境(3)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在上两篇文章中,我们先后编译和安装了ST-Link2和交叉编译工具,在大家确认安装成功以后 ...
- 【Linux工具】svn命令行使用实例
引言 网上有这么多介绍 svn 使用的文章,为什么还要写?因为它们深入不浅出,平铺不分类,理论不实际,看完也记不住. 本文先介绍基本用法,后进行实例演练.不求大而全,只求熟练常用,自行用 svn he ...
- Eat that Frog
Eat that Frog,中文翻译过来就是“吃掉那只青蛙”.不过这里并不是讨论怎么去吃青蛙,而是一种高效的方法. Eat that Frog是Brian Tracy写的一本书(推荐阅读).这是一个很 ...
- LinqToExcel常用对象
1.ExcelQueryFactory对象(1)获取工作表名集合IEnumerable<string> GetWorksheetNames() //获取工作薄中的工作表名 foreach ...
- NpoiUtil
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Oracle OEM重建
参考博客:http://blog.csdn.net/tianlesoftware/article/details/4702978 测试环境: C:\Users\Administrator>sql ...
- sencha touch
download http://www.sencha.com/products/touch/thank-you/ Developer Center http://developer.sencha.co ...
- linq query, using int.parse to convert varchar to int while orderby
var t = from x in context.NewsLetterItem.ToList() //add .ToList at this place where x.APPId == appid ...