关注
贴一下第二题求骰子和的我的解法,用动态规划做。但不知道为啥最后case通过率是98%, 可能哪里没考虑到
package main
import (
"fmt"
)
func main() {
n:=0
k:=0
fmt.Scan(&n,&k)
if (n==0 || k==0){
fmt.Println(0)
return
}
arr := make([][14][6]int, k+1) // 用了前0-n个骰子, 最后一个骰子的某个数朝上,用动态规划的思想
data := make([][6]int, n) //
for i:=0; i<n; i++{
fmt.Scanln(&data[i][0], &data[i][1], &data[i][2], &data[i][3], &data[i][4], &data[i][5])
// fmt.Println(data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], data[i][5])
}
for i:=1; i<=k; i++{
for x:=0; x<6; x++ {
if data[0][x] == i {
arr[data[0][x]][0][x] = 1
// fmt.Println(arr[data[0][x]][0][x])
}
}
for j:=1; j<n; j++{
for m:=0; m<6; m++ {
if data[j][m] >= i {
arr[i][j][m] = 0
}
}
}
}
for i:=1; i<=k; i++ {
for j:=1; j<n; j++ {
for p:=0; p<6; p++ {
for q:=0; q<6; q++{
if i>=data[j][p] {
arr[i][j][p] += arr[i-data[j][p]][j-1][q]
}
}
}
}
}
sum := 0
for i:=0; i<6; i++ {
sum += arr[k][n-1][i]
}
fmt.Println(sum)
}
查看原帖
点赞 1
相关推荐
2025-12-19 21:53
门头沟学院 Java
想做OpenGL:不要一来就把自己定位这么低吧,把大厂当成目标,不断去学技术做项目,最后你至少能学到能找到中小厂的技术水平,你一上来就找这种两千块还要前后端都会的,其实对你用处不会很大,真去了也是打杂 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
6956次浏览 104人参与
# 机械人避雷的岗位/公司 #
41980次浏览 280人参与
# 程序员找工作至少要刷多少题? #
12863次浏览 201人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1151次浏览 39人参与
# 我现在比当时_,你想录用我吗 #
5733次浏览 89人参与
# 过年最难忘的一件事 #
23058次浏览 174人参与
# 你最满意的offer薪资是哪家公司? #
69498次浏览 349人参与
# 为了减少AI幻觉,你注入过哪些设定? #
2624次浏览 97人参与
# 牛客AI体验站 #
4784次浏览 143人参与
# AI Coding的使用心得 #
3484次浏览 91人参与
# 找工作的破防时刻 #
253111次浏览 1960人参与
# 刚入职的你踩过哪些坑 #
5338次浏览 113人参与
# 论秋招对个人心气的改变 #
7333次浏览 130人参与
# 一张图晒一下你的AI员工 #
3599次浏览 82人参与
# 关于春招/暑期实习,你想知道哪些信息? #
5366次浏览 98人参与
# 黄金这个事上,你学到了什么 #
1279次浏览 41人参与
# 机械人你知道哪些单休企业 #
85464次浏览 428人参与
# 程序员能干到多少岁? #
6767次浏览 104人参与
# 晒晒你司的新年福利 #
5538次浏览 89人参与
# 关于提前批我想问 #
267471次浏览 2307人参与