Brief Introduction:

给你一些种类的硬币,用最少的硬币数表示X

求最小的使贪心算法错误的X

Algorithm:

一道论文题,《A Polynomial-time Algorithm for the Change-making Problem》

证明先挖个坑,以后再填

感性猜想,我们可以构建出这样一个算法:

对于一种币值A,我们找出一个略大于A仅用币值不小于B且小于A的货币表示的值X,使得贪心算法在使用A后要用更多零碎的货币

这样,只要枚举A、B,找出最小的这样的值即可。存在性问题论文中也有证明。

Code:

#include <bits/stdc++.h>using namespace std;int n,dat[500],res=-1;int main()
{cin >> n;for(int i=1;i<=n;i++) cin >> dat[i];for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++){int cnt1=1,cnt2=0,W=dat[i]-1,t;for(int k=i+1;k<=j;k++) //非贪心做法cnt1+=(W/dat[k]),W%=dat[k];t=W=dat[i]-1-W+dat[j];for(int k=1;k<=n;k++) //贪心做法cnt2+=(W/dat[k]),W%=dat[k];if(cnt1<cnt2 && (res==-1 || res>t)) res=t;}cout << res;return 0;
}

Review:

多看结论题

转载于:https://www.cnblogs.com/newera/p/9019000.html

[Codeforces 10E] Greedy Change相关推荐

  1. 线段树 ---- 线段树上区间二分 或者单点二分 codeforces C. Greedy Shopping

    题目大意 题目大意: 给你一个非增的区间现在你有两次操作 1 x y : 把[a1,...ax][a_1,...a_x][a1​,...ax​]里面的数对yyy取maxmaxmax 2 x y : 你 ...

  2. CodeForces - 1440E Greedy Shopping(线段树)

    题目链接:点击查看 题目大意:给出一个非严格递减的子序列,需要完成 m 次操作,分为下列两种类型: 1 x y:将区间 [ 1 , x ] 中的数进行 a[ i ] = max( a[ i ] , y ...

  3. codeforces 解题报告 978B. File Name strings greedy

    http://codeforces.com/contest/978/problem/B 解题思路: 1.不能出现"xxx"这样的串,贪心删掉多余的x就好了 2.遍历一遍字符串,遇到 ...

  4. Codeforces Round #476 (Div. 2) C. Greedy Arkady

    点击打开题目链接 知道了当第一个人比那 k-1 个人多分一次x就是最优策略 和 对分糖果的次数进行枚举就差不多了 当分i次的时候, 有 (i-1)*x(k-1)+x+i<=n; x=n/((i- ...

  5. Codeforces Round #476 (Div. 2) C - Greedy Arkady

    Examples 1: input: 20 4 5 2 output: 8Examples 2: input: 30 9 4 1 output: 4 题意: n,k,m,d分别表示n颗糖,k个人,一次 ...

  6. codeforces+contest985C. Liebig's Barrels+greedy

    //类似指针的想法 //偏移 C. Liebig's Barrels time limit per test 2 seconds memory limit per test 256 megabytes ...

  7. 【Codeforces】Round #375 (Div. 2)

    Position:http://codeforces.com/contest/723 我的情况 啊哈哈,这次raiting肯定要涨,接受过上次的教训,先用小号送肉,大号都是一发切,重回蓝咯 结果... ...

  8. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  9. Codeforces Round #300 A. Cutting Banner 水题

    A. Cutting Banner Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pro ...

最新文章

  1. [深入学习C#]C#实现多线程的方式:使用Parallel类
  2. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解
  3. SAP R3 Create Client: T-code:SCC4
  4. Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转
  5. SAP CRM pricing read的实现逻辑
  6. DevExpress.XtraGrid.view.gridview 属性说明
  7. 【C语言】数列有序(一维数组处理)
  8. 客户和顾客是一个意思吗_“啤酒度数”和“啤酒酒精度”一个意思吗?
  9. OpenShift 4 - Istio-Tutorial (1) 教程说明和准备环境
  10. ssh登录到esxi机器中后开关虚拟机
  11. 统计有几个连通分量--hdu 1213 并查集
  12. Linux系统编程 -- 多线程间同步和互斥
  13. 二维码获取WIFI配置
  14. Android开发学习心得 (一) 生如夏花之绚烂,死如秋叶之静美 -- App的生死轮回
  15. 编写简单的内核模块——Linux操作系统原理与应用(陈莉君第2版13页)
  16. react结合rust编写wasm图像处理
  17. “大神”===“一万个小时的敲代码时间,100多万行的代码”
  18. pma连接,报错10061
  19. 美团--测试创建团购订单
  20. python自动排版公众号_那些排版好看的公众号,都在偷偷使用这些神器

热门文章

  1. Git 技术篇 - 同步代码到github失败,提示non-fast-forward、error: failed to push some refs to问题解决方法,git pull的用法
  2. coremark 官网对各种单片机的测评评分
  3. STM32的USB相关资料(转载)
  4. EEPROM存储器--AT24CXX
  5. ubuntu黑屏解决办法
  6. plot、bar、stem、area函数绘图
  7. Pandas.DataFrame按行求百分数(比例数)
  8. java如何做测试数据库_如何模拟用于测试的数据库(Java)?
  9. 【电商日志项目之七】项目调优
  10. 2017年第八届蓝桥杯省赛试题(JavaA组)