BAPC2014 Bamp;amp;HUNNU11582:Button Bashing(BFS)
题意:
给出n,m,代表微波炉有n个button,要求达到总时间为m
然后给出n个数。代表n个button能添加的时间,问最少几步,可以使得按出的总时间大于等于要求的时间,而且相差最小
输出最小的步数与相差的最小值
要求,当总时间小于0时。时间为0,大于3600时,时间为3600
思路:
直接暴力BFS。用VIS记录步数
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <bitset>
#include <algorithm>
#include <climits>
using namespace std;#define ls 2*i
#define rs 2*i+1
#define UP(i,x,y) for(i=x;i<=y;i++)
#define DOWN(i,x,y) for(i=x;i>=y;i--)
#define MEM(a,x) memset(a,x,sizeof(a))
#define W(a) while(a)
#define gcd(a,b) __gcd(a,b)
#define LL long long
#define ULL unsigned long long
#define N 100005
#define INF 0x3f3f3f3f
#define EXP 1e-8
#define rank rank1
const int mod = 1000000007;int t,n,sum;
int a[20];
int vis[N];int main()
{int i,j,k;scanf("%d",&t);while(t--){scanf("%d%d",&n,&sum);for(i = 0; i<n; i++)scanf("%d",&a[i]);MEM(vis,INF);queue<int> Q;Q.push(0);vis[0] = 0;while(!Q.empty()){int x = Q.front();Q.pop();for(i = 0; i<n; i++){int next = x+a[i];if(next<0) next = 0;if(next>3600) next = 3600;if(vis[next]<=vis[x]+1) continue;vis[next] = vis[x]+1;Q.push(next);}}for(i = sum; i<=3600; i++){if(vis[i]!=INF){break;}}printf("%d %d\n",vis[i],i-sum);}return 0;
}
转载于:https://www.cnblogs.com/wzzkaifa/p/6971329.html
BAPC2014 Bamp;amp;HUNNU11582:Button Bashing(BFS)相关推荐
- 翻译:职业游戏玩家的生活是什么样的?The life of a pro-gamer
分享一篇很有趣的文章:职业游戏玩家的生活是什么样的?The life of a pro-gamer 这是BBC随身英语Take Away English最新发布的一篇文章,分享了职业电竞玩家的日常,喜 ...
- 【CodeForces - 520B】Two Buttons (bfs或dp或时光倒流,trick)
题干: Vasya has found a strange device. On the front panel of a device there are: a red button, a blue ...
- HDU-ACM程序设计——BFS(宽度优先搜索)
我先讲讲自己对BFS的看法吧.对一个二叉树来说,宽度优先的意思就是遍历树的时候先一边到另一边(左右)再从上到下. 比如这棵二叉树宽度优先遍历得到5 1 72 4 6 3很明显,这里出现了三 ...
- Codeforces 676D Theseus and labyrinth 模拟+bfs
D. Theseus and labyrinth time limit per test 3 seconds memory limit per test 256 megabytes input sta ...
- 深搜广搜专题【DFS】【BFS】
深搜广搜专题 又是一年专题时,这次的专题是BFS和DFS,我们刚加入acm时的噩梦,然而现在已经写起来很舒服了(OS:那你还A不出题?) BFS和DFS都是通过对所有的点进行遍历来得到结果的,是一种比 ...
- HDU-1459.非常可乐(BFS )
这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两 ...
- Android UI 统一修改Button控件的样式,以及其它系统控件的默认样式
先介绍下修改原理:首先打开位于android.widget包下面的Button.java文件,这里有一句关键的代码如下: public Button(Context context, Attribut ...
- HDU1548:A strange lift(Dijkstra或BFS)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1548 题意:电梯每层有一个数,例如第n层有个数k, 那么这一层只能上k层或下k层,但是不能低于一层或高 ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
最新文章
- 如何使用 DSL 实现 DDD 的快速落地
- python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
- mac terminal常用命令接触
- markdown 自用笔记
- 生活中常见物联网实例_物联网网关常见问题解答(一)
- C++ union 公共体
- 【转载】漏洞 CNVD-2017-36682 相关公告以及 JavaScript / 安卓开发者须知
- SNMP学习(2)——SNMP实战
- java Http请求工具类【post/get】
- proteus仿真+keil——>制作流水灯
- 软件测试之独步武林系列(一)
- vim的设置文档【我的】
- 测试环境Hosts设置
- Android 蓝牙 HFP sco 和esco链路的异同分析
- 匈牙利算法编程c语言,华为oj之素数伴侣---匈牙利算法
- 网卡VXLAN的offload技术介绍
- Spring之IOC自动装配
- 在贵州大数据峰会上,马云再次语出惊人!
- BaiduMap---百度地图官方Demo之OpenGL绘制功能(介绍如何使用OpenGL绘制在地图中进行绘制)
- 计算机密码忘记旗舰版7,电脑密码忘了怎么办win7旗舰版_w7旗舰版笔记本开机密码忘了如何解决...
热门文章
- 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate
- linux vi 强制退出_linux的编辑大法
- php验证用户名密码是否为空,【后端开发】php验证用户名密码是否为空
- tightvnc viewer 传文件_TightVNC中文版下载_TightVNC viewer(远程控制软件)简体中文版下载【32位|64位】-华军软件园...
- 自学了python基础英语_Python自学路线图之Python基础自学
- bde oracle 商友的流程_bde oracle 商友的流程_BDE动态连接Oracle数据库
- python多久更新一次_Python Tkinter,每秒钟更新一次
- 数字断路器获得商用认证
- Java 启动线程并保持
- 关于邮件服务器的原理