题目传送门

继续dp刷题计划,看到这道题,第一眼感觉不就是显然的完全背包嘛。把背包打完要开始填充数组大小的时候成为了mengbier,发现数据极大,达到了1e18.显然这不是一道平凡的背包题目。

于是看了题解。wtf?这题是贪心???

emmm冷静分析:首先我们比较背包模型和这个模型,背包花费这一定的体积,那些价值一定会获得。而这个模型中,我们每花费一定的钱(体积),却只能满足一只奶牛。这是本题的关键。

那么就很难继续满足完全背包的性质了。

真想用背包?看到讨论里有人说如果这题写背包,那也得是多重背包,用二进制拆分物品。况且本题数据范围还这么大,1e18也拆不下。

所以还是老老实实贪心吧== 先把巧克力按价值从小到大排序,每次尽量选择小的巧克力价值。因为尽量选择了小的巧克力会给其他后面喜欢昂贵的奶牛留下希望。这就是很裸的贪心了。

感觉本题被打到普及/提高-的难度还是因为思维的惯性吧,看起来是背包就直接打了==

Code

 #include<cstdio>
#include<algorithm> using namespace std;
typedef long long ll; int n;
ll ans,pur,B;
struct Chocolate{
ll v,w;
}p[]; bool cmp(Chocolate x,Chocolate y)
{
return x.v<y.v;
} int main()
{
scanf("%d%lld",&n,&B);
for(int i=;i<=n;i++)
scanf("%lld%lld",&p[i].v,&p[i].w);
sort(p+,p++n,cmp);
for(int i=;i<=n;i++)
{
/* if(pur+p[i].v>B) break;
//printf("%lld\n",pur);
pur+=p[i].v*p[i].w;
ans+=p[i].w;
while(pur>B)
ans--,pur-=p[i].v;*/
if(B/p[i].v<p[i].w)
{
ans+=B/p[i].v;
break;
}
B-=p[i].v*p[i].w;
ans+=p[i].w;
}
printf("%lld",ans);
return ;
}

[USACO10FEB]购买巧克力Chocolate Buying 【假背包真贪心】 By cellur925的更多相关文章

  1. 洛谷——P2983 [USACO10FEB]购买巧克力Chocolate Buying

    P2983 [USACO10FEB]购买巧克力Chocolate Buying 题目描述 Bessie and the herd love chocolate so Farmer John is bu ...

  2. 洛谷 P2983 [USACO10FEB]购买巧克力Chocolate Buying 题解

    P2983 [USACO10FEB]购买巧克力Chocolate Buying 题目描述 Bessie and the herd love chocolate so Farmer John is bu ...

  3. 洛谷 P2983 [USACO10FEB]购买巧克力Chocolate Buying

    购买巧克力Chocolate Buying 乍一看以为是背包,然后交了一个感觉没错的背包上去. #include <iostream> #include <cstdio> #i ...

  4. 洛谷P2983 [USACO10FEB]购买巧克力Chocolate Buying

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  5. P2983 [USACO10FEB]购买巧克力Chocolate Buying

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  6. 【洛谷】P2983 [USACO10FEB]购买巧克力Chocolate Buying(贪心)

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  7. 洛谷—— P2983 [USACO10FEB]购买巧克力Chocolate Buying

    https://www.luogu.org/problem/show?pid=2983 题目描述 Bessie and the herd love chocolate so Farmer John i ...

  8. [USACO10FEB]购买巧克力Chocolate Buying

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  9. [luoguP2983] [USACO10FEB]购买巧克力Chocolate Buying(贪心)

    传送门 按价格排序后贪心 ——代码 #include <cstdio> #include <iostream> #include <algorithm> int n ...

随机推荐

  1. php闭包实例

    php闭包函数,一个典型的实例 function getMoney() { $rmb = 1; $dollar = 6; $func = function($dollar) use (&$rm ...

  2. 我对hibernate和mybatis框架的比較

    系统在选择操作数据库的框架上面,究竟是选择hibernate,还是mybatis. 首先说下两者的原理,假设你要关联几张表做查询,查出20条记录: 1.假设是mybatis SELECT *   FR ...

  3. Spring Boot与Micronaut性能比较

    文章转载出处:微信公众号——锅外的大佬 链接:https://mp.weixin.qq.com/s/MdBByJ0ju-rROKg7jsWygA 今天我们将比较两个在JVM上构建微服务的框架:Spri ...

  4. V-Play 文档翻译 Page

    V-Play 文档翻译 Page 翻译:qyvlik 应用的一个页面. VPlayApps 1.0 Inherits: MouseArea Inherited By: ListPage 属性 Item ...

  5. Java 复杂excel报表导出

    MyExcel,是一个可直接使用Html文件,或者使用内置的Freemarker.Groovy.Beetl等模板引擎Excel构建器生成的Html文件,以Html文件中的Table作为Excel模板来 ...

  6. BootStrap-DualListBox怎样改造成为双树

    BootStrap-DualListBox能够实现将所选择的列表项显示到右边,未选的列表项显示到左边. 但是左右两边的下拉框中都是单级列表.如果要实现将两边都是树(缩进树),选择某个节点时,其子节点也 ...

  7. Statelessness Provide credentials with the request. Each request MUST stand alone and should not be affected from previous conversation happened from same client in past.

    The server never relies on information from previous requests. Statelessness As per the REST (REpres ...

  8. h5 getUserMedia error PermissionDeniedError

    HTML5 在使用非 localhost 地址访问时打开摄像头失败 .报getUserMedia error PermissionDeniedError,火狐下是可以正常调取的. 需要https: 火 ...

  9. POJ 1861 Network (Kruskal算法+输出的最小生成树里最长的边==最后加入生成树的边权 *【模板】)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14021   Accepted: 5484   Specia ...

  10. android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

    在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄很清楚. 现在把整个总结一下. 其实只要把下面这张图看明白就没问题了. 涉及到的方法一共有下面几个: view获取自身 ...