十三届蓝桥杯省赛b组
X进制
![在这里插入图片描述](https://img-blog.csdnimg.cn/06f80c08f7f145c29357f0d01e0e94a4.png)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000010,mod=1e9+7;
int w[N],a[N],b[N];
long long mul[N];
int main(){
int n;
cin>>n;
int m1,m2,la,lb;
cin>>m1;
for(int i=m1-1;i>=0;i--){
int x;
cin>>x;
a[i]=x;
}
cin>>m2;
for(int i=m2-1;i>=0;i--){
int x;
cin>>x;
b[i]=x;
}
mul[0]=1;
int l=max(m1,m2);
for(int i=0;i<l;i++){
int p=max(2,a[i]+1);
p=max(p,b[i]+1);
w[i]=p;
if(i>0) mul[i]=(mul[i-1]*w[i-1])%mod;
}
long long A=0,B=0;
for(int i=0;i<m1;i++){
A=(A+a[i]*mul[i])%mod;
}
for(int i=0;i<m2;i++)
B=(B+b[i]*mul[i])%mod;
cout<<(long long)(A-B+mod)%mod;
return 0;
}
统计子矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/cffcd7e366dd4213bbd0546164aaf350.png)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000;
long long a[N][N],s[N][N];
int n,m,k;
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
long long ans=0;
for(int i=1;i<=m;i++)
for(int j=i;j<=m;j++)
for(int y=1,t=1;t<=n;t++){
while(y<=t&&s[t][j]-s[t][i-1]-s[y-1][j]+s[y-1][i-1]>k)
y++;
if(y<=t) ans+=t-y+1;
}
cout<<ans;
return 0;
}
积木画
![在这里插入图片描述](https://img-blog.csdnimg.cn/bb7629496f984bcfbbdb726736701f71.png)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10,mod=1e9+7;
long long f[3][4];
int main(){
int n;
cin>>n;
f[1][0]=1;
f[1][1]=2;
f[1][2]=1;
for(int i=2;i<=n;i++){
f[i&1][0]=(f[i-1&1][0]+f[i-1&1][2])%mod;
f[i&1][1]=(f[i-1&1][0]*2+f[i-1&1][1])%mod;
f[i&1][2]=(f[i-1&1][0]+f[i-1&1][1])%mod;
}
cout<<f[n&1][0];
return 0;
}
扫雷