全部评论
贴一下第二题求骰子和的我的解法,用动态规划做。但不知道为啥最后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)
}
a 1.8 是不是基本凉凉了
相关推荐
点赞 评论 收藏
分享
10-16 10:32
东北大学 前端工程师 在校生实习:我觉得平时学校肯定有各种大作业吧。包装一下写项目里。特长那块喧宾夺主了,项目肯定是大头。特长里比如:熟悉vscode,这个感觉不具有吸引性。简要介绍你会什么语言,什么工具等就行了。同26找实习,我是个超级菜鸡😭大家一起加油
点赞 评论 收藏
分享
11-20 13:35
广东白云学院 数据运营 立马来offer:去哪个大厂了啊,其实你选了小公司,遇到不开心的也会后悔没有选择大平台。别美化小公司了,至少大厂有平台,有二次选择的能力
点赞 评论 收藏
分享