Advertisement

蓝桥杯2022年B组省赛

阅读量:

C 刷题统计

复制代码
 #include <iostream>

    
 using namespace std;
    
 int main()
    
 {
    
     long long a,b,n,x,y=0;
    
     cin>>a>>b>>n;
    
     x=n/(5*a+2*b)*7;
    
     n%=(5*a+2*b);
    
     while(n>0){
    
     y++;
    
     if(y<6)n-=a;
    
     else n-=b;
    
     }
    
     cout<<x+y;
    
     return 0;
    
 }
    
    
    
    
    AI写代码

D修建灌木

复制代码
 #include <iostream>

    
 using namespace std;
    
 int main()
    
 {
    
     int n;
    
     cin>>n;
    
     for(int i=1;i<=n;i++){
    
     int x=max(i-1,n-i);
    
     printf("%d\n",2*x);
    
     }
    
     return 0;
    
 }
    
    
    
    
    AI写代码

E X进制减法


复制代码
 #include<iostream>usingnamespacestd;

    
 longlong n,ma,mb,qa[100010],qb[100010],s[100010],sum;
    
 constlonglong P=1e9+7;
    
 intmain(){
    
 	cin>>n;
    
 	cin>>ma;
    
 	for(int i=ma-1;i>=0;i--)
    
 		cin>>qa[i];
    
 	cin>>mb;
    
 	for(int i=mb-1;i>=0;i--)
    
 		cin>>qb[i];
    
 		int nmax=max(ma,mb);
    
 	for(int i=0;i<nmax;i++)
    
 	{
    
 		s[i]=max(qa[i],qb[i])+1;
    
 		if(s[i]<2)s[i]=2;
    
 	}
    
 	longlong suma=0,sumb=0;
    
 	for(int i=ma-1;i>=0;i--)
    
 	suma=(suma*s[i]+qa[i])%P;
    
 	for(int i=mb-1;i>=0;i--)
    
 	sumb=(sumb*s[i]+qb[i])%P;
    
 	longlong sum=(suma-sumb+P)%P;
    
 	printf("%lld",sum);
    
 	return0;
    
 }
    
    
    
    
    AI写代码

F统计子矩阵


复制代码
 #include <iostream>

    
 using namespace std;
    
 long long n,m,k,ans,l,r,nsum;
    
 long long a[505][505],sum[505][505],s[505];
    
 int main()
    
 {
    
     cin>>n>>m>>k;
    
     for(int i=1;i<=n;i++)
    
     for(int j=1;j<=m;j++)
    
     {
    
     cin>>a[i][j];
    
     sum[i][j]=sum[i-1][j]+a[i][j];
    
     }
    
     for(int x=1;x<=n;x++)
    
     for(int y=x;y<=n;y++)
    
     {
    
     for(int j=1;j<=m;j++)
    
     s[j]=sum[y][j]-sum[x-1][j];
    
     l=1;r=1;nsum=0;
    
     for(r=1;r<=m;r++)
    
     {
    
         nsum+=s[r];
    
         if(nsum<=k)
    
         ans+=r-l+1;
    
         else{
    
             while(nsum>k){
    
             nsum-=s[l];
    
             l++;
    
         }
    
         ans+=r-l+1;
    
         }
    
     }
    
     }
    
     cout<<ans<<endl;
    
     return 0;
    
 }
    
    
    
    
    AI写代码

全部评论 (0)

还没有任何评论哟~