抗震机械制造

Time Limit:1000MS Memory Limit:65536KB
Total Submit:312 Accepted:78

Description 

为了应付可能到来的地震,ECNU国国王CS决定花大量资金开发几种矿藏来制造各种救援机械。矿藏一旦被开发就可以无限使用。为了使自己的救援队能应付尽可能多的境况,CS决定让自己的救援队的机械组成尽量多元化。CS数学太弱,面对复杂的机械制造数据,他只好求助于你。
如果CS给你关于机械制造的具体数据,你能帮他计算出他最多能制造多少种救援机械吗?

Input 

测试数据以一个整数T(1<=T<=20)开头,表示有T组测试数据。
每组测试数据都以三个整数n(1<=n<=100),m(1<=m<=16),p(1<=p<=16000)开始,n表示可以制造的机械的种数,m表示矿藏的种数,p表示CS最多能花费的资金。
接下来一行有m个整数,第i个整数表示开发第i种矿藏需要的资金。
然后有n行,每行m个数(1或0),第i行第j个数为"1"表示制造第i种机械需要第j种矿藏,若为"0"则表示不需要。

Output 

对于每组测试数据,输出CS最多能制造的机械的种数。

Sample Input 

2
3 4 1719
409 626 785 108
0 0 0 0
1 0 1 1
1 0 0 0
3 4 1612
268 223 480 947
1 1 1 0
1 1 1 1
0 0 1 0

Sample Output 

3
2

Hint:
Case1:开发1,3,4号矿藏即可制造所有的机械,总开销为409+785+108=1302
Case2:开发1,2,3号矿藏即可制造第一种和第三种机械,总开销为268+223+480=971,因为制造第二种机械需要开发第四种矿藏,需要再花费947,超出上限,所以无法达到。

Source

第一届程序设计竞赛

解题:一道暴力枚举题

 #include <bits/stdc++.h>
using namespace std;
int n,m,p,ret;
int cost[],need[];
void check(int x){
int sum = ;
for(int i = ; i < n; ++i)
if((need[i]&x) == need[i]) sum++;
if(sum > ret) ret = sum;
}
int main(){
int kase,tmp;
scanf("%d",&kase);
while(kase--){
scanf("%d%d%d",&n,&m,&p);
for(int i = ; i < m; ++i)
scanf("%d",cost+i);
for(int i = ; i < n; ++i){
need[i] = ;
for(int j = ; j < m; ++j){
scanf("%d",&tmp);
if(tmp) need[i] |= (<<j);
}
}
ret = ;
for(int i = ; i < (<<m); ++i){
int sum = ;
for(int j = ; j < m; ++j)
sum += ((i>>j)&)*cost[j];
if(sum > p) continue;
else check(i);
}
printf("%d\n",ret);
}
return ;
}

