传送门

先枚举选择哪些订单,然后转为判定是否可行
在能完成的情况下肯定是花越多时间提高生产力越优
我们设可以有\(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 long long
#define R register
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(R int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
inline int min(const R int &x,const R int &y){return x<y?x:y;}
inline int max(const R ll &x,const R ll &y){return x>y?x:y;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=35;
struct node{int t,g,m;friend bool operator <(const R node &a,const R node &b){return a.t<b.t;}
}a[N],st[N];int top;
int n,t;ll ans,pp,gg,ss,res;
int calc(R ll k,R ll t,R ll g){ll a=1,b=k-t,c=g-k*t,del=b*b-4*a*c;return del<0?-1:((-b+sqrt(del))/2/a);
}
bool ck(){pp=1,gg=0;fp(i,1,top){ss=0,t=st[i].t-st[i-1].t;fp(j,i,top)if((ss+=st[j].g)>gg)t=min(t,calc(pp,st[j].t-st[i-1].t,ss-gg));if(t<0)return 0;pp+=t,gg+=pp*(st[i].t-st[i-1].t-t),gg-=st[i].g;}return 1;
}
int main(){
//  freopen("testdata.in","r",stdin);n=read();fp(i,1,n)a[i].t=read(),a[i].g=read(),a[i].m=read();sort(a+1,a+1+n);fp(i,1,(1<<n)-1){res=top=0;fp(j,1,n)if(i&(1<<(j-1)))st[++top]=a[j],res+=a[j].m;if(ck())ans=max(ans,res);}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10076326.html

P3161 [CQOI2012]模拟工厂相关推荐

  1. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  2. 2667: [cqoi2012]模拟工厂

    题目链接 很显然的贪心:在一段时间t里,如果你要选择x天进行提高产率,那么让产率最大化的方案显然是在t天里前x天进行提高产率,后面的时间进行生产. 如果当前有 v0 的生产能力,并且已经处理完了前 i ...

  3. 虚拟实验工场大学计算机报告,模拟工厂实习报告

    模拟工厂实习报告 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 模拟工厂实习模拟工厂实习 实验报告实验报告实验步骤:实验步骤:一 ...

  4. 抽象工厂模式(Absraact Factory)介绍与实现

    创建一个IProduct,后面模拟业务时要用到 package com.xiawei.factory; public class IProduct { private String productNo ...

  5. 工厂供电综合自动化实验QY-PGD11

    1. 供电和自动化控制对工厂发展的作用: (1).减少劳动强度,降低生产成本 (2).缩短生产周期,提高产品的成品率和使用可靠性 (3).提升企业生产规模 (4).为企业的信息化.网络化管理打下基础 ...

  6. 强化学习开源模拟环境大盘点

    游戏环境 OpenAI Gym Retro OpenAI 发布的增强的游戏强化学习研究平台,Gym Retro.其中包括对任天堂 Game boy,NES, 世嘉游戏等各种模拟器的支持.通过附带的 I ...

  7. TML5/CSS3工厂流水线动画特效

    今天我们来分享一款非常具有创意的HTML5/CSS3动画特效,它是一个模拟工厂流水线的动画,烟囱冒着黑烟,屋外的传送带把货物送出去,虽然这个HTML5动画不怎么实用,但还是能很大程度上帮助我们学习HT ...

  8. Java多线程模拟加工厂加工玩具

    创建工厂类, 属性包括:车间类的对象的集合,仓库容量 方法包括: 1. 加工玩具的方法(product),方法的功能是各个车间同时工作.根据仓库容量平均分配给各个车间需要加工玩具的数量.2. 建造玩具 ...

  9. Java 依赖注入标准(JSR-330)简介

    Java 依赖注入标准(JSR-330)简介 转载请保留作者信息: 作者:88250 ,Vanessa 时间:2009 年 11 月 19 日 Java 依赖注入标准(JSR-330,Dependen ...

  10. aspen plus大小_AspenPlus

    依靠基于超过35年经验和顶级化工公司反馈的过程模拟器.访问过程仿真中的最新创新. 软件优势 1.更好的仿真简化了工程 改善工厂绩效的基础是工厂设计和运营的准确表示.公司需要一种解决方案,使他们能够对流 ...

最新文章

  1. SRTP是如何工作的
  2. javascript经典广告代码.rar
  3. Activity Recognition行为识别
  4. Struts1.x框架基本原理
  5. L1-036. A乘以B
  6. 仅109美元 搞一套Evive物联网开发工具包回家耍
  7. IE6下a href=#与a href=javascript:void(0);的区别
  8. Cadence Allegro Segments Over Voids 功能介绍图文教程
  9. 同时开多个独立窗口Visio 2003/2007版本的软件
  10. static analysis tool
  11. 中国诗歌艺术 - MOOC课程总结版
  12. 李宏毅-人类语言处理-成分句法分析
  13. 手机是如何做到精准定位的
  14. 卡1有信号 卡2无服务器,为什么卡1无服务卡2有
  15. Comparator.comparing排序使用示例
  16. day27 学习HTML-01天
  17. pip升级报错:def read(rel_path: str) -> str SyntaxError: invalid syntax
  18. OpenGL-36-01SSAO
  19. stm32 MPU6050 6轴姿态传感器的介绍与DMP的应用
  20. python阶乘的代码_python编码阶乘

热门文章

  1. 队列:先进先出的线性表,如何实现增删查?
  2. php无框架开发web项目,web.framework
  3. 「转载」微服务分布式架构中,如何实现日志链路跟踪?
  4. 微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
  5. pandas dataframe遍历_Pandas循环提速7万多倍!Python数据分析攻略!
  6. ES6学习笔记五(对象)
  7. python join用法
  8. Yaf引入oss sdk
  9. JDK打印的疑问:CUPSPrinter有何用处?
  10. TeaVM编译JAVA感想:看着简单,做起来真难