1314: ZZY的困惑

Time Limit: 2 Sec  Memory Limit: 128 M
[Submit][Status][Web Board]

Description

ZZY有很多爱好~~比如足球、电影、三国杀、A题,而他希望在这些爱好中能收获一些东西~~但是并不是所有爱好对所有目标都是起积极作用的..ZZY十分的困惑..于是列了下自己想获得的收获并且给每个目标设立了最小要达到的权值...并且给自己的爱好对每个收获目标进行了评值..这个值若是负则代表不利于获得某个收获~~为0代表没影响~~为正的代表利于获得某种收获..现在ZZY已经制作好了这些数据想请你帮帮忙~~在保证所有的目标最低要求都能达成的情况下保留尽量多的爱好~~

Input

 多组数据读到EOF结束(不超过10组)每组数据
   第一行为ZZY的收获目标个数N ( 0<N<=20 ) 
   第二行为ZZY对每个目标所订的一个最低权值 ( 0 < w <= 1000 )
   第三行为ZYY的爱好总数M ( 0 < M <= 16 )
   下面的M行每行有N个数代表每个爱好对每个目标的促进权值..( -1000 <= k <= 1000 )

Output

每组输入对应一行输出:
   第一个数为能保留的最多爱好个数..紧接着为这些爱好分别对应输入的是那几个序号..
   若有多种都能达到保留个数请输出相对来说较小的(如 1 2 与 3 4 同时能满足要求,那么选1 2)
   若怎么都无法实现目标那只能说着所有爱好都要不得,输出0...

Sample Input

4
100 200 300 400
3
100 100 400 500
100 -10 50 300
100 100 -50 -50

Sample Output

2 1 3
 瞎搞
#include <iostream>
#include <stdio.h>
#include <queue>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <queue>
#include <set>
#include <algorithm>
#include <map>
#include <math.h>
#define Max(a,b) ((a)>(b)?(a):(b))
using namespace std ;
typedef long long LL ;
int N ,M ;
bool Select[18] ;
int num[18][21] ;
int dp[21] ;
int object[21] ;
int select_num ;
vector<int>ans ;
int judge(){
for(int i=1;i<=N;i++){
if(dp[i]<object[i])
return 0 ;
}
return 1 ;
}
void dfs(int id){
if(id==M+1){
int select_now_num=0 ;
memset(dp,0,sizeof(dp)) ;
for(int i=1;i<=M;i++){
if(Select[i]){
select_now_num++ ;
for(int j=1;j<=N;j++)
dp[j]+=num[i][j] ;
}
}
if(judge()){
if(select_now_num>select_num){
select_num=select_now_num ;
ans.clear() ;
for(int i=1;i<=M;i++){
if(Select[i])
ans.push_back(i) ;
}
}
else if(select_now_num==select_num){
select_num=select_now_num ;
vector<int>temp ;
temp.clear() ;
for(int i=1;i<=M;i++){
if(Select[i])
temp.push_back(i) ;
}
int flag=0 ;
for(int i=0;i<ans.size();i++){
if(ans[i]>temp[i]){
flag=1 ;
break ;
}
}
if(flag){
ans.clear() ;
for(int i=0;i<temp.size();i++)
ans.push_back(temp[i]) ;
}
}
}
return ;
}
Select[id]=0 ;
dfs(id+1) ;
Select[id]=1 ;
dfs(id+1) ;
}
int main(){
while(scanf("%d",&N)!=EOF){
for(int i=1;i<=N;i++)
scanf("%d",&object[i]) ;
scanf("%d",&M) ;
for(int i=1;i<=M;i++)
for(int j=1;j<=N;j++)
scanf("%d",&num[i][j]) ;
memset(Select,0,sizeof(Select)) ;
select_num=0 ;
dfs(1) ;
printf("%d",select_num) ;
if(select_num){
for(int i=0;i<ans.size();i++)
printf(" %d",ans[i]) ;
}
puts("") ;
}
return 0 ;
}

  

