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. 微信公众平台Php版php开发(转)

    http://www.1990c.com/?p=932 近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的-  今天来分享一下开发经验~微信公众平台提供的接口很简单,先看看消息交互流程:  说 ...

  2. jquery读取csv文件并用json格式输出

    直接贴上代码: <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untit ...

  3. AS3 编码解码函数 特殊字符转义

    有时候传输特殊字符的时候,需要将字符转义, trace(escape("!@#$%^&*()_+<>?'"));//输出:%21@%23%24%25%5E%26 ...

  4. 关于AVD无法使用问题

    因为工作需要,刚入手android,搭建开发环境挺麻烦,整个环境的搭建配置我就不说了,网上很多,这里就只说一下我遇到的一个问题. Java JDK安装完毕,环境变量配置完毕,eclipse下载好后解压 ...

  5. c++中的peek函数

    c++中 cin.peek()函数 其返回值是一个char型的字符,返回值是指针指向的当前字符, 但是只是观测,指针任停留在当前位置,并不后移.如果要访问的字符是文件结束符,则函数值是EOF(-1); ...

  6. activiti自定义流程之整合(一):整体环境配置

    结合之前所说的自定义流程的思路,分别是后台.前台.整合,之前的内容也分别进行了相关的练习和尝试,现在就该到了最后的整合了,依旧是以实现功能为目的,细节暂且不去管他. 因为我们实际项目后端用的是spri ...

  7. SQL 获取本年第几周

    根据输入的日期得出,算出是本年第几周 select datepart(week,getdate())

  8. 黄聪:VS2010开发如何在c#中使用Ctrl、Alt、Tab等全局组合快捷键

    1.新建一个类 HotkeyHelper  using System; using System.Runtime.InteropServices; using System.Windows.Forms ...

  9. DBA_Oracle Archive Log的基本应用和启用(概念)

    2014-11-15 Created By BaoXinjian

  10. IGS_学习笔记01_Integrated SOA Gateway介绍(案例)

    2014-01-01 Created By BaoXinjian