【HDOJ】2217 Visit
挺好的一道DP。
/* 2217 */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std; #define MAXN 2005
#define MAXM 100005 int lt[MAXN], rt[MAXN];
int ldp[MAXM], rdp[MAXM];
int ln, rn, zn; int main() {
int n, t;
int i, j, k, tmp;
int ans; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif while (scanf("%d %d", &n, &t) != EOF) {
ln = rn = ;
zn = ;
lt[] = ;
rt[] = ;
for (i=; i<n; ++i) {
scanf("%d", &k);
if (k > )
rt[rn++] = k;
else if (k < )
lt[ln++] = -k;
else
++zn;
} rt[] = ;
lt[] = ;
sort(rt, rt+rn);
sort(lt, lt+ln);
ldp[] = ;
rdp[] = ; k = ;
for (i=; i<ln; ++i) {
for (j=lt[i-]; j<lt[i]; ++j)
ldp[j] = k;
++k;
ldp[j] = k;
} k = ;
for (i=; i<rn; ++i) {
for (j=rt[i-]; j<rt[i]; ++j)
rdp[j] = k;
++k;
rdp[j] = k;
} ans = -;
// go left and back to right
for (i=; i<=lt[ln-]; ++i) {
if (t < i)
break;
k = t-(i+i);
if (k < )
k = ;
if (k > rt[rn-])
k = rt[rn-]; ans = max(ans, ldp[i]+rdp[k]);
}
// go right and back to left
for (i=; i<=rt[rn-]; ++i) {
if (t < i)
break;
k = t-(i+i);
if (k < )
k = ;
if (k > lt[ln-])
k = lt[ln-]; ans = max(ans, rdp[i]+ldp[k]);
}
// go zero point first
ans += zn; printf("%d\n", ans);
} return ;
}
【HDOJ】2217 Visit的更多相关文章
- 【HDOJ】4729 An Easy Problem for Elfness
其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...
- 【HDOJ】4418 Time travel
1. 题目描述K沿着$0,1,2,\cdots,n-1,n-2,n-3,\cdots,1,$的循环节不断地访问$[0, n-1]$个时光结点.某时刻,时光机故障,这导致K必须持续访问时间结点.故障发生 ...
- 【HDOJ】4351 Digital root
digital root = n==0 ? 0 : n%9==0 ? 9:n%9;可以简单证明一下n = a0*n^0 + a1*n^1 + ... + ak * n^kn%9 = a0+a1+..+ ...
- 【HDOJ】4322 Candy
状态DP显然可以解,发现T了,不知道优化后能不能过.然后发现费用流可以解.trick是对need拆解成need/K, need%K两种情况讨论. /* 4312 */ #include <ios ...
- 【HDOJ】5296 Annoying problem
LCA+RMQ.挺不错的一道题目. 思路是如何通过LCA维护费用.当加入新的点u是,费用增量为dis[u]-dis[lca(u, lower_u)] - dis[lca(u, greater_u)] ...
- 【HDOJ】3948 The Number of Palindromes
后缀数组求不重复回文子串数目.注意dp数组. /* 3948 */ #include <iostream> #include <sstream> #include <st ...
- 【HDOJ】4775 Infinite Go
其实是一道模拟题,并查集用来优化.还可以的一道题目. /* 4775 */ #include <iostream> #include <sstream> #include &l ...
- 【HDOJ】2242 考研路茫茫——空调教室
tarjan缩点,然后树形dp一下可解.重点是重边的处理. /* 2242 */ #include <iostream> #include <sstream> #include ...
- 【HDOJ】1518 Square
DFS+剪枝.与HDOJ 1455如出一辙. #include <stdio.h> #include <stdlib.h> #include <string.h> ...
随机推荐
- 【网络通信】服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?
1. 服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么? 答:对.建立连接时服务器会分配一个新的Socket,但是用的源端口号还是80端口.套接字是由协议类型.源IP.目的IP ...
- iOS 数据持久化(1):属性列表与对象归档
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- 布局重用 include merge ViewStub
在布局优化中,Androi的官方提到了这三种布局<include />.<merge />.<ViewStub />,并介绍了这三种布局各有的优势,下面也是简单说一 ...
- ASP.NET MVC 第三回 Controller与View
这节我们让ASP.NET MVC真正的跑起来 一.新建Controller 首先我们自己新建一个新的Controller在Controllers上点右键,添加,Controller选项 之后出现一 ...
- ASP.NET图片验证码
1. 新建一个Validate.aspx,然后在Validate.aspx.cs编写代码: using System; using System.Collections; using System.C ...
- css兼容性问题
其实做网页最大的问题还是兼容性吧,要调试IE的各种浏览器. DIV+CSS设计IE6.IE7.FF 兼容性 DIV+CSS网页布局这是一种趋势,我也开始顺应这股趋势了,不过在使用DIV+CSS网站设 ...
- IDEA 13》》》14破解
更新IDEA 15注册方式 http://15.idea.lanyus.com/ ------------------------------------------------ 之前的已不能用,下面 ...
- 什么是DOM
什么DOM,简单的说.DOM是一套对文档的内容进行抽象和概念化的方法. 在现实世界里,人们对所谓的“世界对象模型”都不会陌生.例如,当用“汽车”.房子 和树等名词
- OC - 28.模拟时钟
效果图 实现思路 该示例通过隐式动画实现 表盘通过显示在imageView中的一张图片来实现 在表盘上绘制(时分秒)三条直线,分别位于不同的图层,且时针位于最下层,秒针位于最上层 设置直线为圆角 直线 ...
- 【NOI2004】郁闷的出纳员
[问题描述] OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的 ...