全部评论
感觉是组合排序但是不知道公式
题型看着都很熟悉,但是把题都变了一下。。。。。。。
第一个排列组合,先分配数字a和b的数量,看是否满足那个最美数字,然后再用C(m,n)那个排列组合去求就行了
其实没看懂k大于10咋办
还有那个墙,出口那题,没有人感觉测试用例有问题么
同求大佬们分析思路
问一下,编程题,是记录最高成绩的代码吗。。。还是记录最后一次。。。
第一题背包问题吧a了80%
package main import "fmt" var a, b, k int64 const MOD int64 = 1000000007 func onlyContainAB(s int64) bool { for s != 0 { if s%10 != a && s%10 != b { return false } s = s / 10 } return true } func main() { fmt.Scan(&a, &b, &k) combination := int64(1) ret := int64(0) for t := int64(1); t <= k; t++ { combination = (combination * (k - t + 1) / t) % MOD if onlyContainAB(a*t + (k-t)*b) { ret = (ret + combination) % MOD } } if onlyContainAB(k * b) { ret = (ret + 1) % MOD } fmt.Println(ret) } 不知道哪错了,明明感觉思路都对的
三道题都用来递归,都超时。。。
相关推荐