设为首页 加入收藏

TOP

icpc live archive6454(状压搜索)
2015-07-20 17:44:41 来源: 作者: 【 】 浏览:7
Tags:icpc live archive6454 搜索

https://icpcarchive.ecs.baylor.edu/external/64/6454.pdf

求最少的灯照亮所有.的区域,但不能照到#号区域,可以照到界限之外,每个.号上只能放一盏灯。灯照的区域为L形,灯在拐角处。大多数灯是这样没错,但有一盏灯比较特殊,可以是L的其他三种旋转体。

状态压缩搜索,状态为放置的灯的状态,(.)点最多只有15个,做好序号可以直接存进一个int型里。

代码(中间有一些比较繁琐):

#include
  
   
#include
   
     #include
    
      #include
      #include
      
        #include
       
         #include
        
          #include
         
           #define LL long long #define MOD 100000007 #define INF 0x3f3f3f3f using namespace std; const int maxn=202; char g[maxn][maxn]; int opp[maxn][maxn]; bool done[100000]; int n,m,k,cnt,sx,sy,point; int dx[]={0,0,-1,1}; int dy[]={-1,1,0,0}; int aimx[20],aimy[20]; struct node { int w,key,stat,no;//w为走的步数,key为可以放灯的点状态,stat为灯照亮的区域(一定是15个点中的嘛),no为还有几个特殊灯没放。 node(int ww=0,int k=0,int st=0,int n=0) { w=ww;key=k;stat=st;no=n; } }; bool is_ill(int x,int y) { return x<0||x>=n||y<0||y>=m; } int bfs() { queue
          
           q; memset(done,0,sizeof done); q.push(node(0,k,k,1)); done[k]=1; while(!q.empty()) { node e=q.front();q.pop(); for(int i=0;i
           
            

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode-Decode Ways 下一篇[UVA]10534 - Wavio Sequence(LI..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)
·Linux常用命令60条( (2025-12-25 00:50:40)
·nginx 监听一个端口 (2025-12-25 00:19:30)
·整个互联网就没有一 (2025-12-25 00:19:27)