当前位置: 首页 > news >正文

USACO Healthy Holsteins DFS

使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合

数据规模不大,暴力过去最多也就是2^15 = 23768种情况

所以就暴力咯,不过还是Debug了一会

 

Source Code:

/*
ID: wushuai2
PROG: holstein
LANG: C++
*/
//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstring>
#include <cmath>
#include <stack>
#include <string>
#include <map>
#include <set>
#include <list>
#include <queue>
#include <vector>
#include <algorithm>
#define Max(a,b) (((a) > (b)) ? (a) : (b))
#define Min(a,b) (((a) < (b)) ? (a) : (b))
#define Abs(x) (((x) > 0) ? (x) : (-(x)))
#define MOD 1000000007
#define pi acos(-1.0)

using namespace std;

typedef long long           ll      ;
typedef unsigned long long  ull     ;
typedef unsigned int        uint    ;
typedef unsigned char       uchar   ;

template<class T> inline void checkmin(T &a,T b){if(a>b) a=b;}
template<class T> inline void checkmax(T &a,T b){if(a<b) a=b;}

const double eps = 1e-7      ;
const int M = 660000         ;
const ll P = 10000000097ll   ;
const int INF = 0x3f3f3f3f   ;
const int MAX_N = 20         ;
const int MAXSIZE = 101000000;

int vv[30], aa[20][30];
int ans[30], a[30], cur[30];
int v, g;

void dfs(int n, int w, int a[]){

    int i, j;
    memset(cur, 0, sizeof(cur));
    for(i = 1; i <= a[0]; ++i){
        for(int j = 0; j < v; ++j){
            cur[j] += aa[a[i]][j];
        }
    }
    for(i = 0; i < v; ++i){
        if(cur[i] < vv[i]) break;
    }
    if(i == v){
        if(w < ans[0]){
            /*
            for(int i = 1; i <= a[0]; ++i){
                cout << a[i] + 1 << ' ';
            }
            cout << endl;
            */
            for(i = 0; i <= a[0]; ++i){
                ans[i] = a[i];
            }
            return;
        }
    }
    for(int i = n + 1; i < g; ++i){
        ++a[0];
        a[a[0]] = i;
        dfs(i, w + 1, a);
        --a[0];
    }
}

int main() {
    ofstream fout ("holstein.out");
    ifstream fin ("holstein.in");
    int i, j, k, t, n, s, c, w, q;

    fin >> v;
    for(i = 0; i < v; ++i){
        fin >> vv[i];
    }
    fin >> g;
    for(i = 0; i < g; ++i){
        for(j = 0; j < v; ++j){
            fin >> aa[i][j];
        }
    }
    ans[0] = INF;
    for(i = 0; i < g; ++i){
        a[0] = 1;
        a[1] = i;
        dfs(i, 1, a);
    }
    fout << ans[0];
    for(i = 1; i <= ans[0]; ++i){
        fout << ' ' << ans[i] + 1;
    }
    fout << endl;

    fin.close();
    fout.close();
    return 0;
}

 

转载于:https://www.cnblogs.com/wushuaiyi/p/4291898.html

相关文章:

  • 易经读书笔记16 雷地豫
  • 【MM系列】MB1A MB1B MB1C MB11 MIGO的区别解析
  • tf.nn.conv2d 卷积
  • IE6、IE7兼容querySelectorAll和querySelector方法-最终版本
  • 【Linux】Shell批量修改文件名
  • MySQL 查询当天、本周,本月、上一个月的数据
  • NHibernate3.2+Asp.net MVC3+Extjs 4.0.2项目实践(五):Extjs树形导航菜单
  • 利用指针间隔的输出字符串中的字符
  • Java中Httpsession是如何实现的?
  • 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
  • 洛谷 P1616 疯狂的采药
  • 【BW系列】SAP 讲讲BW/4 HANA和BW on HANA的区别
  • Shell的一些基本概念
  • 剑指Offer——二叉搜索树的第K个节点
  • python 排序 桶排序
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Angular Elements 及其运作原理
  • es6(二):字符串的扩展
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java应用性能调优
  • js中的正则表达式入门
  • JS字符串转数字方法总结
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • vagrant 添加本地 box 安装 laravel homestead
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 王永庆:技术创新改变教育未来
  • 系统认识JavaScript正则表达式
  • 你对linux中grep命令知道多少?
  • PostgreSQL之连接数修改
  • 阿里云ACE认证之理解CDN技术
  • #QT(智能家居界面-界面切换)
  • (2.2w字)前端单元测试之Jest详解篇
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C)一些题4
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (SpringBoot)第二章:Spring创建和使用
  • (第一天)包装对象、作用域、创建对象
  • (二)丶RabbitMQ的六大核心
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @DataRedisTest测试redis从未如此丝滑
  • @property python知乎_Python3基础之:property
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [1204 寻找子串位置] 解题报告
  • [c语言]小课堂 day2
  • [DevEpxress]GridControl 显示Gif动画
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页