ECNUOJ 2144 抗震机械制造的更多相关文章

  1. OJ题解记录计划

    容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001  A+B Problem First AC: 2 ...

  2. Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化

    Enterprise Solution是一套完整的企业资源计划系统,功能符合众多制造业客户要求.系统以.NET Framework技术作为开发架构,完善的功能可有效地帮助企业进行运营策划,减低成本,如 ...

  3. 关于开放式CNC系统实时软件控制系统的一些简单分析

    随笔: 黄杰U201310771 首先,我们一起了解或复习两个概念:开放式CNC和开放式CNC体系结构.按照工EEE规定:一个开放式的系统必须具备不同应用程序能很好地运行于不同供应商提供的不同平台之上 ...

  4. 发布有礼!2015 Autodesk程序商店有奖发布活动拉开序幕

    您是不是有希望您的 Autodesk 产品应用程序有更多的用户?您是不是正在寻求更广阔的市场机会?您是不是在激荡人心的云时代大潮中有许多奇思妙想没有小试身手? 来吧,来参加Autodesk应用程序发布 ...

  5. 【资讯】天啦鲁,这十余款创客设计居然由FPGA搞定 [转]

    按理说‘高大上’的FPGA,多出现在航天航空(如火星探测器).通信(如基站.数据中心).测试测量等高端应用场景.但麦迪却也发现,近期,在很多创客的作品内部都有FPGA的影子.这或许也从侧面看出,打从总 ...

  6. 发布App,赢iPad mini + 美金100$ - Autodesk Exchange 应用程序发布竞赛

    开发牛人们,送你个iPad mini要不要,Autodesk Exchange应用程序发布竞赛开始了. 摘要版: 在2014年9月30日午夜前提交到Autodesk Exchange 应用程序商店上, ...

  7. 问题导向VS目标导向:领导者要倾向哪种?

    人类进步的驱动: 问题驱动:目标驱动: 两者相互影响: 问题驱动是起点,并且在很多杂乱的问题中只有少数可以转化为目标,从而成为进步的动力:多数问题只是以干扰的形式出现. 问题驱动是被动的,并且常常干扰 ...

  8. python 学习之电脑的发展历史

    电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...

  9. .net程序员工作两年总结

    (2015年9月) 最近换了工作,面试了很多家公司想总结下,以便以后回顾知道自己是怎么走过来的. 入行背景: 我是半路转行做软件开发的,2011年7月大学专科毕业,大学专业是:机械制造及其自动化:20 ...

随机推荐

  1. Tomcat学习(一)——使用Eclipse绑定Tomcat并发布应用

    1.下载Tomcat 官网地址:http://tomcat.apache.org/whichversion.html 2.目录结构 bin:脚本目录 启动脚本:startup.bat 停止脚本:shu ...

  2. Incomplete types-不完全类型

    另外:前向声明中引入的类型为不完全类型(incomplete type),不完全类型只能以有限方式使用,只能用于定义指向该对象的指针和引用,只能用于声明使用该类型作为形参或返回类型的函数. Incom ...

  3. SpringCloud学习笔记(13)----Spring Cloud Netflix之Hystrix断路器的隔离策略

    说明 : 1.Hystrix通过舱壁模式来隔离限制依赖的并发量和阻塞扩散 2. Hystrix提供了两种隔离策略:线程池(THREAD)和信号量隔离SEMAPHORE). 1. 线程池隔离(默认策略模 ...

  4. 洛谷 P1462 通往奥格瑞玛的道路 二分 最短路

    #include<cstdio> #include<queue> #include<cstring> #include<algorithm> using ...

  5. /lib64和/usr/lib64和/usr/local/lib64的区别

    简单说,/lib64是内核级的,/usr/lib64是系统级的,/usr/local/lib64是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.目录 /u ...

  6. (51) magento集成增加到款通知

    这篇主要讲述如何二开增加自己的功能,我没有继承方式二开,习惯是不好的,直接改了原来的模块. 达到效果就这样,当在网站支付成功,会同步到ERP系统中.下面来讲述实现过程 建立文件 payment_not ...

  7. C语言过程活动记录

    C 语言自动提供的服务之一就是跟踪调用链——哪些函数调用了哪些函数,当下一个return语句执行后,控制将返回何处等.解决这个问题的经典机制是堆栈中的活动记录. 当每个函数被调用时,都会产生一个过程记 ...

  8. 洛谷 P2818 天使的起誓

    P2818 天使的起誓 题目描述 Tenshi非常幸运地被选为掌管智慧之匙的天使.在正式任职之前,她必须和其他新当选的天使一样要宣誓.宣誓仪式是每位天使各自表述自己的使命,他们的发言稿放在n个呈圆形排 ...

  9. hdu 2191 悼念512汶川大地震遇难同胞——珍惜如今,感恩生活

    #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ...

  10. swift学习笔记(五)构造过程

    构造过程是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.在构造过程中,对每一个属性进行了初始值预设和其它必要的准备和初始化工作. 与OC相比,swift的构造函数.不须要返回值.同一时候,在 ...