URAL 1152. False Mirrors (记忆化搜索 状压DP)
题意 : 每一颗子弹破坏了三个邻近的阳台。(第N个阳台是与第1个相邻)射击后后的生存的怪物都对主角造成伤害- 如此,直到所有的怪物被消灭,求怎样射击才能受到最少伤害。
思路 : 状压,数据不是很大,可以爆一爆,或者DFS下去就行,枚举每一种状态。
//
#include <cstdio>
#include <cstring>
#include <iostream>
#define oo 1 << 28
using namespace std ; int a[],dp[ << ] ;
bool vis[ << ] ;
int n ; int DFS(int sta,int sum)
{
if(vis[sta]) return dp[sta] ;
vis[sta] = true ;
if(sta == ) return dp[sta] = ;
int ans = oo ;
for(int i = ; i < n ; i++)
{
int newsta = sta ,newsum = sum ;
for(int j = i- ; j <= i+ ; j++)
{
int k = j ;
if(j == -) k = n- ;
else if(j == n) k = ;
if(newsta & ( << k))
{
newsta -= ( << k) ;
newsum -= a[k] ;
}
}
if(newsta != sta)
ans = min(ans,DFS(newsta,newsum)+newsum) ;
}
return dp[sta] = ans ;
}
int main()
{
while(~scanf("%d",&n))
{
int sum = ;
memset(a,,sizeof(a)) ;
memset(dp,,sizeof(dp)) ;
memset(vis,false,sizeof(vis)) ;
for(int i = ; i < n ; i++)
{
scanf("%d",&a[i]) ;
sum += a[i] ;
}
dp[( << n)-] = ;
printf("%d\n",DFS(( << n)-,sum)) ;
}
return ;
}
URAL 1152. False Mirrors (记忆化搜索 状压DP)的更多相关文章
- Codeforces Gym 191033 E. Explosion Exploit (记忆化搜索+状压)
E. Explosion Exploit time limit per test 2.0 s memory limit per test 256 MB input standard input out ...
- lightoj 1158 - Anagram Division(记忆化搜索+状压)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1158 题解:这题看起来就像是记忆搜索,由于s很少最多就10位所以可以考虑用状压 ...
- DFS水题 URAL 1152 False Mirrors
题目传送门 /* 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝吧 回溯写挫 ...
- Ural 1152 False Mirrors(状压DP)
题目地址:space=1&num=1152">Ural 1152 初学状压DP,原来状压仅仅是用到了个位运算.. 非常水的状压DP.注意四则运算的优先级是高于位运算的..也就是 ...
- ural 1152. False Mirrors
1152. False Mirrors Time limit: 2.0 secondMemory limit: 64 MB Background We wandered in the labyrint ...
- 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)
链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
- 【P2476】着色方案(记忆化搜索+特殊的DP数组)
这个题代码难度几乎为0,然而思维难度对于蒟蒻来说简直是突破天际啊!首先我思考的是这个油漆的种类只有15种,是不是可以像一道叫做8数码难题的东西暴力15维数组呢..计算发现不可以....空间会直接让你学 ...
- NOIP2017宝藏 [搜索/状压dp]
NOIP2017 宝藏 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘 ...
- URAL 1152. False Mirrors(DP)
题目链接 理解了题意之后,就不难了..状态压缩+暴力. #include <cstring> #include <cstdio> #include <string> ...
随机推荐
- quartz集群调度机制调研及源码分析---转载
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言 quratz是目前最为成熟,使用最广泛的j ...
- Android 文档之viewAnimator
一.结构 public class ViewAnimator extends FrameLayout java.lang.Object android.view.View android.view.V ...
- Bing Speech Recognition 标记
Bing Speech Services Bing Bing Speech Services provide speech capabilities for Windows and Windows ...
- JavaScript AJAX stream 流式显示
当使用AJAX进行信息交互的时候,如果服务器返回的信息比较大,那么相对于传送完成之后的统一显示,流式显示就比较友好了. 流式实现 原理就是设置定时器,定时的查看AJAX对象的状态并更新内容,如果传 ...
- 第三方登录开发-Facebook
这次这个项目要分别可以使用新浪微博,qq互联以及Facebook和Twitter授权登录 facebook目前只支持oauth2技术,个人理解其工作流程是当用户想访问当前网站,却不想注册账号,此时当前 ...
- mui开发
http://blog.csdn.net/sunhuaqiang1/article/details/46848005
- 通过HTML5实现发送声音
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- IOS常用加密Encryption
NSString+Encryption.h // // NSString+Encryption.h // haochang // // Created by Administrator on 14-4 ...
- 查看python selenium的api
打开命令行工具,doc中输入: python -m pydoc -p 然后在浏览器中访问http://localhost:4567/,此时应该可以看到python中所有的Modules 按ctrl+f ...
- UVALive - 6575 Odd and Even Zeroes 数位dp+找规律
题目链接: http://acm.hust.edu.cn/vjudge/problem/48419 Odd and Even Zeroes Time Limit: 3000MS 问题描述 In mat ...