1314: ZZY的困惑的更多相关文章

  1. ZZY的困惑

    Description ZZY有很多爱好~~比如足球.电影.三国杀.A题,而他希望在这些爱好中能收获一些东西~~但是并不是所有爱好对所有目标都是起积极作用的..ZZY十分的困惑..于是列了下自己想获得 ...

  2. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  3. C#进阶系列——WebApi 接口参数不再困惑:传参详解

    前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...

  4. javascript中异步和闭包产生的困惑

    这里我不打算大谈特谈什么是异步,什么是闭包,这些内容在博客园都已经写的够多的了,但是这些内容出现的多,并不代表所有初学者都已经撑握了,所以我还是打算,用一个比较常见的示例来分析一下,或许能让对这个问题 ...

  5. WebApi 接口参数不再困惑:传参详解

    阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.“怪异”的get请求 二.post请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.后台发送请求参数的 ...

  6. 计算LDA模型困惑度

    http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA主题模型评估方法--Perplexity http:/ ...

  7. WebApi接口传参不再困惑(4):传参详解(转载)

    WebApi接口传参不再困惑(4):传参详解   前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方 ...

  8. python logging模块可能会令人困惑的地方

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...

  9. 【深入BFC】 关于CSS中float布局,清除浮动,和margin合并的原理解析,解开你心中的那些困惑!

    BFC的通俗理解: Block Formatting Context(块级格式化上下文)是W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用. ...

随机推荐

  1. IE11如何采用其他低级版本调试网页

    IE9的方法: 出于未知需求,用户在安装了较高版本IE浏览器(IE9)之后,又需要使用低版本的IE(7,8),为了返回较低版本,很多用户选择(不得不)卸载新版本IE,这样显得十分不科学.实际上IE9提 ...

  2. Linux下做软RAID

    1.查看有多少块硬盘可用#fdisk -l嗯,一般而言,留下系统盘不动,其它的盘如果大小相同的话,统统合起来做一个raid. 2.决定做什么类型的raid.raid-0.raid-1.raid-5?如 ...

  3. C#:基于WMI查询USB设备

    来源:http://blog.csdn.net/jhqin/article/details/6734673 /* ------------------------------------------- ...

  4. 黄聪:Emeditor 编辑器常用的正则表达式

    Emeditor 目前来说是我个人感觉非常不错的一款记事本软件, 其中查找替换功能由于支持正则表达式而显得非常强大. <tr[^>]*> 匹配:<tr xxxxxxxxxxxx ...

  5. scala高级内容(二) - Implicit

    一. Implicit关键字 隐士转换 (1)隐士转换函数:用implicit修饰的,只有一个参数的函数.他会被自动执行,来把一个值转换成另一个 class RichFile(val f:File){ ...

  6. [DHTML]什么是DHTML?

    DHTML 将 HTML.JavaScript.DOM 以及 CSS 组合在一起,用于创造动态性更强的网页. DHTML 总结 DHTML 只是一个术语,它描述了 HTML.JavaScript.DO ...

  7. PLSQL_性能优化系列14_Oracle High Water Level高水位分析

    2014-10-04 Created By BaoXinjian 一.摘要 PLSQL_性能优化系列14_Oracle High Water Level高水位分析 高水位线好比水库中储水的水位线,用于 ...

  8. JavaScript: bind apply call

    var foo = function(age,sex){ console.log(this.name,age,sex); }; //call将改变函数运行的context foo.call({name ...

  9. 一个超级简单的HTML模板框架源代码以及使用示例

    HTML模板框架源代码 var HtmlTemplate = (function () { function HtmlTemplate(htmlSource) { this.htmlSource = ...

  10. Java多线程之新类库中的构件DelayQueue

    DelayQueue 是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走.这种队列是有序的,即队头对象的延迟到期时间最长.注意:不 ...