2426: [HAOI2010]工厂选址
2426: [HAOI2010]工厂选址
代码:
/*
贪心:
奇妙!!!!!
因为所有的煤矿不是给新厂,就是给旧厂(而且旧厂的得到b)
为了使费用最小,感性的理解,那么一个煤矿给哪个厂,取决于到哪个厂近。
所以开始假设所有的煤都给了新厂,然后取出b的给旧厂,取哪个煤矿呢?
当然是这个煤矿给了旧厂的费用比给了新厂的费用少(c[0][i]-c[x][i]),所以按照这个排序,依次取出。
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; inline int read() {
int x=,f=;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-;
for (;isdigit(ch);ch=getchar())x=x*+ch-'';return x*f;
} #define rep(i,a,b) for(int i=(a); i<=(b); ++i)
#define pa pair<int,int>
const int M = ; // 煤矿
const int N = ; // 发电厂 int a[M],c[N][M],h[N];
int m,b,n,ans1,ans2 = 1e9;
pa T[M]; void solve(int x) {
int Cost = h[] + h[x], B = b;
rep (i,,m) {
Cost += c[x][i] * a[i];
T[i].first = (c[][i]-c[x][i]);
T[i].second = i;
}
sort(T+,T+m+);
rep (i,,m) { //--m,1
int j = T[i].second;
if (B >= a[j]) {
Cost += T[i].first * a[j]; // -- Cost-=...
B -= a[j];
}
else {
Cost += T[i].first * B;
break;
}
}
if (Cost < ans2)
ans2 = Cost,ans1 = x;
} int main() {
m = read(),b = read(),h[] = read(),n = read();
rep (i,,m) a[i] = read();
rep (i,,n) h[i] = read();
rep (i,,n) rep (j,,m) c[i][j] = read(); // -- rep(i,1,n)
rep (i,,n) solve(i); // -- rep(i,0,n)
cout << ans1 << "\n" << ans2;
return ;
}
2426: [HAOI2010]工厂选址的更多相关文章
- BZOJ 2426: [HAOI2010]工厂选址
2426: [HAOI2010]工厂选址 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 364 Solved: 248[Submit][Status ...
- 【BZOJ2426】[HAOI2010]工厂选址(贪心)
[BZOJ2426][HAOI2010]工厂选址(贪心) 题面 BZOJ 洛谷 题解 首先看懂题目到底在做什么. 然而发现我们显然可以对于每个备选位置跑一遍费用流,然后并不够优秀. 不难发现所有的位置 ...
- BZOJ2426 [HAOI2010]工厂选址
Description 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运 ...
- HAOI2010 工厂选址
题目链接:戳我 数组开小火葬场qwqwq 就是一个贪心吧.对于一个数,我们知道只有两种摆放方式.所以我们可以先都放到新的里面,然后做一下新的-原先的差,按照差从大到小排序,依次提取数值减去即可. 代码 ...
- 洛谷P2514||bzoj2426 [HAOI2010]工厂选址
洛谷P2514 bzoj2426 其实是个简单的贪心,然而不适合在脑子不清醒的时候做...看不懂题意续了1个小时 很容易发现应该枚举新建哪个发电厂,对于这种方案就是取其中b吨煤运到原来发电厂,取剩下( ...
- 【HAOI2010】工厂选址题解
题目描述 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i ...
- 【P2514】工厂选址(贪心)
看到题了不首先应该看看数据范围确定一下算法么,这个题的数据范围大约可以支持到O(nmlogm),所以肯定不是搜索什么的,DP貌似至少也要n^2m,所以可以想一些其他的.对于题目的输入,我们发现这些输入 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- bzoj 2426 【HAOI2010】工程选址 贪心
[HAOI2010]工厂选址 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 447 Solved: 308[Submit][Status][Disc ...
随机推荐
- linux系统(CentOS)下安装PhantomJS
1.查看linux系统位数,来判断下载适配的PhantomJS: 输入命令:# lsb_release -a 2.下载PhantomJS: 从官网http://phantomjs.org/downlo ...
- 用批处理在windows中导出/导入无线网络信息,复制保存为bat即可
@echo offtitle 在windows中导出/导入无线网络信息 :Beginecho ========================echo 请选择操作:echo 1 查看可用的无线网络ec ...
- 用ant打包apkbuilder找不到了的解决办法
apkbuilder的情况下生成apk文件,其实apkbuilder是一个批处理文件,打开里面就能发现,其实他内部执行的是sdklib.jar里面的一个class,所以就知道怎么做了,很简单,我们自己 ...
- Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains 【树状数组维护区间最大值】
题目传送门:http://codeforces.com/contest/799/problem/C C. Fountains time limit per test 2 seconds memory ...
- 一个有意思的标签<marquee>
marquee标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:Netscape)可能无法看到下面一些很有意思的效果,该标签是个容器标签. 一.mar ...
- scr 和 href 区别
HTML中的href和src有什么区别? 加载js的时候,用到的是<script style='text/javascript' src='js/demo.js'></script& ...
- 【洛谷P2296】[NOIP2014]寻找道路
寻找道路 题目链接 这道题非常的水,按照题意, 先反向建边,从终点搜索,标记出可以到达终点的点 然后枚举一遍,判断出符合条件1的点 再从起点搜索一遍就可以了 #include<iostream& ...
- Android学习笔记_40_系统结构 目录结构
1.系统结构: 一.应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序.电话拨号程序.图片浏览器.Web浏览器等应用程序.这些应用程序都是用Java语言编写 ...
- 我的wmware
1.vmware 网络连接方式 NAT 模式: 虚拟机的IP 是由NAT分配的,电脑环境无论如何变化,都不会影响虚拟机 好处:在家.学校.公司,连接虚拟机都可以使用相同的ip地址 桥接模式: 只要更换 ...
- 与JSON相关的问题
1.JSON.stringify 与 JSON.parse 相关的问题 JSON.stringify 把字符串转化为字符串,JSON.parse把字符串转化为JSON格式 会出现的问题Unexpect ...