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. [原]Fedora 20安装记录

    Fedora是我最喜欢的Linux版本,很长时间以来我都在安装使用.近一年多以来一直在搞一个C#相关的开发,很久都没有接触Fedora了,我上一次使用的版本还是Fedora 17.本以为作为一个“老” ...

  2. 在程序中使用gettid()的方法

    gettid()这个函数不可以在程序中直接使用,它是linux本身的一个函数,直接使用会出现,尚未声明之类的错误. 我们可以自已定义实现方法,如下: #include <sys/syscall. ...

  3. RDO部署openstack(3)

    目前OpenStackNeutron框架支持的网络服务有:LoadBalancing as a Service,VPNas a Service,Firewallas a Service. 1. 安装和 ...

  4. windows 2003 上安装windows liver writer

    下载"resource hacker"软件,修改exe文件,找到config--config0-0 替换为: <?xml version="1.0" en ...

  5. textarea 限制字数

    $("textarea").keyup(function(){        //console.log($(this).val().length);        var L=$ ...

  6. HackerRank "Permutation game"

    A typical game theory problem - Recursion + Memorized Searchhttp://justprogrammng.blogspot.com/2012/ ...

  7. CGI技术原理

    一.CGI技术 1.1 CGI的提出 CGI是外部扩展应用程序与WWW服务器交互的一个标准接口.按照CGI标准编写的外部扩展应用程序可以处理客户端(一般是WWW浏览器)输入的协同工作数据,完成客户端与 ...

  8. kafka_2.11-0.8.2.2的搭建

    一.下载官网的压缩包~ 修改conf/server.properties host.name=10.10.224.12  (修改为主机ip,不然服务器返回给客户端的是主机的hostname,客户端并不 ...

  9. 用imageROI来增加某范围的像素

    //用imageROI来增加某范围的像素 //作者:sandy //时间:2015-10-5 #include <cv.h> #include <highgui.h> int ...

  10. Linux Shell入门(转载)

    From:http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用 ...