首页 技术 正文
技术 2022年11月8日
0 收藏 759 点赞 1,893 浏览 3336 个字

Building Shops 
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) 
Total Submission(s): 701 Accepted Submission(s): 265

Problem Description 
HDU’s n classrooms are on a line ,which can be considered as a number line. Each classroom has a coordinate. Now Little Q wants to build several candy shops in these n classrooms.

The total cost consists of two parts. Building a candy shop at classroom i would have some cost ci. For every classroom P without any candy shop, then the distance between P and the rightmost classroom with a candy shop on P’s left side would be included in the cost too. Obviously, if there is a classroom without any candy shop, there must be a candy shop on its left side.

Now Little Q wants to know how to build the candy shops with the minimal cost. Please write a program to help him.

Input 
The input contains several test cases, no more than 10 test cases. 
In each test case, the first line contains an integer n(1≤n≤3000), denoting the number of the classrooms. 
In the following n lines, each line contains two integers xi,ci(−109≤xi,ci≤109), denoting the coordinate of the i-th classroom and the cost of building a candy shop in it. 
There are no two classrooms having same coordinate.

Output 
For each test case, print a single line containing an integer, denoting the minimal cost.

Sample Input 

1 2 
2 3 
3 4 

1 7 
3 1 
5 10 
6 1

Sample Output 

11

Source 
2017中国大学生程序设计竞赛 – 女生专场

题意: 
有n个教室,现在想在这n个教室中建一些超市,问你最少费用为多少? 
费用分为两种: 
1:在第i个教室建超市,费用因为ci 
2:没有建超市的教室的费用为它和它左边最接近的超市的坐标之间的距离

#include <iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<deque>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
struct node
{
ll x;
ll c;
}a[];
bool cmp(node x,node y)
{
return x.x<y.x;
}
ll dp[];
//dp[i]表示只考虑前i个教室 的最优解
ll dp2[];
//dp2[i]表示 第i个固定条件下,前i个的最优解
ll s[];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=;i<=n;i++)
{
scanf("%lld %lld",&a[i].x,&a[i].c); }
sort(a+,a+n+,cmp);
memset(dp,inf,sizeof(dp));
memset(dp2,inf,sizeof(dp2));
memset(s,,sizeof(s));
dp[]=;
dp[]=dp2[]=a[].c;
int pp=a[].x;
for(int i=;i<=n;i++)
{
a[i].x-=pp;
s[i]=a[i].x+s[i-];
}
for(int i=;i<=n;i++)
{
dp2[i]=dp[i-]+a[i].c;
//第i个固定条件下,前i个的最优解
for(int j=;j<=i;j++)
{
dp[i]=min(dp[i],dp2[j]+s[i]-s[j]-(i-j)*a[j].x);
}
}
printf("%lld\n",dp[n]);
}
return ;
}

Building Shops

Time
Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K
(Java/Others)
Total Submission(s): 2728    Accepted Submission(s):
936

Problem DescriptionHDU’s n2017中国大学生程序设计竞赛 – 女生专场(dp)

classrooms are on a line ,which can be considered as a number line. Each
classroom has a coordinate. Now Little Q wants to build several candy shops in
these n2017中国大学生程序设计竞赛 – 女生专场(dp)

classrooms.

The total cost consists of two parts. Building a candy shop
at classroom i2017中国大学生程序设计竞赛 – 女生专场(dp)

would have some cost c2017中国大学生程序设计竞赛 – 女生专场(dp)i2017中国大学生程序设计竞赛 – 女生专场(dp)2017中国大学生程序设计竞赛 – 女生专场(dp)

. For every classroom P2017中国大学生程序设计竞赛 – 女生专场(dp)

without any candy shop, then the distance between P2017中国大学生程序设计竞赛 – 女生专场(dp)

and the rightmost classroom with a candy shop on P2017中国大学生程序设计竞赛 – 女生专场(dp)

‘s left side would be included in the cost too. Obviously, if there is a
classroom without any candy shop, there must be a candy shop on its left
side.

Now Little Q wants to know how to build the candy shops with the
minimal cost. Please write a program to help him.

 InputThe input contains several test cases, no more than 10
test cases.
In each test case, the first line contains an integer n(1≤n≤3000)2017中国大学生程序设计竞赛 – 女生专场(dp)

, denoting the number of the classrooms.
In the following n2017中国大学生程序设计竞赛 – 女生专场(dp)

lines, each line contains two integers x2017中国大学生程序设计竞赛 – 女生专场(dp)i2017中国大学生程序设计竞赛 – 女生专场(dp),c2017中国大学生程序设计竞赛 – 女生专场(dp)i2017中国大学生程序设计竞赛 – 女生专场(dp)(−102017中国大学生程序设计竞赛 – 女生专场(dp)92017中国大学生程序设计竞赛 – 女生专场(dp)≤x2017中国大学生程序设计竞赛 – 女生专场(dp)i2017中国大学生程序设计竞赛 – 女生专场(dp),c2017中国大学生程序设计竞赛 – 女生专场(dp)i2017中国大学生程序设计竞赛 – 女生专场(dp)≤102017中国大学生程序设计竞赛 – 女生专场(dp)92017中国大学生程序设计竞赛 – 女生专场(dp))2017中国大学生程序设计竞赛 – 女生专场(dp)

, denoting the coordinate of the i2017中国大学生程序设计竞赛 – 女生专场(dp)

-th classroom and the cost of building a candy shop in it.
There are no two
classrooms having same coordinate. OutputFor each test case, print a single line containing an
integer, denoting the minimal cost. Sample Input3
1 2
2 3
3 4
4
1 7
3 1
5 10
6 1 Sample Output5
11 Source2017中国大学生程序设计竞赛
– 女生专场
 Recommendjiangzijing2015   |   We have carefully selected
several similar problems for you:  6286 6285 6284 6283 6282 

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