[多校2015.02.1004 dp] hdu 5303 Delicious Apples
题意:
在一个长度为L的环上有N棵苹果树。你的篮子容量是K个苹果。
每棵苹果树上都有a[i]个苹果。
问你从0点出发最少要走多少距离能拿完所有的苹果。
思路:
我们考虑dp,dp[0][i]代表顺时针取i个苹果的最短距离。
dp[1][i]代表逆时针取i个苹果的最短距离。
那么设苹果的总是为sum
那么ans=dp[0][i]+dp[sum-i] (0<=i<=sum)
代码:
#include"stdio.h"
#include"algorithm"
#include"string.h"
#include"iostream"
#include"queue"
#include"map"
#include"vector"
#include"string"
#include"cmath"
using namespace std;
#define ll __int64
ll l;
struct node
{
int x,s;
} ap[123456];
ll dp[2][123456];
int cmp(node a,node b)
{
return a.x<b.x;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k;
scanf("%I64d%d%d",&l,&n,&k);
for(int i=0; i<n; i++) scanf("%d%d",&ap[i].x,&ap[i].s);
memset(dp,0,sizeof(dp));
sort(ap,ap+n,cmp);
int tep=1,sum=0; //tep代表取了几个苹果 由于一定是递增的
for(int i=0; i<n; i++)
{
for(int j=0; j<ap[i].s; j++)
{
if(tep-k<0) dp[0][tep]=dp[0][0]+min(l,2LL*ap[i].x);
else dp[0][tep]=dp[0][tep-k]+min(l,2LL*ap[i].x);
tep++;
}
} tep=1;
for(int i=n-1; i>=0; i--)
{
sum+=ap[i].s;
for(int j=0; j<ap[i].s; j++)
{
if(tep-k<0) dp[1][tep]=dp[1][0]+min(l,2LL*(l-ap[i].x));
else dp[1][tep]=dp[1][tep-k]+min(l,2LL*(l-ap[i].x));
tep++;
}
} ll ans=999999999999999999LL;
for(int i=0;i<=sum;i++) ans=min(ans,dp[0][i]+dp[1][sum-i]);
printf("%I64d\n",ans);
}
return 0;
}
[多校2015.02.1004 dp] hdu 5303 Delicious Apples的更多相关文章
- 2015 Multi-University Training Contest 2 hdu 5303 Delicious Apples
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5303 Delicious Apples (贪心 枚举 好题)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5303 Delicious Apples(思维题)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 Problem Description There are n apple trees plan ...
- 多校第二场 1004 hdu 5303 Delicious Apples(背包+贪心)
题目链接: 点击打开链接 题目大意: 在一个周长为L的环上.给出n棵苹果树.苹果树的位置是xi,苹果树是ai,苹果商店在0位置,人的篮子最大容量为k,问最少做多远的距离可以把苹果都运到店里 题目分析: ...
- HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5303 Delicious Apples 美味苹果 (DP)
题意: 给一个长为L的环,起点在12点钟位置,其他位置上有一些苹果,每次带着一个能装k个苹果的篮子从起点出发去摘苹果,要将全部苹果运到起点需要走多少米? 思路: 无论哪处地方,只要苹果数超过k个,那么 ...
- hdu 5303 Delicious Apples
这道题贪心 背包 假设在走半圆之内能够装满,那么一定优于绕一圈回到起点.所以我们从中点将这个分开,那么对于每一个区间由于苹果数非常少,所以能够利用pos[x]数组记录每一个苹果所在的苹果树位置,然后将 ...
- 2018多校第九场1004(HDU 6415) DP
本以为是个找规律的题一直没找出来... 题目:给你一个n*m的矩阵和1-n*m个数,问有多少种情况满足纳什均衡的点只有一个.纳什均衡点是指这个元素在所在行和所在列都是最大的. 思路:吉老师直播的思路: ...
随机推荐
- Week Four
2018.12.18 1.[USACO Platinum C] 2.[Gym 102028H] 3.[BZOJ 2750] 4.[BZOJ 3238] 5.[BZOJ 4310] 6.[BZOJ 38 ...
- python开发_bisect
现在有如下的需求: ''' 实现这样的一个功能: 对一个班级的学生的成绩做出一些评定,评定规则是: one: [0-60) -- F two: [60-70) -- D three: [70-80) ...
- SCOJ 4484 The Graver Robbers' Chronicles 后缀自动机
4484: The Graver Robbers' Chronicles 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4484 Descript ...
- Linux下ip route、ip rule、iptables的关系(转)
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- php curl 抓取
<?php set_time_limit(0); function curl_multi($urls) { if (!is_array($urls) or count($urls) == 0) ...
- Install Linux Kernel 4.10 In CentOS and Ubuntu
https://www.ostechnix.com/install-linux-kernel-4-10-centos-ubuntu/
- 用css让一个容器水平垂直居中
阅读目录 方法一:position加margin 方法二: diaplay:table-cell 方法三:position加 transform 方法四:flex;align-items: cente ...
- SharePoint 2013 本地创建解决方案
在之前的博客<SharePoint 2013本地开发解决方案以及远程调试>中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表, ...
- Net线程足迹 传递参数至线程
方法一:应用ParameterizedThreadStart这个委托来传递输入参数,这种方法适用于传递单个参数的情况. using System; using System.Collections.G ...
- BeagleBone折腾记(一):连接你的狗板
BeagleBone折腾记一连接你的狗板 准备 了解BeagleBone BeagleBone社区 所需软硬件 USB连接 TTL连接 结语 准备 了解BeagleBone BeagleBone可能一 ...