zihuyishi 最近的时间轴更新
zihuyishi

zihuyishi

V2EX 第 123296 号会员,加入于 2015-06-21 13:44:31 +08:00
zihuyishi 最近回复了
@zihuyishi 额,不好意思说错了,是广搜,纯暴力跑。
我写了一个深搜,算的 13 步能跑完,不知道对不对
```golang
package main

import "fmt"

const N = 5

type Status [N][N]bool

func (s Status) Click(x, y int) Status {
s[x][y] = !s[x][y]
if x > 0 {
s[x-1][y] = !s[x-1][y]
}
if x < N-1 {
s[x+1][y] = !s[x+1][y]
}
if y > 0 {
s[x][y-1] = !s[x][y-1]
}
if y < N-1 {
s[x][y+1] = !s[x][y+1]
}
return s
}

func (s Status) IsAllOn() bool {
for i := 0; i < N; i++ {
for j := 0; j < N; j++ {
if !s[i][j] {
return false
}
}
}
return true
}

func (s Status) Hash() int64 {
h := int64(0)
for i := 0; i < N; i++ {
for j := 0; j < N; j++ {
h = h * 2
if s[i][j] {
h += 1
}
}
}
return h
}

type Node struct {
Status Status
Step int
}

func search(s Status) (int, bool) {
searched := make(map[int64]bool)
queue := make([]Node, 0)
queue = append(queue, Node{Status: s, Step: 0})
searched[s.Hash()] = true
for len(queue) > 0 {
cur := queue[0]
queue = queue[1:]
if cur.Status.IsAllOn() {
return cur.Step, true
}
for i := 0; i < N; i++ {
for j := 0; j < N; j++ {
next := cur.Status.Click(i, j)
if next.IsAllOn() {
return cur.Step + 1, true
}
if !searched[next.Hash()] {
queue = append(queue, Node{Status: next, Step: cur.Step + 1})
searched[next.Hash()] = true
}
}
}
}
return 0, false
}

func main() {
s := Status{
{false, true, false, false, false},
{true, true, true, false, false},
{false, true, false, true, false},
{false, false, true, true, true},
{false, false, false, true, false},
}
step, ok := search(s)
fmt.Println(step, ok)
}
```
17 天前
回复了 htxy1985 创建的主题 程序员 求一款比较成熟的 golang 服务端热更方案
根据网游的经验,就是先上更新的服务器,不给旧的导流量,然后在 deadline 时把旧的切掉。
实际操作就是 k8s 上新 pod ,然后下旧 pod 。
25 天前
回复了 tangler 创建的主题 游戏 POE2 终于进终局了,谈谈感受
他异界这个一命模式是真的恶心人。然后清图还要经常跑回头路,地图又大。明明 1 代给 6 个门的异界模式挺好的,不知道为啥非要走回头路。很怀疑是设计师玩最后纪元玩多了
29 天前
回复了 pinyoung 创建的主题 上海 v 友们,要不要入沪户
我也是河北的落户上海,总归再差也比河北好哈哈。这个不是要看你以后去哪里发展么,比如在上海的话,落个户口起码不用在失业的时候担心社保断了。
这不就是朝三暮四,取消了公摊单价上来了不还是一样。
为啥我感觉邯郸很贵但是平均工资还那么低呢。新世纪买个衣服比我在上海买衣服都贵
39 天前
回复了 Canglin 创建的主题 问与答 请教大家一个公积金贷款的问题
上海很难受,余额多的选年冲平时压力还大。不过后来我也想通了,最近这个经济形势搞不好就要失业,留着公积金余额起码能缓冲很久
你参考下音乐软件怎么实现的,把自己伪装成音乐 app 常驻后台就行了。以前很多流氓 app 也是这么实现的,所以就会出现你听着歌打开这个软件歌停了
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2901 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 05:43 · PVG 13:43 · LAX 21:43 · JFK 00:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.