题意:给定需要购买物品的顺序以及总物品对应的价格,求解按顺序购买物品时最小花费。



输入:

m,n(m代表需要购买物品的清单,n代表总的物品数)

Xi...(代表对应物品的序号以及价格)



输出:

cost(最小花费,有精度要求)



思路:对于商品j,有购买和不购买两种选择,并且如果j序号正好和i匹配,说明是符合条件的,那么此时最小花费应是不买(dp[1][j])和购买(dp[0][j-1]+price[j])中最小值,注意之前dp每次循环时需要初始化第一个下标。

#include<iostream>
#include<fstream>
#include<memory.h>
#define MAX 100001
#define N 1e10
using namespace std;
int a[101];
int Index[MAX];
double price[MAX];
double dp[2][MAX];
int n,m,i,j;
void ss()
{
for(i=1; i<=n; i++)
cin>>a[i];
for(i=1; i<=m; i++)
cin>>Index[i]>>price[i];
dp[1][0]=N;
for(j=0; j<=m; j++)
dp[0][j]=0; for(i=1; i<=n; i++)
{
for(j=i; j<=m; j++)
{
if(j!=i)
dp[1][j]=dp[1][j-1];
else dp[1][j]=N;
if(a[i]==Index[j])
dp[1][j]=min(dp[1][j],dp[0][j-1]+price[j]);
}
for(j=0; j<=m; j++)
dp[0][j]=dp[1][j]; }
}
int main()
{
while(cin>>n>>m,n&&m)
{
ss();
double ans=dp[1][m];
if(ans==N)
cout<<"Impossible"<<endl;
else
printf("%.2lf\n",ans);
}
return 0;
}

ZOJ1524的更多相关文章

  1. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...

随机推荐

  1. Java JNDI Datasource HOW-TO Problem

    在开发JAVA的时候发生了点问题,解决方案记录一下,在这里http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto. ...

  2. CSS实现div居中

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. 配置linux平台下基于vim的开发环境

    一.vim的基本配置 1.配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录($HOME)下,都可以自己建立私有的 ...

  4. 移动app测试浅析

    移动App测试浅析 1. 移动App测试的现状及其挑战 移动互联网走到今天,App寡头化的趋势已经越来越明显,同时用户的口味越来越高,这对移动App开发者提出了更高的要求.几年前可能你有一个创意,随便 ...

  5. html5 本地存储

    < ![CDATA[ 1. html本地存储操作 首先引用 <script src="Scripts/jquery-2.0.0.js"></script&g ...

  6. android:ListView的局部刷新

    1.简介 对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView ...

  7. at命令

    在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一 ...

  8. Android--广播BroadcastReceiver

    前言 Android四大组件,Activity.Service.ContentProvider.BroadcastReceiver,除了BroadcastReceiver之外,其他的在之前的博客中都有 ...

  9. NEW关键字的三种用法

    最近面试中有一道题是写new关键字的几种用法,想了下写下我知道的两种用法 第一种 创建对象.调用构造函数,这就不用讲了 ClassA  A=new ClassA(); 第二种 是作为修饰符,显示隐藏继 ...

  10. CSS伪元素before和after

    今天发现很多国外的网站和框架设计都用到了before和after,之前使用的比较少,今天试了下觉得还是很有意思的~ 说明 1. :before 和 :after将在内容元素的前后插入额外的元素::be ...