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. Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法

    Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法 最近在适用Ext JS4开发 ...

  2. 安卓 NEXUS6 修改分辨率,density

    NEXUS6原density数值: 2k屏 560 每一步: 使用RE文件管理器,编辑system/build.prop.将“ro.sif.lcd_density=”的参数改写成为需要修改的数值,保存 ...

  3. c#.net 访问SQL SERVER 时提示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏

    解决方法: 管理员身份运行 cmd ->  输入 netsh winsock reset 然后重启电脑. 引用 :http://blog.csdn.net/laijieyao/article/d ...

  4. eclipse中tomcat发布失败(Could not delete May be locked by another process)原因及解决办法

    在eclipse中tomcat发布项目时,偶尔出现了以下情况: publishing to tomcat v7.0 services at localhost has encountered a pr ...

  5. .net下连接数据库

    可以新建一个按钮,在click事件下,写入一下代码 using( SqlConnection conn=new SqlConnection(Data source=.; Catalog Initial ...

  6. DDD学习笔记一

    由于也是初学DDD,难免有很多不足和认识错误的地方.多数内容来自其他网络资料或者书籍. 参考:http://www.cnblogs.com/Leo_wl/p/4418663.html 希望多多提出宝贵 ...

  7. rsync 同步文件

    rsync 同步文件 rsync -avz roo@192.168.4.12::/home/a ./a  --exclude "data" exclude 去掉/a/data 文件 ...

  8. 解决AD域认证问题—“未知的身份验证机制”

    场景: Ad认证登录系统,之前正常.不知服务器调了什么,导致无法登录.提示信息如标题. 解决方案: DirectoryEntry adRoot = new DirectoryEntry("L ...

  9. JavaScript中文字符验证的函数/正则

    /** * 中文字符验证 * @param {} str * @return {Boolean} */ function checkChinese(str) { var re = /[^\u4e00- ...

  10. ERP_Oracle Erp发展趋势基于SOA电子商务方案

    2014-01-12 Created By BaoXinjian