贪心好题
……….
思路:
从大到小凑C 如果不够 再从小到大补满(超过)C

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,c,ans,flag,vis[21];
struct Money{int amount,value;}money[100];
bool cmp(Money a,Money b){return a.value<b.value;}
int main(){scanf("%d%d",&n,&c);for(int i=1;i<=n;i++)scanf("%d%d",&money[i].value,&money[i].amount);sort(money+1,money+1+n,cmp);while(1){memset(vis,0,sizeof(vis));int sum=c;for(int i=n;i;i--)if(sum>0&&money[i].amount){int temp=min(money[i].amount,sum/money[i].value);if(temp>0)sum-=money[i].value*temp,vis[i]+=temp;}for(int i=1;i<=n;i++)if(sum>0&&money[i].amount&&money[i].value>=sum){sum-=money[i].value;vis[i]++;break;}if(sum>0)break;for(int i=1;i<=n;i++)money[i].amount-=vis[i];ans++;}printf("%d\n",ans);
}


卡时过得…
然后我发现 诶呦 一次可以同时消很多 然后就0msAC了,,,,

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,c,ans,flag,vis[21];
struct Money{int amount,value;}money[100];
bool cmp(Money a,Money b){return a.value<b.value;}
int main(){scanf("%d%d",&n,&c);for(int i=1;i<=n;i++)scanf("%d%d",&money[i].value,&money[i].amount);sort(money+1,money+1+n,cmp);while(1){memset(vis,0,sizeof(vis));int sum=c,temp=0x3ffffff;for(int i=n;i;i--)if(sum>0&&money[i].amount){int temp=min(money[i].amount,sum/money[i].value);if(temp>0)sum-=money[i].value*temp,vis[i]+=temp;}for(int i=1;i<=n;i++)if(sum>0&&money[i].amount&&money[i].value>=sum){sum-=money[i].value;vis[i]++;break;}if(sum>0)break;for(int i=1;i<=n;i++){if(!vis[i])continue;temp=min(temp,money[i].amount/vis[i]);}for(int i=1;i<=n;i++){money[i].amount-=vis[i]*temp;}ans+=temp;}printf("%d\n",ans);
}

转载于:https://www.cnblogs.com/SiriusRen/p/6532221.html

POJ 3040 贪心相关推荐

  1. POJ 3040 Allowance【贪心】

    POJ 3040 题意: 给奶牛发工资,每周至少 C 元.约翰手头上有面值V_i的硬币B_i个,这些硬币的最小公约数为硬币的最小面值.求最多能发几周? 分析: 贪心策略是使多发的面额最小(最优解).分 ...

  2. poj 3040 Allowance (贪心

    作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴.FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币.5美分硬币.10美 ...

  3. POJ 3040 Allowance——经典贪心算法题目

    题目链接 题目大意: 约翰要给他的牛贝西发工资,每天不得低于C元,约翰有n种面值的钱币,第i种的面值为v_i,数量有b_i.问这些钱最多给贝西发多少天的工资.注意,每种面值的金钱都是下一种的面值的倍数 ...

  4. POJ 2453 贪心应用

    文章目录 1. 题目 1.1 题目链接 1.2 题目大意 1.3 解题思路 2. Accepted 代码 1. 题目 1.1 题目链接 http://poj.org/problem?id=2453 1 ...

  5. poj 3040 Allowance

    大致题意:有1到N种硬币,第i种硬币的数量为Bi.价值Vi:Farmer John每周要给他的奶牛发至少价值为C的补贴:问利用前面的N种硬币,最多可以给他的奶牛发多少周的补贴?  这是道贪心的题应该不 ...

  6. poj 1716(贪心)

    题意:给出数轴上的n个区间,每个区间都是连续的int区间.现在要在数轴上任意取一堆元素,构成一个元素集合V,要求每个区间和元素集合V的交集至少有两个不同的元素求集合V最小的元素个数. 解题思路: 考虑 ...

  7. POJ - 1456 贪心 堆常用操作 注意细节

    题意:给定n个商品的deadline和profit,求每天卖一件的情况下的最大获利 显然是一道贪心 按deadline从小到大排序好,动态维护小根(profit)堆的大小<=当前deadline ...

  8. POJ 2718 贪心

    做了一上午的2718,差点爆炸 做法一: 用到了STL中的next_permutation产生所有的全排列 要使生成的两个数差最小,两个数的位数差肯定小于等于1,产生一个排列之后在中间分开就可以 什么 ...

  9. 田忌赛马 poj 2287 (贪心,动态规划,贪心+动态规划)

    题目链接 贪心 :1:如果田忌的最快马快于齐王的最快马,比一场 2: 如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比赛一场 3: 如果田忌的最快马和齐王的最快马一样快,则比较田忌的 ...

最新文章

  1. html 导航右侧弹出层,CSS导航栏及弹窗示例代码
  2. 蓝书4.1-4.4 树状数组、RMQ问题、线段树、倍增求LCA
  3. 只有汇编能告诉你为什么
  4. w3cc离线版手册_web前端入门必备手册,离线w3school参考手册
  5. 我的第二个开源库SuperTextView——中文文档
  6. matlab smooth 函数,matlab中smooth函数平滑处理数据实例
  7. UVA10570 Meeting with Aliens【数学计算】
  8. 基于Keras搭建mnist数据集训练识别的Pipeline
  9. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_17_注解_解析注解...
  10. A1086. Huffuman树
  11. Perl的模块判断及安装
  12. QQ群会员彩色昵称代码
  13. Excel函数实战技巧精粹(三)常用函数之INDEX与MATCH组合详解
  14. wpf listview 大数据界面刷新
  15. 虎年用Python画一只老虎?
  16. Ubuntu 关闭 onboard (屏幕键盘应用)开机自启
  17. vba宏是什么,如何操作
  18. 使用JS判断日期的有效性
  19. 当神话故事邂逅 NFT数字藏品:知名艺术家张宏携《西游》拉开元宇宙序幕
  20. android 背景图缩放,android背景图按比例缩放方法

热门文章

  1. VS.net 2005 试用(1)
  2. saltstack state模块-状态管理
  3. vCenter连接esxi 5.0报“Datacenter.QueryConnectionInfo” 失败
  4. 本地如何使用phpstudy环境搭建多站点
  5. python测试rabbitmq的消息收发
  6. 如何在多Node版本的情况下公用一个npm
  7. 一次性搞定Session
  8. LeetCode: Flatten Binary Tree to Linked List
  9. 模拟storage copy 功能失败的记录
  10. vim 命令模式与输入模式切换