算法题:笨拙的手指

简介: 题目来源:AcWing2058奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。

题目来源:AcWing2058

奶牛贝茜正在学习如何在不同进制之间转换数字。

但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。

每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。

例如,如果她将数字 14 转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110 或 1111。

贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。

给定贝茜将数字 N 转换为二进制数字以及三进制数字的结果,请确定 N 的正确初始值(十进制表示)。

输入格式

第一行包含 N 的二进制表示,其中一位是错误的。

第二行包含 N 的三进制表示,其中一位是错误的。

输出格式

输出正确的 N 的值。

数据范围

0≤N≤109,且存在唯一解。

输入样例:

1010

212

输出样例:

14

样例解释

14 在二进制下的正确表示为 1110,在三进制下的正确表示为 112。

解题思路:暴力法

读题五遍,你会初步理解题意,二进制只有0和1,三进制有0,1和2三种情况,用枚举法,全部列举出来,转换成十进制,利用c++的哈希set进行操作。

源代码:

include

include

include

include <unordered_set>

using namespace std;

int get(string s,int b){

int res=0;
for(auto a:s){
    res=res*b+a-'0';
}
return res;

}

int main()

{

string a,b;
cin >> a >> b;
unordered_set<int> S;
for(auto& c:a){
    c^=1;
    S.insert(get(a,2));
    c^=1;
}
for(auto& e:b){
char t=e;
for(int i=0;i<3;i++){
if(i+'0'!=t){
            e=i+'0';
int x=get(b,3);
if(S.count(x)){
cout << x <<endl;
return 0;
            }
        }
    }
    e=t;
}
return 0;

}

最后,这是第一次用c++写学到了很多,c++对于c来说,优势性很大,特别是在字符串方面,但是它本身有很强大,有java一样的继承,也拥有着哈希等常用方法。

目录
相关文章
|
7月前
|
存储 算法 安全
C# | 上位机开发新手指南(五)校验算法——CRC
当我们在进行数据传输时,可能会因为信道噪声、干扰等因素导致数据出现错误,从而影响传输的可靠性和准确性。此时,我们需要一种方法来检测数据是否出现错误,并尽可能快速地发现和纠正错误。CRC(Cyclic Redundancy Check)校验算法就是一种常用的数据校验方法,它通过对数据进行处理生成校验码,从而实现对数据的完整性和准确性进行验证。 使用CRC校验的意义在于能够提高数据传输的可靠性,降低数据传输错误率,确保数据的完整性和准确性。在各个领域中,如通信、网络、存储等,CRC校验都得到了广泛的应用。
338 0
C# | 上位机开发新手指南(五)校验算法——CRC
|
7月前
|
算法 C#
C# | 上位机开发新手指南(四)校验算法
校验算法是一种用于验证数据传输过程中是否出现错误或丢失的算法。 在数据传输过程中,由于噪声、干扰、传输错误等因素的影响,会导致数据传输过程中出现错误或丢失。 为了保证数据传输的准确性,需要在数据传输过程中添加校验码。发送端通过计算数据的校验码并将其附加到数据中一起发送出去,接收端再次计算校验码并将其与接收到的校验码进行比较,如果两者相同,则说明数据传输过程中没有出现错误或丢失。
270 0
C# | 上位机开发新手指南(四)校验算法
算法每日一题——第五天——笨拙的手指
算法每日一题——第五天——笨拙的手指
算法每日一题——第五天——笨拙的手指
笨拙的手指——acwing算法题第一天
笨拙的手指——acwing算法题第一天
笨拙的手指——acwing算法题第一天
|
机器学习/深度学习 传感器 人工智能
意念加AI算法「复原」每个手指,智能义肢登上Nature子刊封面
使用「意念」控制机械,让肢体缺失的残疾人过上正常人的生活,这听起来像是出现在电影中的场景。最近,瑞士洛桑联邦理工学院(EPFL)展示的新技术却让科幻变成了现实,他们的研究还登上了最新一期自然杂志子刊《Nature Machine Intelligence》的封面。
254 0
意念加AI算法「复原」每个手指,智能义肢登上Nature子刊封面
|
算法 开发工具 芯片
如何创建一个Flash算法文件 | 《平头哥剑池CDK快速上手指南》第三章
CDK支持Flash烧写功能,为了能够适配不同的Flash器件的编程逻辑,CDK允许开发人员通过Flash算法文件的适配,实现Flash器件的编程,从而实现对某个芯片平台的Flash烧写。
如何创建一个Flash算法文件 | 《平头哥剑池CDK快速上手指南》第三章
|
1天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
101 80
|
20天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
26天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
6天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。