USACO1.6 Healthy Holsteins【dfs/bfs 爆搜】
饲料种数只有15 枚举每种选或不选一共也就只有$2^{15}=32768$ 爆搜可过
觉得bfs要快一些? 但是dfs更方便处理字典序 只需要顺序遍历并且先搞选它的情况就可以了
而且在这种规模的数据下我们也不需要它跑得很快对吧(笑)
/*
ID: Starry21
LANG: C++
TASK: holstein
*/
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
#define N 30
#define ll long long
#define INF 0x3f3f3f3f
int n,nd[N],g,aln[N][N];/*afternative*/
int cv[N];/*chosen value*/
bool cs[N]/*chosen*/,res[N];
int ans=INF;
bool check()
{
for(int i=;i<=n;i++)
if(cv[i]<nd[i])
return ;
return ;
}
void dfs(int k,int num)
{
//被注释的部分可以互相替代吧 觉得没被注释的要快一些 相当于剪枝吧
/*if(k>g)
{
if(check()&&num<ans)
{
ans=num;
memcpy(res,cs,sizeof(cs));
}
return ;
}*/
if(check())
{
if(num<ans)
{
ans=num;
memcpy(res,cs,sizeof(cs));
}
return ;
}
if(k>g) return ; for(int i=;i<=n;i++)
cv[i]+=aln[k][i];
cs[k]=;
dfs(k+,num+);
for(int i=;i<=n;i++)
cv[i]-=aln[k][i];
cs[k]=;
dfs(k+,num);
return ;
}
int main()
{
//freopen("holstein.in","r",stdin);
//freopen("holstein.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&nd[i]);
scanf("%d",&g);
for(int i=;i<=g;i++)
for(int j=;j<=n;j++)
scanf("%d",&aln[i][j]);
dfs(,);
printf("%d",ans);
for(int i=;i<=g;i++)
if(res[i]) printf(" %d",i);
puts("");
return ;
}
Code
USACO1.6 Healthy Holsteins【dfs/bfs 爆搜】的更多相关文章
- USACO Healthy Holsteins DFS
使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合 数据规模不大,暴力过去最多也就是2^15 = 23768种情况 所以就暴力咯,不过还是Debug了一会 Sou ...
- HDU 4403 A very hard Aoshu problem(dfs爆搜)
http://acm.hdu.edu.cn/showproblem.php?pid=4403 题意: 给出一串数字,在里面添加一个等号和多个+号,使得等式成立,问有多少种不同的式子. 思路: 数据量比 ...
- 2015 UESTC 搜索专题C题 基爷与加法等式 爆搜DFS
基爷与加法等式 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Desc ...
- 【BZOJ-1853&2393】幸运数字&Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1817 Solved: 665[Submit][Status] ...
- 【DFS/BFS】NYOJ-58-最少步数(迷宫最短路径问题)
[题目链接:NYOJ-58] 经典的搜索问题,想必这题用广搜的会比较多,所以我首先使的也是广搜,但其实深搜同样也是可以的. 不考虑剪枝的话,两种方法实践消耗相同,但是深搜相比广搜内存低一点. 我想,因 ...
- 【 POJ - 1204 Word Puzzles】(Trie+爆搜|AC自动机)
Word Puzzles Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10782 Accepted: 4076 Special ...
- hdu5323 Solve this interesting problem(爆搜)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Solve this interesting problem Time Limit ...
- hdu4536-XCOM Enemy Unknown(爆搜)
XCOM-Enemy Unknown是一款很好玩很经典的策略游戏. 在游戏中,由于未知的敌人--外星人入侵,你团结了世界各大国家进行抵抗.随着游戏进展,会有很多的外星人进攻事件.每次进攻外星人会选择3 ...
- ID(dfs+bfs)-hdu-4127-Flood-it!
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4127 题目意思: 给n*n的方格,每个格子有一种颜色(0~5),每次可以选择一种颜色,使得和左上角相 ...
随机推荐
- CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)
使用CSS3 选择器——笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...
- web前端_js
在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS规则解释,遇到Script标签时,按照JavaScr ...
- echarts 图形图例文字太长如何解决
文章来源: https://blog.csdn.net/csm17805987903/article/details/85111835 legend 文字很多的时候对文字做裁剪并且开启 tooltip ...
- 计算机网络(十二),Socket简介
目录 1.Socket简介 2.Socket工作原理 十二.Socket简介 1.Socket简介 2.Socket工作原理
- javascript中的原型和原型链(二)
原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性construct ...
- 51 Nod 1134 最长递增子序列(经典问题回顾)
1134 最长递增子序列 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元 ...
- 函数返回指针类型(strchr函数)
#include<stdio.h> #include<string.h> char *mystrchr(char *s,char c) { while(*s) { if(*s ...
- ArrayList类源码浅析(三)
1.看一个示例 运行上述代码,抛出一个异常: 这是一个典型的并发修改异常,如果把上述代码中的125行注释,把126行打开,运行就能通过了: 原因: 1)因为在迭代的时候,使用的是Itr类的对象,在调用 ...
- 自定义Chrome的console(样式、打印图片、开关)
1.常用console类型 console.log() 常规打印 console.warn() 打印警告信息 console.error() 打印错误信息 console.time() 和 conso ...
- 在jsp中出现:Syntax error, insert "Finally" to complete TryStatement错误
在jsp中出现:Syntax error, insert "Finally" to complete TryStatement错误 可能括号不匹配{}