首页 > 其他分享 >蓝桥杯 X进制减法

蓝桥杯 X进制减法

时间:2024-03-19 16:31:47浏览次数:28  
标签:Ma 进制 Mb int ll cin 蓝桥 ans 减法

注意,一定不要给 (A[i] - B[i]) * w 取模,因为它可能是负数!!!

这个错误我检查了俩小时,呜呜呜呜呜呜呜

除此之外这题只要思路对了,难度是比较小的


题目


思路:1.反向输入,因为权重和题目顺序是相反的

           2.B数组的大小要和A一样,因为A长度比较大,或者二者一样长

           3.B初始化值为0,因为缺少的部分要填0,用于后面的相减

           4.每一位的进制数就是max({2 , A[i], B[i]})

           5.每位的权值是前面所有位数进制的积

#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
typedef long long ll;
int main()
{
    int N, Ma, Mb;
    ll ans = 0, w = 1;
    cin >> N >> Ma;
    vector < int > A(Ma);
    for (int i = Ma - 1; i >= 0; i--)
        cin >> A[i];
    cin >> Mb;
    vector < int > B(Ma, 0);
    for (int i = Mb - 1; i >= 0; i--)
        cin >> B[i];
    vector < ll > W(Ma);
    for (int i = 0; i < Ma; i++) {
        W[i] = max({ 2, A[i] + 1, B[i] + 1 });
        if(i != 0)
          w = (w * W[i - 1]) % MOD;
        ans =(ans + (A[i] - B[i]) * w) % MOD;
    }
    cout << ans;
    return 0;
}

标签:Ma,进制,Mb,int,ll,cin,蓝桥,ans,减法
From: https://blog.csdn.net/2401_82949509/article/details/136846365

相关文章

  • 用 滑动窗口 算法 解决 蓝桥杯子矩阵 的运行超时 问题
    这题如果用暴力算法解决,会用到四个for循环。当数据很大时,会超时,无法通过蓝桥杯。如果掌握了二维滑动窗口,会让时间复杂度减少俩个数量级,很好地解决超时的问题。关于滑动窗口算法,如果读者不会的话,建议去哔站看大佬的讲解视频,笔者也是昨天才学的。如果已经会了滑动窗口算法,......
  • P8685 [蓝桥杯 2019 省 A] 外卖店优先级
    这道题虽然难度很低,但是细节不少1.要先处理减,再处理加。因为是先经历了空档期的优先级衰减,然后才有订单带来的优先级提升;先减后加的时候有0这个下限兜底,如果先加后减可能会导致答案偏小。2.减之后和加之后都要check一下,如果in_cache为true,减完之后小于等于三,但是加了以后又上升......
  • 数据库中利用二进制实现多个布尔属性的增删改查
    需求背景业务场景中经常需要一些布尔型的属性来标记数据状态,如果每个属性值都新增一个数据库字段来保存会造成空间上的浪费,在工作中进行建模设计时难免会想到用二进制来节省空间,以整形32位为例,去除最高位的符号位总共可以用来保存31个布尔属性值。实现细节为方便讲解,这里......
  • $k$ 进制 FWT 小记
    上文:FWT快速沃尔什变换概念\(k\)进制的DWT本质上是二进制操作的一个扩展操作。原来的位运算也推广到了\(k\)进制上。\(\text{or}\)卷积定义两个数\(x_{1...k},y_{1...k}\)的\(k\)进制或运算定义为:\(z_i=\max(x_i,y_i)\)。换言之,在每个维度上取\(\max\)。分析......
  • 2024 蓝桥打卡Day15
    洛谷刷题P8752[蓝桥杯2021省B2]特殊年份题目[P8752[蓝桥杯2021省B2]特殊年份](https://www.luogu.com.cn/problem/P8752)题解P8780[蓝桥杯2022省B]刷题统计题目[P8780[蓝桥杯2022省B]刷题统计](https://www.luogu.com.cn/problem/P8780)题解P......
  • 蓝桥杯刷题(十一)
    1.卡片反向思考,看k种卡片可以分给几位同学代码n=int(input())k=1whilek*(k+1)<2*n:k+=1print(k)2.美丽的2代码deff(x)->bool:whilex:ifx%10==2:returnTruex//=10returnFalsecnt=0foriinrange(1,2021):iff(i):......
  • P8626 [蓝桥杯 2015 省 A] 灾后重建
    根号分治之类的思路分析这里就不讲了,主要关注代码细节:#include<iostream>#include<stdio.h>#include<algorithm>#include<vector>#include<string>#include<cmath>#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;co......
  • SWUST OJ 961: 进制转换问题
    题目描述建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。输入输入只有一行,就是十进制整数。输出转换后的二进制数。样例输入10样例输出1010参考程序#include<iostream>usingnamespacestd;#definemaxsize100voidconcersion(intn){ inta[maxsize......
  • 蓝桥杯day4刷题日记
    P8605[蓝桥杯2013国AC]网络寻路思路来源于https://www.luogu.com.cn/article/iat8irsf#include<iostream>usingnamespacestd;intn,m;intq[10010];intv[100010],u[100010];longlongres;intmain(){ cin>>n>>m; for(inti=0;i<m;i++) { cin......
  • 蓝桥杯——344图书管理员
      法一使用取模运算对于每本书的图书编码(bookCode),我们需要判断其是否以读者的需求码结尾。首先,将需求码的长度作为指数,使用Math.pow(10,demandLength)来得到一个以需求码长度为指数的基数。然后,将书的图书编码与这个基数进行取模运算,即bookCode%Math.pow(10,demandLe......