解题思路:
注意事项:
参考代码:
import os
import sys
# 请在此输入您的代码
"""
了解进制的规律,需要注意A>=B
"""
# 输入数据
n=eval(input())
ma=eval(input())
lista=list(map(int,input().split()))
mb=eval(input())
listb=list(map(int,input().split()))
mod=1000000007
# 确定进制
listx=[]
cha=ma-mb
if cha>0:
for i in range(cha):
listx.append(lista[i])
for i in range(cha,ma):
mmax=max(2,max(lista[i],listb[i])+1)
listx.append(mmax)
listx=listx[::-1]
"""
根据观察 需要计算n! 可以采用前缀和的思维
"""
list1=[listx[0]]
for i in range(1,ma-1):
num=listx[i]*list1[i-1]%mod
list1.append(num)
# 完成了前缀操作 进行计算
sum1=0
index1=-1
for i in range(ma-1):
num=lista[i]*list1[index1]%mod
sum1+=num
if i==ma-2:
sum1+=lista[-1]
index1-=1
sum1%=mod
sum2=0
index2=-1
for i in range(mb-1):
num=listb[i]*list1[index2]%mod
sum2+=num
if i==mb-2:
sum2+=listb[-1]
index2-=1
sum2%=mod
# 为了防止sum1-sum2为负数
print((sum1-sum2+mod)%mod)
0.0分
4 人评分
人见人爱A+B (C++代码)浏览:1022 |
C语言程序设计教程(第三版)课后习题8.8 (C++代码)浏览:600 |
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:616 |
C二级辅导-等差数列 (C语言代码)浏览:571 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:591 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1416 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:459 |
本人酷爱递归实现很多问题,这里也是浏览:549 |
陈教主的三角形 (C语言代码)浏览:1140 |
计算质因子 (C语言代码)浏览:696 |