Time Limit: 4000ms, Special Time Limit:10000ms, Memory Limit:65536KB
Total submit users: 11, Accepted users: 9
Problem 13240 : No special judgement
Problem description

A long art gallery has 2N rooms. The gallery is laid out as N rows of 2 rooms side-by-side. Doors connect all adjacent rooms (north-south and east-west, but not diagonally). The curator has been told that she must close off k of the rooms because of staffing
cuts. Visitors must be able to enter using at least one of the two rooms at one end of the gallery, proceed through the gallery, and exit from at least one of the two rooms at the other end. Therefore, the curator must not close off any two rooms that would
block passage through the gallery. That is, the curator may not block off two rooms in the same row or two rooms in adjacent rows that touch diagonally. Furthermore, she has determined how much value each room has to the general public, and now she wants to
close off those k rooms that leave the most value available to the public, without blocking passage through the gallery.



Input

Input will consist of multiple problem instances (galleries). Each problem instance will begin with a line containing two integers N and k, where 3 ≤ N ≤ 200 gives the number of rows, and 0 ≤ k ≤ N gives the number of rooms that must be closed off. This
is followed by N rows of two integers, giving the values of the two rooms in that row. Each room’s value v satisfies 0 ≤ v ≤ 100. A line containing 0 0 will follow the last gallery.

Output

For each gallery, output the amount of value that the general public may optimally receive, one line per gallery.

Sample Input
6 4
3 1
2 1
1 2
1 3
3 3
0 0 4 3
3 4
1 1
1 1
5 6 10 5
7 8
4 9
3 7
5 9
7 2
10 3
0 10
3 2
6 3
7 9 0 0
Sample Output
17
17
102
Problem Source
ACM-ICPC North America Qualifier 2014

我还是非常弱的……

dp[i][j][k]:前i行在状态j时,关掉k个房间后的最大值

当然有些k在某些状态时是訪问不到的,所以此时赋上一个非常小的值。这样就不影响结果

j是有3个状态。0为i行两个都取不到。1为关掉i行左边那个房间,2为关掉i行右边那个房间

#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#include<bitset>
#include<climits>
#include<list>
#include<iomanip>
#include<stack>
#include<set>
using namespace std;
int dp[210][3][210],k,n,g[210][2];
int work()
{
for(int i=0;i<3;i++)
fill(dp[0][i],dp[0][i]+k+1,INT_MIN);
dp[0][0][0]=g[0][0]+g[0][1];
dp[0][1][1]=g[0][1];
dp[0][2][1]=g[0][0];
for(int i=1;i<n;i++)
for(int j=0;j<=k;j++)
{
dp[i][0][j]=max(dp[i-1][0][j],max(dp[i-1][1][j],dp[i-1][2][j]))+g[i][0]+g[i][1];
if(j==0)
dp[i][1][j]=dp[i][2][j]=INT_MIN;
else
{
dp[i][1][j]=max(dp[i-1][0][j-1],dp[i-1][1][j-1])+g[i][1];
dp[i][2][j]=max(dp[i-1][0][j-1],dp[i-1][2][j-1])+g[i][0];
}
}
return max(dp[n-1][0][k],max(dp[n-1][1][k],dp[n-1][2][k]));
}
int main()
{
while(cin>>n>>k)
{
if(n==0&&k==0)
break;
for(int i=0;i<n;i++)
for(int j=0;j<2;j++)
cin>>g[i][j];
cout<<work()<<endl;
}
}


Narrow Art Gallery的更多相关文章

  1. poj 1279 -- Art Gallery (半平面交)

    鏈接:http://poj.org/problem?id=1279 Art Gallery Time Limit: 1000MS   Memory Limit: 10000K Total Submis ...

  2. poj 1279 Art Gallery - 求多边形核的面积

    /* poj 1279 Art Gallery - 求多边形核的面积 */ #include<stdio.h> #include<math.h> #include <al ...

  3. 【POJ】【2068】Art Gallery

    计算几何/半平面交 裸的半平面交,关于半平面交的入门请看神犇博客:http://blog.csdn.net/accry/article/details/6070621 然而代码我是抄的proverbs ...

  4. 再来一道测半平面交模板题 Poj1279 Art Gallery

    地址:http://poj.org/problem?id=1279 题目: Art Gallery Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  5. poj 1279 Art Gallery (Half Plane Intersection)

    1279 -- Art Gallery 还是半平面交的问题,要求求出多边形中可以观察到多边形所有边的位置区域的面积.其实就是把每一条边看作有向直线然后套用半平面交.这题在输入的时候应该用多边形的有向面 ...

  6. UVA 10078 The Art Gallery

    Problem: Century Arts has hundreds of art galleries scattered all around the country and you are hir ...

  7. 【POJ 1279】Art Gallery

    http://poj.org/problem?id=1279 裸的半平面交的模板,按极角排序后维护一个双端队列,不要忘了最后要去除冗余,即最后一条边(或者更多的边)一定在双端队列里,但它不一定构成半平 ...

  8. POJ 1279 Art Gallery(半平面交)

    题目链接 回忆了一下,半平面交,整理了一下模版. #include <cstdio> #include <cstring> #include <string> #i ...

  9. 【POJ】1279 Art Gallery

    http://poj.org/problem?id=1279 题意:给一个n个点的多边形,n<=1500,求在多边形内能看到所有多边形上的点的面积. #include <cstdio> ...

随机推荐

  1. php导出mysql源码

    件名:db_backup.php 源代码如下: 复制代码 代码如下: <?php ini_set("max_execution_time", "180") ...

  2. JavaScript的实参、形参以及变量

    (1)js函数中什么是形参,什么是实参,两者有什么区别? 参数又称参变量,在js中函数接收的变量分为形参和实参.实参是指实际参与js函数调用使用的具体数据.形参是指函数被调用时,接收实参值的变量.根据 ...

  3. 时间框的属性编辑(WdatePicker日期插件)

    效果图如下:可以设置输入的时间不大于,或不小于某日. //引用js包 <script type="text/javascript" src="${basePath} ...

  4. Tomcat 程序无问题的情况下页面打开变慢的原因

    看看这写日志的频率就知道我有多闲了.. 前言: 其实关于tomcat,遇到过很多关于“慢”的问题,比如启动慢,比如页面打开慢, 以前太忙也太懒,不愿意花时间分析原因,现在终于肯静下来找原因 环境是ec ...

  5. [转]深入javascript——原型链和继承

    在上一篇post中,介绍了原型的概念,了解到在javascript中构造函数.原型对象.实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置 ...

  6. php基础知识 书写格式

    PHP,是英文超文本预处理语言Hypertext Preprocessor的递归缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言. php嵌入页面的标记有 ...

  7. 常用SQL函数

    —————常用SQL函数(实例简述)————— 数据库环境:DB2数据库: 执行工具:Toad for  DB2 1.转字符串:to_char() 日期类型:to_char(birthday,'yyy ...

  8. C# 跨平台换行符 System.Environment.NewLine

    C# 跨平台换行符 System.Environment.NewLine

  9. 红黑联盟 php相关资讯

    http://www.2cto.com/tag/phpbanben.html

  10. windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案(转)

    戴尔服务器r530 windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案 关于在服务 ...