BZOJ2426 [HAOI2010]工厂选址

不想说什么了。。。一眼题,排个序贪心。。。
样例过不了,怎么可能?!
乱搞搞了一个小时,终于搞定样例了
发现是题目描述的问题:原来的发电站必须只收b吨!!!!!您倒是说说清楚啊我去。。。
网上过的那些人都是一A的?不敢相信。。。

 1 /**************************************************************
 2     Problem: 2426
 3     User: rausen
 4     Language: C++
 5     Result: Accepted
 6     Time:332 ms
 7     Memory:1592 kb
 8 ****************************************************************/
 9
10 #include <cstdio>
11 #include <algorithm>
12 using namespace std;
13 const int N = 55;
14 const int M = 50005;
15 struct data{
16     int del, cnt;
17     data(void){}
18     data(int a, int b) : del(a), cnt(b) {}
19 }c[M];
20 inline bool operator < (const data a, const data b){
21     return a.del > b.del;
22 }
23
24 inline int read(){
25     int x = 0, sgn = 1;
26     char ch = getchar();
27     while (ch < ‘0‘ || ch > ‘9‘){
28         if (ch == ‘-‘) sgn = -1;
29         ch = getchar();
30     }
31     while (ch >= ‘0‘ && ch <= ‘9‘){
32         x = x * 10 + ch - ‘0‘;
33         ch = getchar();
34     }
35     return sgn * x;
36 }
37
38 int m, n, b, H;
39 int sum_a, sum_cost;
40 int a[M], h[N], C[M];
41
42 int main(){
43     m = read(), b = read(), H = read(), n = read();
44     for (int i = 1; i <= m; ++i)
45         a[i] = read(), sum_a += a[i];
46     sum_a -= b;
47     for (int i = 1; i <= n; ++i)
48         h[i] = read();
49     for (int i = 1; i <= m; ++i)
50         C[i] = read(), sum_cost += C[i] * a[i];
51
52     int sum, j, rest, ans = (int) 1e9, ans1;
53     for (int i = 1; i <= n; ++i){
54         sum = sum_cost, rest = sum_a;
55         for (j = 1; j <= m; ++j)
56             c[j] = data(C[j] - read(), a[j]);
57         sort(c + 1, c + m + 1);
58
59         for (j = 1; j <= m; ++j)
60             if (rest >= c[j].cnt)
61                 rest -= c[j].cnt, sum -= c[j].cnt * c[j].del;
62             else break;
63         if (rest > 0)
64             sum -= rest * c[j].del;
65         if (ans > sum + h[i])
66             ans1 = i, ans = sum + h[i];
67     }
68     printf("%d\n%d\n", ans1, ans + H);
69     return 0;
70 }

时间: 2024-10-24 07:43:41

BZOJ2426 [HAOI2010]工厂选址的相关文章

[haoi2010]工厂选址

某地区有m座矿,其中第i号矿每年产量为ai吨,现有火力发电站一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i=1,2,-,m:j=1,2,-,n).现规划新建一个发电厂,m座煤矿每年开采的原煤将全部供给这两座发电厂.现有n个备选的厂址.若在第j号备选厂址建新厂,每年运行的固定费用为hi元.每吨原煤从第i号矿运到j号备选厂址的运费为Cij(i=1,2,-,m:j=1,2,-,n).试问:应把新厂厂址选取在何处?m座煤矿

【HAOI2010】工厂选址题解

题目描述 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i=1,2,…,m). 现规划新建一个发电厂,m座煤矿每年开采的原煤将全部供给这两座发电厂.现有n个备选的厂址.若在第j号备选厂址建新厂,每年运行的固定费用为hj元.每吨原煤从第i号矿运到j号备选厂址的运费为Cij(i=1,2,…,m:j=1,2,…,n). 试问:应把新厂厂址选取在何处?m座煤矿开采

bzoj 2426 【HAOI2010】工程选址 贪心

[HAOI2010]工厂选址 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 447  Solved: 308[Submit][Status][Discuss] Description 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i=1,2,…,m).   现规划新建一个发电厂,m座煤矿每年开采的原煤将全部

分支界定法详解

分支界定法是求解整数线性规划最优解的经典方法. 定义: 对有约束条件的最优化问题(其可行解为有限数)的所有可行解空间恰当地进行系统搜索,这就是分支与界定的内容.通常把全部解空间反复地分割为越来越小的子集,称为分枝:并对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界.在每次分枝后,若某个已知可行解集的目标值不能达到当前的界限,则将这个子集舍去.这样,许多子集不予考虑,这称为剪枝.这就是分枝界限法的思路. 背景: 分枝界限法可以用于求解纯整数或混合的整数规划问题.在上世纪六十年代由L

docplex

一.什么是0-1规划问题 0-1规划问题是决策变量仅取值0或1的一类特殊的整数规划.0-1变量可以数量化地描述诸如开与关.取与弃.有与无等现象所反映的离散变量间的逻辑关系.顺序关系以及互斥的约束条件,因此0-1规划问题非常适合描述和解决如线路设计.工厂选址.生产计划安排.旅行购物.背包问题.人员安排等问题. 二.经典0-1规划问题 某公司拟在市东.西.南区建立门市部.备选有7个位\(A_{i}\)(\({i}=1,2,...,7\))可供选择.规定\(A_{1}\).\(A_{2}\).\(A_

抽象工厂模式

思考:工厂方法模式:http://www.cnblogs.com/maggiejyt/p/7561253.html 工厂方法模式UML: 问题:如果这家工厂不止要生产Ball(球),还要还有Sneakers(球鞋)等 则UML图为 当Product有多种类时则是抽象工厂模式 代码(Ball的代码见简单工厂模式:http://www.cnblogs.com/maggiejyt/p/7561253.html) Sneakers(球鞋抽象类) package com.maggie.FactoryMet

工厂ERP系统对企业高效管理的好处是什么?

对于工厂类企业来说,无论是小到厨具工厂,大到汽车工厂,再到航天设备工厂,其生产流程都是复杂,从开始的产品设计到零部件等所有物料的采购,再到生产组装,测试再调试,再到完成,需要经历几十上千步工序与细节,工厂的管理工作难度,那是相当大,但是,随着数据信息化系统的普及,工厂类企业实现智能高效化管理的愿望,得以实现,在这里,我们以工厂ERP系统为例,讲述一下工厂ERP系统对工厂类企业实现智能高效化管理的作用. 1.各环节工作,无缝流转 信息的沟通直观重要,对于企业来说,信息的沟通越是顺通,那么办公效率也

设计模式 2/23 工厂模式

工厂模式是最常用的设计模式之一,用好了,代码优雅,可维护性高,对系统设计会上一个台阶 为什么这么说,因为工厂模式可以牵扯出抽象工厂模式,也有大家都会聊到的简单工厂模式 我们要了解一点,23中设计模式中,不包含简单工厂模式,之所以大家会去聊这个,四个字,渐进明细 通过对简单工厂模式的了解,我们引入工厂这个词,不然一个写代码的,天天给他讲工厂,工厂,工厂,西厂,东厂,会晕 同时,通过逐步的深入,从简单工厂,到工厂模式,再到抽象工厂,渐进明细的过程,逐步深入的理解,比较优劣,择优而为我们所用. 试想我

简单工厂模式

目前正在看<大话设计模式>,写此系列的文章记录下学习的经过. 简单工厂模式 先看如下代码,使用面向对象的原理实现计算器功能 Operation运算类 1 public class Operation 2 { 3 private double numberA = 0; 4 private double numberB = 0; 5 6 public double NumberA 7 { 8 get { return numberA; } 9 set { numberA = value; } 10