[CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P2667 这个题练一练综合思想还是不错的...(然而蒟蒻不会啊) 做法 肯定是在能完成某些订单的情况下使自己生产力越高越好是吧(一个大致的贪心方向) 但是我们不知道自己到底应该怎么去决定提高生产力时间 那么换个角度,不从时间来看,从订单上来看 贪心 我们假设一定要完成订单\(1-n\) 那么应该如何贪心…
2667: [cqoi2012]模拟工厂 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 184[Submit][Status][Discuss] Description 有一个称为“模拟工厂”的游戏是这样的:在时刻0,工厂的生产力等于1.在每个时刻,你可以提高生产力或者生产商品.如果选择提高生产力,在下一个时刻时工厂的生产力加1:如果选择生产商品,则下一个时刻你所拥有的商品数量增加p,其中p是本时刻工厂的生产力. 有n个订…
[BZOJ2667][cqoi2012]模拟工厂 试题描述 有一个称为“模拟工厂”的游戏是这样的:在时刻0,工厂的生产力等于1.在每个时刻,你可以提高生产力或者生产商品.如果选择提高生产力,在下一个时刻时工厂的生产力加1:如果选择生产商品,则下一个时刻你所拥有的商品数量增加p,其中p是本时刻工厂的生产力. 有n个订单,可以选择接受或者不接受.第i个订单(ti, gi, mi)要求在时刻ti给买家提供gi个商品,事成之后商品数量减少gi,而收入增加mi元.如果接受订单i,则必须恰好在时刻ti交易,…
本蒟蒻又双叒叕被爆踩辣! 题目链接 Solution: 这题又是一道贪心.. 数据范围: n<=15 ti<=100,000 gi<=10^9 mi<=10^9 这里就可以看到几个小细节,也可以想出一些思路. 要开long long! 首先,n <= 15, 这个数据可以说是很小辣,它代表有n个任务,又因为 如果接受订单i,则必须恰好在时刻ti交易,不能早也不能晚.同一时刻可以接受多个订单,但每个订单只能被接受一次. 窝们本不知道选择哪些任务才会是利润最高,而且这很明显也无法…
传送门 解题思路 贪心,首先因为\(n\)比较小,可以\(2^n\)枚举子集.然后判断的时候就每次看后面的如果用最大生产力生产能不能达成目标,解一个二次函数. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define int long long using namespace std; const int…
传送门 先枚举选择哪些订单,然后转为判定是否可行 在能完成的情况下肯定是花越多时间提高生产力越优 我们设可以有\(x\)单位时间来提高生产力,那么如果当前离下一个订单的时间为\(T\)时,这个订单要\(P\)个产品,工厂拥有\(M\)的生产力时,显然有如下方程: \[(M+x)*(T-x)=P(M+x)*(T-x)=P\] 整理之后得 \[x^2+(M-T)*x+P-M*T=0\] 判断是否有解即可 //minamoto #include<bits/stdc++.h> #define ll l…
luoguP1084 疫情控制 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define il inline #define rg register #define ll long long #define N 60000 #define inf 21474…
题目描述 Description 有一个称为“模拟工厂”的游戏是这样的:在时刻0,工厂的生产力等于1.在每个时刻,你可以提高生产力或者生产商品.如果选择提高生产力,在下一个时刻时工厂的生产力加1:如果选择生产商品,则下一个时刻你所拥有的商品数量增加p,其中p是本时刻工厂的生产力. 有n个订单,可以选择接受或者不接受.第i个订单(ti, gi, mi)要求在时刻ti给买家提供gi个商品,事成之后商品数量减少gi,而收入增加mi元.如果接受订单i,则必须恰好在时刻ti交易,不能早也不能晚.同一时刻可…
[BZOJ2426][HAOI2010]工厂选址(贪心) 题面 BZOJ 洛谷 题解 首先看懂题目到底在做什么. 然而发现我们显然可以对于每个备选位置跑一遍费用流,然后并不够优秀. 不难发现所有的位置都要分配给两个工厂,而其中一个工厂的用量是\(b\).那么我们先假装把所有的全部分配给这一个工厂,这样子我们每次把一些分给另外一个工厂的时候,对于答案的贡献就已知了,那么从贡献小的往贡献大的贪心即可. 还是记住这样一句话,我们的贪心过程从某种意义上来说就是在模拟费用流的过程. 这样子的复杂度就是\(…
当时看了这题就感觉so easy...  本来不想写的,后来感觉是不是可以练一下搜索水平.. 比赛时有人过了就没写.       比赛完了写一下. 实现还不是那么顺利,  囧 本来自己以为这题能练下搜索,其实DFS.BFS都没用到,也许模拟中有点搜索吧. 还是类似方格的东西把外围也设置成未标记要好的多,做题多了也许就有这种感觉了吧. 还有自己忽略了驴 老虎前面是已经走过的路也可以转弯.   BS!! #include <iostream> #include <cstdio> #in…