首页 技术 正文
技术 2022年11月15日
0 收藏 475 点赞 4,772 浏览 1092 个字

题意:

在一个长度为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;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,120
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,592
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,437
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,208
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,844
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,929