hdu 2217 Visit
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2217
题目解释:起始位置在原点,给你固定的时间,让你左右跑,求在规定的时间内你最多能跑多少个点;
解决本题,一个是要统计经过的点的个数,一个是全局只有一个拐,所以枚举所有的拐点即可解决;
五个小时卡到一组数据上:
8 9
-5 -4 -3 -2 2 2 2 2
答案应该是:8
AC代码:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int N = ;
const int M = ;
int lefT[N],righT[N];
int LL[M],RR[M];
int main()
{
int n,L,R,T,le,ri,ans,x,y;
while(scanf("%d %d",&n,&T)!=EOF)
{
L =;R=;le =;ri = ;ans = -;
memset(LL,,sizeof(LL));
memset(RR,,sizeof(RR));
for(int i =; i<=n; i++)
{
scanf("%d",&x);
if(x<)
{
x = abs(x);
lefT[L++] = x;
LL[x]++;
}
else
{
righT[R++] = x;
RR[x]++;
}
}
lefT[] = ;
righT[] = ;
sort(lefT+,lefT+L+);
sort(righT+,righT+R+);
//预处理到达当前位置时共找到的点数,仔细退一下就出来了
for(int i = ; i<=T; i++)
{
LL[i] =LL[i-]+LL[i];
RR[i] = RR[i-]+RR[i];
}
//下面是模拟首先向左跑
int xx = ;
while(*lefT[xx]<=T && xx<L)
{
ans = max(ans,LL[lefT[xx]]+RR[T - *lefT[xx]]);
xx++;
}
//下面模拟首先向右跑
xx = ;
while(*righT[xx]<=T && xx<R)
{
ans = max(ans,RR[righT[xx]]+LL[T - *righT[xx]]);
xx++;
}
printf("%d\n",ans);
}
return ;
}
hdu 2217 Visit的更多相关文章
- 【HDOJ】2217 Visit
挺好的一道DP. /* 2217 */ #include <iostream> #include <cstdio> #include <cstring> #incl ...
- HDU 2217 Data Structure?
C - Data Structure? Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- hdu 4612 Warm up(缩点+树上最长链)
本来就是自己负责图论,结果水了= = 题目其实很裸,就是求桥的数量,只是要新加上一条边罢了.做法:先缩点.再在树上搜最长链(第一场多校的hdu 4607Park Visit就考了最长链,小样,套个马甲 ...
- hdu 4607 Park Visit 求树的直径
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 题目大意:给你n个点,n-1条边,将图连成一棵生成树,问你从任意点为起点,走k(k<=n) ...
- hdu 4607 Park Visit
http://acm.hdu.edu.cn/showproblem.php?pid=4607 先求树的直径 方法:两遍bfs ,任选一点 a 求到a点最远的一点b ,然后 求到b点最远点 c 这样 ...
- hdu 4607 Park Visit (dfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 首先如果k小于等于直径长度,那么答案为k−1.如果k大于直径长度,设直径长度为r,那么答案为r− ...
- HDU 4607 Park Visit (树的最长链)
Park Visit Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 题解报告:hdu 4607 Park Visit(最长链)
Problem Description Claire and her little friend, ykwd, are travelling in Shevchenko's Park! The par ...
- HDU 4607 Park Visit 两次DFS求树直径
两次DFS求树直径方法见 这里. 这里的直径是指最长链包含的节点个数,而上一题是指最长链的路径权值之和,注意区分. K <= R: ans = K − 1; K > R: ans = ...
随机推荐
- POJ 2975 Nim(博弈论)
[题目链接] http://poj.org/problem?id=2975 [题目大意] 问在传统的nim游戏中先手必胜策略的数量 [题解] 设sg=a1^a1^a3^a4^………^an,当sg为0时 ...
- 【树链剖分】【树状数组】【最近公共祖先】【块状树】bzoj3631 [JLOI2014]松鼠的新家
裸题,树状数组区间修改+单点查询.当然要稍微讨论一下链的左右端点是否修改的情况咯. #include<cstdio> #include<algorithm> #include& ...
- python3开发进阶-Django框架的Form表单系统和基本操作
阅读目录 什么是Form组件 常用字段和插件 自定义校验的方式 补充进阶 一.什么是Form组件 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标 ...
- java bean对象拷贝
Java的bean的属性复制,大家可以都看一下. 谈谈Java开发中的对象拷贝http://www.wtnull.com/view/2/e6a7a8818da742758bcd8b73d49d6be2 ...
- Step by Step 使用HTML5开发一个星际大战游戏(2)
HTML5 Canvas Game: 玩家飞船 本系列博文翻译自以下文章 http://blog.sklambert.com/html5-canvas-game-the-player-ship/ L ...
- vim 代码注释插件
参考: 1.http://www.vim.org/scripts/script.php?script_id=1218 2.http://www.dutor.net/index.php/2010/05/ ...
- 笔记:git基本操作
原文: http://www.cnblogs.com/pingwen/p/8098035.html 1. 快速入门的基本概念 相比SVN,TFS等集中式的版本管理系统,GIT分布式管理最重要的理念是本 ...
- 使用ab.exe监测100个并发/100次请求情况下同步/异步访问数据库的性能差异
ab.exe介绍 ab.exe是apache server的一个组件,用于监测并发请求,并显示监测数据 具体使用及下载地址请参考:http://www.cnblogs.com/gossip/p/439 ...
- druid 配置监控界面和开启spring支持
1.配置监控页面 <!-- JNDI方式配置数据源 --> <!-- <bean id="dataSource" class="org.sprin ...
- JavaScript 数字与字符串 比较大小
总结一下JS中经常遇到纯数字和各种各样的字符串进行比较: 纯数字之间的比较 alert(1<3);//true 数字字符串比较,会将其先转成数字 alert("1"<& ...