备战蓝桥杯 Day2 枚举 Day3 进制转换

Day2 枚举

1.要点

枚举要细致,考虑所有情况,一般为填空题,根据题目选择手算还是机算

Day3 进制转换

进制转换

1.要点

1.任意k进制转换为十进制

输入字符串得到某个k进制数组a(从1开始,长度为n)

复制代码
ll y=0;
for(int i=1;i<=n;i++){
	y=y*k+a[i];
}
cout<<y<<"\n";

或直接将k进制数x变成10进制数y(核心product)

复制代码
ll y=0;
int product=1;//product在循环中不断乘k,1,k,k^2
while(x){
	y=y+(x%10)*product;//x%10获得个位数字
	x/=10;
	product*=k;
}
2.十进制转换为任意k进制
复制代码
ll x;cin>>x;
int cnt=0;
while(x){
	a[++cnt]=x%k;
	x/=k;
}
reverse(a+1,a+1+cnt);//注意要翻转一下,使高位在1的位置,且reverse左开右闭

3.填空题巧法

手算或用pow(a,b) a^b函数

2.刷题

2022 X 进制减法

难点:

(1)X 进制是一种很神奇的进制, 因为其每一数位的进制并不固定!例如说某 种 XX 进制数, 最低数位为二进制, 第二数位为十进制, 第三数位为八进制, 则 XX 进制数 321 转换为十进制数为 65 。

理解:1权重为1,2权重为2*1,3权重为10*2*1,所有1*1+2*2*1+3*10*2*1=65(不是正常的次方了,就是相乘,进制本质 )

(2)

  1. (a + b) % p = (a % p + b % p) % p

  2. (a - b) % p = (a % p - b % p) % p

  3. (a * b) % p = (a % p * b % p) % p

  4. a ^ b % p = ((a % p)^b) % p
    所以每一步都要取余1000000007,不然得不了满分
    (3)尽量不要涉及数组i+1,最好直接用i
    (4)代码:

    #include <bits/stdc++.h>

    using namespace std;

    typedef long long ll;
    const int NN=1e5+9;
    const ll mod=1000000007;
    int a[NN],b[NN];

    int main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int N,Ma,Mb;
    cin>>N>>Ma;
    for(int i=Ma;i>=1;i--) cin>>a[i];
    cin>>Mb;
    for(int i=Mb;i>=1;i--) cin>>b[i];
    ll res=0,weight=1;
    int jinzhi=2;
    for(int i=1;i<=Ma;i++){
    jinzhi=max(2,max(a[i],b[i])+1);
    //记得都要除以mod
    res=(res+(a[i]-b[i])weight)%mod;
    weight=(weight
    jinzhi)%mod;
    }
    res%=mod;
    cout<<res;
    return 0;
    }

相关推荐
刚入门的大一新生20 分钟前
C++初阶-string类的模拟实现与改进
开发语言·c++
CM莫问20 分钟前
<论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐
人工智能·算法·大模型·推荐算法·受限生成
小冯的编程学习之路1 小时前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman
康谋自动驾驶1 小时前
康谋分享 | 自动驾驶仿真进入“标准时代”:aiSim全面对接ASAM OpenX
人工智能·科技·算法·机器学习·自动驾驶·汽车
C++ 老炮儿的技术栈2 小时前
什么是函数重载?为什么 C 不支持函数重载,而 C++能支持函数重载?
c语言·开发语言·c++·qt·算法
猪八戒1.02 小时前
C++ 回调函数和Lambda表达式
c++
yychen_java3 小时前
R-tree详解
java·算法·r-tree
源远流长jerry3 小时前
匿名函数lambda、STL与正则表达式
c++
MarkHard1233 小时前
Leetcode (力扣)做题记录 hot100(62,64,287,108)
算法·leetcode·职场和发展
tan180°4 小时前
Linux进程信号处理(26)
linux·c++·vscode·后端·信号处理