博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1489 蜥蜴和地下室
阅读量:5892 次
发布时间:2019-06-19

本文共 1594 字,大约阅读时间需要 5 分钟。

1 #include
2 using namespace std; 3 const int INF =10000000; 4 int n,a,b; 5 int h[12]; 6 int res; 7 int res_dp=INF; 8 void dp(int N,int ans) 9 {10 if (N==n-1)11 {12 res_dp=res_dp > ans ? ans : res_dp;13 return ; 14 } 15 if (h[N-1]<0)16 {dp(N+1,ans);}17 int time=0;18 if (h[N-1]>=0)19 {20 time=h[N-1]/b+1;21 h[N-1] -=time*b;22 h[N] -=time*a;23 h[N+1] -=time*b;24 dp(N+1,ans+time);25 h[N-1]+=time*b;26 h[N] +=time*a;27 h[N+1] +=time*b; 28 }29 int time_=h[N]/a+1;30 31 if (h[N]>=0&&time_>time)32 {33 for (int i=time+1;i<=time_;i++)34 {35 h[N-1]-=b*i;36 h[N] -=a*i;37 h[N+1]-=b*i;38 dp(N+1,ans+i);39 h[N-1] +=b*i;40 h[N] +=a*i;41 h[N+1] +=b*i;42 } 43 }44 return ;45 }46 int main()47 {48 cin>>n>>a>>b;49 for (int i=0;i
>h[i];52 }53 int time1 = h[0]/b+1;54 h[0]-=b*time1;55 h[1]-=a*time1;56 h[2]-=b*time1;57 res+=time1;58 if (h[n-1]>=0){59 int time2 = h[n-1]/b+1;60 h[n-1]-=b*time2;61 h[n-2]-=b*time2;62 h[n-3]-=b*time2;63 res+=time2 ;64 }65 dp(1,0);66 if (res_dp==INF)res_dp=0;67 //cout<
<

 弱鸡的思路:优先打爆最两边,做到消耗最小。然后分两种类型打爆一个点:1、通过本点打爆上一个点,然后继续。2、通过本点打爆上一点且对本点打击到爆。

就是将所有的可能发生的情况都走一遍。(代码是借鉴的)。记得看了下知乎,DFS,BFS是最好掌握,最简单的方法。然后又看了下自己做题,脑子一团浆糊。心好凉啊感觉真的是菜到爆炸。

转载于:https://www.cnblogs.com/biubiuWham/p/10031471.html

你可能感兴趣的文章
wordpress wp_head()函数 浏览器顶部 空白28px 解决办法
查看>>
读书笔记:改变人心的技巧
查看>>
MATLAB实现频数表——hist的使用
查看>>
iphone 线程 NSCondition NSThread
查看>>
NSURLConnection下载文件并显示进度(HEAD)
查看>>
在Firefox中使用超级Bookmarklet
查看>>
Content type and column用法示例代码来自SharePoint会议
查看>>
设计模式:外观模式(Façade Pattern)
查看>>
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
C语言字节对齐
查看>>
主域控制器的安装与配置步骤与方法
查看>>
调整Flash与div的位置关系
查看>>
Objective - c 创建二维数组
查看>>
〖Android〗/system/etc/fallback_fonts.xml
查看>>
30个美丽干净的,帮助用户专注于内容的网站设计
查看>>
高级Bash脚本编程指南(27):文本处理命令(三)
查看>>
JavaScript---事件
查看>>
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>