[Codeforces 10E] Greedy Change
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相关推荐
- 线段树 ---- 线段树上区间二分 或者单点二分 codeforces C. Greedy Shopping
题目大意 题目大意: 给你一个非增的区间现在你有两次操作 1 x y : 把[a1,...ax][a_1,...a_x][a1,...ax]里面的数对yyy取maxmaxmax 2 x y : 你 ...
- CodeForces - 1440E Greedy Shopping(线段树)
题目链接:点击查看 题目大意:给出一个非严格递减的子序列,需要完成 m 次操作,分为下列两种类型: 1 x y:将区间 [ 1 , x ] 中的数进行 a[ i ] = max( a[ i ] , y ...
- codeforces 解题报告 978B. File Name strings greedy
http://codeforces.com/contest/978/problem/B 解题思路: 1.不能出现"xxx"这样的串,贪心删掉多余的x就好了 2.遍历一遍字符串,遇到 ...
- Codeforces Round #476 (Div. 2) C. Greedy Arkady
点击打开题目链接 知道了当第一个人比那 k-1 个人多分一次x就是最优策略 和 对分糖果的次数进行枚举就差不多了 当分i次的时候, 有 (i-1)*x(k-1)+x+i<=n; x=n/((i- ...
- 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个人,一次 ...
- codeforces+contest985C. Liebig's Barrels+greedy
//类似指针的想法 //偏移 C. Liebig's Barrels time limit per test 2 seconds memory limit per test 256 megabytes ...
- 【Codeforces】Round #375 (Div. 2)
Position:http://codeforces.com/contest/723 我的情况 啊哈哈,这次raiting肯定要涨,接受过上次的教训,先用小号送肉,大号都是一发切,重回蓝咯 结果... ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- Codeforces Round #300 A. Cutting Banner 水题
A. Cutting Banner Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pro ...
最新文章
- [深入学习C#]C#实现多线程的方式:使用Parallel类
- 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解
- SAP R3 Create Client: T-code:SCC4
- Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转
- SAP CRM pricing read的实现逻辑
- DevExpress.XtraGrid.view.gridview 属性说明
- 【C语言】数列有序(一维数组处理)
- 客户和顾客是一个意思吗_“啤酒度数”和“啤酒酒精度”一个意思吗?
- OpenShift 4 - Istio-Tutorial (1) 教程说明和准备环境
- ssh登录到esxi机器中后开关虚拟机
- 统计有几个连通分量--hdu 1213 并查集
- Linux系统编程 -- 多线程间同步和互斥
- 二维码获取WIFI配置
- Android开发学习心得 (一) 生如夏花之绚烂,死如秋叶之静美 -- App的生死轮回
- 编写简单的内核模块——Linux操作系统原理与应用(陈莉君第2版13页)
- react结合rust编写wasm图像处理
- “大神”===“一万个小时的敲代码时间,100多万行的代码”
- pma连接,报错10061
- 美团--测试创建团购订单
- python自动排版公众号_那些排版好看的公众号,都在偷偷使用这些神器
热门文章
- Git 技术篇 - 同步代码到github失败,提示non-fast-forward、error: failed to push some refs to问题解决方法,git pull的用法
- coremark 官网对各种单片机的测评评分
- STM32的USB相关资料(转载)
- EEPROM存储器--AT24CXX
- ubuntu黑屏解决办法
- plot、bar、stem、area函数绘图
- Pandas.DataFrame按行求百分数(比例数)
- java如何做测试数据库_如何模拟用于测试的数据库(Java)?
- 【电商日志项目之七】项目调优
- 2017年第八届蓝桥杯省赛试题(JavaA组)