poj2836 状态压缩dp
来源:互联网 发布:有关网络的英语单词 编辑:程序博客网 时间:2024/05/22 01:04
分析:
两个点形成矩形可定时连接对角线的顶点。
预处理所有可能矩形的面积和他们能覆盖的点
注意两点连线平行坐标轴的情况和矩形顶点必须是整数这个条件。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define pr(x) cout << #x << ": " << x << " " #define pl(x) cout << #x << ": " << x << endl;struct jibancanyang{ int dp[1 << 15], n; int matrixs[15 * 15][2], points[15][2], cnt; void preProcess() { for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { int a = abs(points[i][0] - points[j][0]), b = abs(points[i][1] - points[j][1]); if (a == 0) a = 1; if (b == 0) b = 1; matrixs[cnt][0] = a * b; matrixs[cnt][1] = 0; for (int k = 0; k < n; ++k) { if (min(points[i][0], points[j][0]) <= points[k][0] && points[k][0] <= max(points[i][0], points[j][0]) && min(points[i][1], points[j][1]) <= points[k][1] && points[k][1] <= max(points[i][1], points[j][1])) matrixs[cnt][1] |= 1 << k; } cnt++; } } } int dynamicProgramming() { memset(dp, 0x3f, sizeof(dp)); dp[0] = 0; for (int s = 0; s < 1 << n; ++s) { for (int i = 0; i < cnt; ++i) { dp[s | matrixs[i][1]] = min(dp[s | matrixs[i][1]], dp[s] + matrixs[i][0]); } } return dp[(1 << n) - 1]; } void fun() { while (scanf("%d", &n), n) { cnt = 0; for (int i = 0; i < n; ++i) { scanf("%d%d", &points[i][0], &points[i][1]); } preProcess(); printf("%d\n", dynamicProgramming()); } }}ac;int main(){#ifdef LOCAL freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout);#endif ac.fun(); return 0;}
0 0
- poj2836(状态压缩dp)
- poj2836 状态压缩dp
- poj2836状态压缩DP+批量加入状态
- POJ2836 状态压缩dp不能逆向推倒的
- poj2836 状态压缩~矩形覆盖
- POJ2836-Rectangular Covering-状态dp
- poj2836 状压dp
- poj2836(状压dp)
- 状态压缩dp
- pku1038状态压缩dp
- 状态压缩DP 入门
- HDU1074 状态压缩DP
- Poj3254 状态压缩DP
- 状态压缩DP入门
- 【状态压缩DP】互不侵犯
- 【状态压缩DP】电子竞技
- HDU1074 状态压缩DP
- 【状态压缩DP】互不侵犯
- Java实现二叉树的基本操作
- CSS笔记:长度单位(二)
- liunx Shell 脚本入门
- Java中参数传递问题总结
- 显著性论文学习阶段总结(一)
- poj2836 状态压缩dp
- Linux Ubuntu 能PING IP但不能PING主机域名的解决方法
- 100~200之间的素数
- 【技术前沿】微信小程序带来的冲击和新的机会?
- 【Mybatis学习总结三】Mybatis种解决字段名与实体类属性名不相同的冲突
- Native APP学习
- Ajax的封装
- Java的练习5
- 电设国赛获奖作品学习笔记