百度笔试24届暑期实习招聘研发A卷

本来想找Go的,结果全是C++的题。。。编程题都没过,1,2题感觉思路是对的,不知道哪写的有问题,第3题感觉应该用线段树维护几个值?各位1,2题A了的能帮我看看吗?
第一题
遍历一遍数组,把相同颜色累加求和,另外乘以前面不同颜色的和并加到最终结果上,过程不断取模。
func main() {
mod := big.NewInt(int64(1e9 + 7))
var n int
var x int64
fmt.Scanln(&n)
nums := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Scan(&x)
nums[i] = x
}
input := bufio.NewScanner(os.Stdin)
input.Scan()
str := input.Text()
fmt.Println(str)
ans := big.NewInt(int64(0))
sumR := big.NewInt(int64(0))
sumB := big.NewInt(int64(0))
for i, s := range str {
if s == 'R' {
tmp := big.NewInt(0)
tmp.SetInt64(nums[i])
sumR.Add(sumR, tmp)
sumR.Mod(sumR, mod)
tmp.Mul(tmp, sumB)
tmp.Mod(tmp, mod)
ans.Add(ans, tmp)
ans.Mod(ans, mod)
} else {
tmp := big.NewInt(0)
tmp.SetInt64(nums[i])
sumB.Add(sumB, tmp)
sumB.Mod(sumB, mod)
tmp.Mul(tmp, sumR)
tmp.Mod(tmp, mod)
ans.Add(ans, tmp)
ans.Mod(ans, mod)
}
}
fmt.Println(ans)
}
最开始都没用大数,用int64也是过不了。
全部评论
佬什么时候笔试的?
点赞 回复 分享
发布于 2023-03-29 11:54 辽宁

相关推荐

阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
笑着秋招😊:我一直认为努力有回报是一件很幸福很幸福的事情,恭喜你
点赞 评论 收藏
分享
一天代码十万三:这个学历有中大厂实习也是0面,没办法,斩杀线是这样的
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务