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



输入:

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. Eclipse中使用Maven创建Servlet3.0 Web 项目

    摘要 Apache Maven是一个优秀的项目构建和管理工具,许多开源项目都使用Maven进行构建.由于最近工作中要用到Maven,于是这里记录下在Eclipse中使用Maven插件创建一个基于Ser ...

  2. javascript在一个字符串中每隔多少字符插入某个字符串

    function insertStr(str,tar,n,m){ var x='' var str=str.split('') if(str.length==0) return for(var i=n ...

  3. CSU 1337(费马大定理)

      CSU 1337 Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu   Descrip ...

  4. PCB模擬設計接地的指導原則

    接地無疑是系統設計中最為棘手的問題之一.盡管它的概念相對比較簡單,實施起來卻很復雜,遺憾的是,它沒有一個簡明扼要可以用詳細步驟描述的方法來保證取得良好效果,但如果在某些細節上處理不當,可能會導致令人頭 ...

  5. POJ 2774 最长公共子串

    一定好好学SAM...模板在此: #include<iostream> #include<cstdio> #include<cmath> #include<a ...

  6. appendGrid的使用

    新的项目中需要使用类似appendGrid的控件,当然开始时是不知道这个控件的,开始是想做成如下这样 这其实是Bugfree的搜索栏,并且我也说不好我要做的这个东西应该叫什么,大体可以说是动态的添加或 ...

  7. HDU Train Problem I 1022 栈模拟

    题目大意: 给你一个n 代表有n列 火车,  第一个给你的一个字符串 代表即将进入到轨道上火车的编号顺序, 第二个字符串代表的是 火车出来之后到顺序, 分析一下就知道这,这个问题就是栈, 先进后出吗, ...

  8. python3、selenium、autoit3,通过flash控件上传文件

    autoit.au3 #include <Constants.au3> WinWait(); //暂停执行脚本,直到上传对话框出现 WinActive("打开") Wi ...

  9. c宏的MAX函数

    今天从香山上面回来累的跟傻逼一样,回来问了一下胡总的阿里面试的问题.然后其中有一个是宏写max函数.胡总说不好写,然后我就去洗澡了. 洗澡的时候感觉不对啊,回来写了一个: #define MAX(a, ...

  10. mongodbOperator

    mongodb创建数据库表语句 db.createCollection("CollectionName or tableName"); db.createCollection(&q ...