社区讨论

有大佬可以看下错在哪里吗,0分,本地跑例子没什么问题。

P2670[NOIP 2015 普及组] 扫雷游戏参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo7u96uj
此快照首次捕获于
2023/10/27 07:51
2 年前
此快照最后确认于
2023/10/27 07:51
2 年前
查看原帖
package main
import "fmt"
func main() { n, m := 0, 0 fmt.Scanf("%d", &n) fmt.Scanf("%d", &m) bys := make([][]byte, n) for i := 0; i < n; i++ { bys[i] = make([]byte, m) } fmt.Scanln() for i := 0; i < n; i++ { for j := 0; j < m; j++ { fmt.Scanf("%c", &bys[i][j]) } fmt.Scanln() }
CPP
idx := [][]int{{-1, -1}, {-1, 0}, {0, -1}, {1, -1}, {-1, 1}, {1, 1}, {1, 0}, {0, 1}}

check := func(i, j int) bool {
	if i >= 0 && i < n && j >= 0 && j < m {
		return true
	}
	return false
}

cnt := func(i, j int) int {
	sum := 0
	for _, v := range idx {
		l, r := v[0]+i, v[1]+j
		if check(l, r) && bys[l][r] == '*' {
			sum++
		}
	}
	return sum
}

for i := 0; i < n; i++ {
	for j := 0; j < m; j++ {
		if bys[i][j] == '?' {
			bys[i][j] = byte(cnt(i, j) + '0')
		}
	}
}

for i := 0; i < n; i++ {
	for j := 0; j < m; j++ {
		fmt.Printf("%c", bys[i][j])
	}
	fmt.Println()
}
}

回复

2 条回复,欢迎继续交流。

正在加载回复...