hoj2665 Factory of XiaoE
Factory of XiaoE
| My Tags | (Edit) |
|---|
| Source : zhouguyue & lilu0355 & xiaoE | |||
| Time limit : 1 sec | Memory limit : 64 M | ||
Submitted : 596, Accepted : 213
Background
XiaoE创办了一个小型加工厂,可以来加工n种工件。不过加工这些工件都是原材料的。于是他找到了供应原料的大老板超级大教主(SuperDaLord -> SDL - -!)。
超级大教主告诉XiaoE说,“以咱们的关系,我绝对以最低价进给你原料,然后你把做好的工件拿来,我绝对以最高价收购。不过这事不能声张,不然Bin3、Lilu等人都来找我的话我就吃不消了。咱们控制一下数量吧,我每天早上把每种工件的原料进给你一份,晚上再从你那里收购每种工件各一件。”
由于原料供应领域被超级大教主垄断,XiaoE别无选择(也就是买n种原料各一份,生产加工,卖出n种工件各一个)。而且XiaoE的工厂只有一台机器,加工完一种工件后需要对机器进行改造才能加工另一种工件,这个过程中有一定的成本。现在XiaoE想让自己一天内的收入尽可能的多。收入 = 工件卖出价 - 原料进购价 - 机器改造成本。我们假设XiaoE的工厂在一天内可以完成所有计划的生产和交易。
Input
本题有多组测试数据,每组数据的第1行为两个整数n (n <= 15)和m(1 <= m <= n),以空格分隔,分别表示工厂可以来加工工件的数目与初始状态下机器可以加工的工件。以下n行每行有2个正整数,分别表示对应工件的进购价和卖出价 (均不超过105)。接下来给出一个n*n的矩阵(对称阵),表示机器在生产n个工件的工作状态间转换的改造成本。(100以内的非负整数)
Output
对于每组输入,输出一个整数,表示XiaoE在一天内的最大收入。
Sample Input
3 1
2 4
2 3
2 5
0 1 2
1 0 1
2 1 0
Sample Output
4
/*
由于所有原料都必须全部加工完,所以先处理出sum(v-w)
问题分析,如果要设计一个状态的话,显然状态与已经加工过的原料和你当前所在的原料有关,如果已经加工过的原料记为1,没加工过的原料记为0,那么已经加工过的原料的状态就可以压缩成一个数。所以,该题目的状态表示为:
Dp[i][j]表示已经加工过的原料为i,当前所在的原料为j的最小转换代价。
相应的状态转移方程为dp[i][j]=min(dp[i^(1<<j)][k]+dis[k][j]);
i^(1<<j)的意思是将j这个城市从i状态中去掉。 dis[k][j]是k和j之间转换的代价。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int map[][],dp[<<][],n,m,v[],sum;
int main(){
//freopen("Cola.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF){
sum=;
memset(dp,/,sizeof(dp));
int x,y;
for(int i=;i<=n;i++){
scanf("%d%d",&x,&y);
sum+=y-x;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%d",&map[i][j]);
dp[<<(m-)][m]=;
for(int i=;i<(<<n);i++){
if(i&(<<(m-))){
for(int j=;j<=n;j++){
if((i&(<<(j-)))&&j!=m){
int tmp=i^(<<(j-));
for(int k=;k<=n;k++){
if(tmp&(<<(k-))){
dp[i][j]=min(dp[i][j],dp[tmp][k]+map[k][j]);
}
}
}
}
}
}
int ans=0x7fffffff;
for(int i=;i<=n;i++){
ans=min(ans,dp[(<<n)-][i]);
}
cout<<(sum-ans)<<endl;
}
}
hoj2665 Factory of XiaoE的更多相关文章
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...
- PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
- 菜鸟理解的工厂模式(Factory Pattern)是什么样子的?
直接开始说了,不浪费园友宝贵的时间! 什么是工厂模式? 在学习前,先问一下:"它是什么?". 工厂模式,它是项目里面常用的设计模式之一. 它是属于创建型模式,简单的理解创建型模式就 ...
- Angular Service和Factory应用的区别
Service可以用来将返回同类业务的多种返回值 Factory可以用来提供对同类业务的多个方法的调用 另外:Provider可以用来封装各独立职责
- 【解决方案】 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userHandler': Injection of resource dependencies failed;
一个错误会浪费好多青春绳命 鉴于此,为了不让大家也走弯路,分享解决方案. [错误代码提示] StandardWrapper.Throwableorg.springframework.beans.fac ...
- Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...
- C#设计模式之简单工厂模式(Simple Factory)
1. 概述 简单工厂模式就是将一个类的实例化交给一个静态工厂来执行. 2. 使用频率 中 3. 模式结构 3.1 机构图 3.2 模式中的角色 Product:抽象类,把具体产品类公共的代码进行抽象和 ...
- Task.Factory.StartNew的用法
代码: private void button5_Click(object sender, EventArgs e) { ; Task.Factory.StartNew(() => { Mess ...
随机推荐
- FreeCMS怎么动态訪问模板?
原文地址:http://javaz.cn/site/javaz/site_study/info/2015/31166.html 项目地址:http://www.freeteam.cn/ FreeCM ...
- Java服务器端 API 错误码设计总结
1.对于API结果返回,定义BaseResult 类 拥有success,errorCode,errorMsg个3个基本参数,success使用Boolean类型,errorCode使用Integer ...
- Javascript学习之正则表达式详解
什么是正则表达式(regular expreSSion) 正则表达式是一个描述字符模式的对象. 可以处理更复杂的字符串 JavaScript中的正则表达式使用RegExp对象表示 正则表达式用于 ...
- Linux就该这么学--命令集合1(常用系统工作命令)
1.用echo命令查看SHELL变量的值(前面有$符号): echo $SHELL 2.查看本机主机名: echo $HOSTNAME 3.查看当前的系统时间: date 4.按照“年-月-日 时:分 ...
- python错误提示“TabError: inconsistent use of tabs and spaces in indentation”
在遍历打印10以内的奇数是出现“TabError: inconsistent use of tabs and spaces in indentation”的错误提示: 代码如下: 第一感觉没什么错误, ...
- Apache Thrift的简单介绍
1.什么是Thrift thrift是一种可伸缩的跨语言服务的发展软件框架.它结合了功能强大的软件堆栈的代码生成引擎,以建设服务.不同开发语言开发的服务可以通过该框架实现通信. thrift是face ...
- ICE学习笔记 -- RFC 5245
RFC 5245 ICE 1, offer/answer model 2, ICE Step: 1) 产生候选地址(1.公网 2.NAT反射 3.Relay转发地址) Generate ca ...
- jmeter之java请求
通常情况下,推荐使用jmeter之java请求编写一beashell调用java代码(上篇)(推荐)编写Java 请求 有以下优势 脚本易维护 易调试 开发脚本周期短 不过网上扩展java请求文章比较 ...
- LuNamp和LuManager的目录结构
/|---- etc/|-------- my.cnf #mysql配置文件|-------- ipfw.conf #ipfw防火墙的配置文件(仅FreeBSD)|---- home/|------- ...
- android DHCP流程【转】
本文转载自:http://blog.csdn.net/myvest/article/details/51483647 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1 ...