原题:http://hihocoder.com/contest/hiho139/problem/1

看了下,通过率还挺高的。主要是数据量不大100,套三个循环纯暴力理论上应该都可以过的,不过时间复杂度比较高。

不过第一反应是动态规划。

价格小数部分只有0或者0.5,预处理下乘以2,转成整数类型会好算点。额外+0.5再转成int的是题主担心浮点数转换有精度损失。

dp[i][j][k] 可以表示前i个物品中,选了k个物品,和的个位数为j,时候的渴望度。初始时dp[x][0][0]为0,其他为不可能情况,可以初始为一个负数。当dp[i-1][j][k]为可能情况时候,状态转移方程为dp[i][(j+a[i])%10][k+1] = max(dp[i][(j+a[i])%10][k+1] , dp[i][j][k]+b[i])。这时的空间复杂度还比较高,考虑到当前的商品选不选之与上一个状态有关,跟之前的状态无直接关系,可以用滚动数组,减少一个维度。当用滚动数组的时候,要考虑遍历顺序,题主前几次提交都没过,后面发现是遍历顺序错了。遍历状态要从k往下递减,避免选第i个物品的结果之间相互干扰,确保当前使用的值是上一个选择第i-1个物品状态的值。

代码如下

#include<bits/stdc++.h>
using namespace std;
const int maxn = 106;
int a[maxn], b[maxn];
int dp[11][4];
inline void up(int &a, int b){if(a<b) a=b;}
int main(){ios_base::sync_with_stdio(false);int t;cin>>t;while(t--){int n;cin>>n;double c;for(int i=0; i<n; i++){cin>>c>>b[i];a[i] = (int)(c*2 + 0.5);}memset(dp, 0xff, sizeof dp);dp[0][0]=0;for(int i=0; i<n; i++){for(int k=2; k>=0; k--){    //k从上往下遍历,避免这次i的结果间相互干扰,保证i对后面每个转移用到的都是i-1的结果for(int j=0; j<10; j++){if(dp[j][k]>=0){int rem = (j+a[i])%10;up(dp[rem][k+1], dp[j][k]+b[i]);}}}}int ans=0;for(int i=0; i<=3; i++){up(ans, dp[0][i]);}cout << ans << "\n";}return 0;
}

hiho一下 第139周 买零食 动态规划相关推荐

  1. hiho一下 第139周 买零食

    买零食 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著称.第一次去 ...

  2. hiho一下 第139周 《买零食》 多维01背包

    题目链接:http://hihocoder.com/contest/hiho139/problem/1 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐 ...

  3. hihoCoder--139周 买零食

    题目1 : 买零食 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著 ...

  4. hiho #1272 买零食 [Offer收割]编程练习赛2

    #1272 : 买零食 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰 ...

  5. 关于小学和哥哥买零食的琐碎回忆

    人越长大,总会去回忆小时候的事情,我就是这样一个喜欢不断后悔.遗憾.回忆.怀念的人 对于零食,我和哥哥可谓是爱之入骨.也许是因为爸爸也是个吃货,所以我们几个小孩都特别喜欢吃零食,现在也不例外. 如今能 ...

  6. hihoCoder 买零食

    时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著称.第一次去一教小卖 ...

  7. hihocoder买零食

    买零食 Time Limit:5000MS     Memory Limit:262144KB     64bit IO Format:%lld & %llu Submit Status Pr ...

  8. [hihoCoder] 买零食

    http://hihocoder.com/contest/hiho139/problem/1?sid=992251 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一 ...

  9. 买零食 HihoCoder - 1272

    小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著称.第一次去一教小卖部买零食的时候,小Ho由于不懂事买了好一大堆东西,被小卖部姐姐给了一个&qu ...

最新文章

  1. mysql select语法_MySQL SELECT语法(一)SELECT语法详解
  2. [Node.js] 2、利用node-git-server快速搭建git服务器
  3. HDOJ 4883 TIANKENG’s restaurant
  4. 架构师养成之道-02-jvm原理
  5. Seven Segment Display
  6. Android插件化开发基础之Java反射机制研究
  7. ubuntu12.04samba服务器配置
  8. 想用Python爬小姐姐图片?那你得先搞定分布式进程
  9. jQuery左右循环滚动图片特效
  10. Linux 2.6中基于Sysenter的系统调用机制
  11. 微信成最频繁网络诈骗犯罪工具;库克再谈乔布斯;PyCharm 2019.2.5 发布| 极客头条...
  12. Java 爬取行政区划代码
  13. Type C DP简介
  14. 互联网公司指南 上海篇: 字节跳动
  15. [Python知识图谱] 一.哈工大pyltp安装及中文分句、中文分词、导入词典基本用法
  16. 2019年培养工作室主力计划——第1次任务
  17. 织梦dedecms TAG标签调用汇总(史上最全)
  18. 条件运算符(三目运算符)
  19. ThreadX学习(4)——内存管理
  20. i7 7700hq安装Linux,翻出了自己吃灰的IfunkS i7-7700HQ笔记本 装了个ubuntu跑个分

热门文章

  1. 回答你心中的疑问,进行商城网站建设需要多少钱?
  2. QT获取调色板rgb色值
  3. 通过Uip WebClient 实现中应用DNS解析
  4. 机器视觉硬件选型——光源选型
  5. Aura Component Cope Snippets
  6. Netty解决TCP粘包/拆包导致的半包读写问题
  7. 【号外】疑似阿尔法狗回归,Master打遍世界顶尖棋手没输过
  8. 纯CSS实现枫叶下落
  9. 光通信的最新技术趋势
  10. 国科大学习资料--最优化计算方法(王晓)--期末考试试卷2