百度笔试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 辽宁

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
都送什么礼物吗?如果送的话,价格大概都是多少?辛苦大家给个参考啦!
牛客73617529...:要送就送那种没必要买又很贵的,假设一个打瓦的显示屏 鼠标 键盘都很贵,你送这些突出不了价值,直接送一个很贵的鼠标垫包记住你的。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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