每日一题 笨拙的手指
Acwing 2058. 笨拙的手指
题目
奶牛贝茜正在学习如何在不同进制之间转换数字。
但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。
每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。
例如,如果她将数字 1414 转换为二进制数,那么正确的结果应为 11101110,但她可能会写下 01100110 或 11111111。
贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 00 的数字。
给定贝茜将数字 NN 转换为二进制数字以及三进制数字的结果,请确定 NN 的正确初始值(十进制表示)。
输入格式
第一行包含 NN 的二进制表示,其中一位是错误的。
第二行包含 NN 的三进制表示,其中一位是错误的。
输出格式
输出正确的 NN 的值。
数据范围
0≤N≤10^9,且存在唯一解。
输入样例:
1010
212
输出样例
14
Mycode
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main(){string n2;string n3;set<int> res2;set<int> res3;cin>>n2>>n3;for(int i=0;i<n2.length();i++){string ss=n2;ss[i]= ss[i]=='1'? '0':'1';int sum=0;for(int j=n2.length()-1;j>=0;j--){sum+=(ss[j]-'0')*pow(2,n2.length()-1-j);} res2.insert(sum);}for(int i=0;i<n3.length();i++){string ss1=n3;string ss2=n3;if(n3[i]=='0'){ss1[i]='1';ss2[i]='2';} else if(n3[i]=='1'){ss1[i]='0';ss2[i]='2';}else if(n3[i]=='2'){ss1[i]='0';ss2[i]='1';}int sum1=0;int sum2=0;for(int j=n3.length()-1;j>=0;j--){sum1 +=(ss1[j]-'0')*pow(3,n3.length()-1-j);} for(int j=n3.length()-1;j>=0;j--){sum2 +=(ss2[j]-'0')*pow(3,n3.length()-1-j);} res3.insert(sum1);res3.insert(sum2);}vector<int> ans;set_intersection(res2.begin(),res2.end(),res3.begin(),res3.end(),inserter(ans,ans.begin()));cout<<ans[0];
}
菜狗想到的办法只有暴力枚举。。。
分别对二进制和三进制枚举每一种出错的情况(二进制不是1就是0,三进制0 1 2取其中两种),扔进集合里,再求交集,就可以得到正确答案。
这里学会了如何交集
set_intersection(res2.begin(),res2.end(),res3.begin(),res3.end(),inserter(ans,ans.begin()));
其中inserter声明一个插入迭代器。ans是插入操作的对象,ans.begin()是开始插入的迭代器。
每日一题 笨拙的手指相关推荐
- 2022.01.02 Acwing寒假每日一题 笨拙的手指
1.题目笨拙的手指 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错. 例 ...
- AcWing寒假每日一题2058. 笨拙的手指
AcWing寒假每日一题2058. 笨拙的手指 题目描述 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果 ...
- 2022AcWing寒假算法每日一题之2058. 笨拙的手指
2022AcWing寒假算法每日一题之2058. 笨拙的手指 题目链接:AcWing2058. 笨拙的手指 思路: 1.数据范围为0-1e9,则输入的时候按照字符串输入 2.将二进制和三进制各位数上的 ...
- AcWing寒假每日一题 2058.笨拙的手指
题目描述:2058. 笨拙的手指 - AcWing题库 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时 ...
- 寒假每日一题 1 : 笨拙的手指 java
1 : 笨拙的手指 枚举 题目 视频讲解 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中 ...
- Acwing寒假每日一题(一)笨拙的手指
题目链接:笨拙的手指 题解:输入两个字符串a, b,然后分别倒序存入两个vector A,B中,注意要减'0'. 然后,遍历A,每次改变一位,与1异或即可实现,将其转为10进制,再转为3进制,注意此时 ...
- AcWing 1月9日每日一题 2058. 笨拙的手指
AcWing 2058. 笨拙的手指 思路分析: 枚举的思想,因为题目中明确说明只有一位不同,所以可以把所有情况枚举出来,1e9的二进制最多不超过30位,三进制同理,因此分别进行枚举后,求出10进制的 ...
- 笨拙的手指——acwing算法题第一天
笨拙的手指 方法一 方法二 方法一 用暴力枚举法枚举出二进制所有的情况,化为十进制数存放在一个数组中, 然后再去枚举三进制所有的情况,化为十进制一一去和数组中的元素去匹配,如果相等就说明找到了答案,结 ...
- acwing——每日一题——总结
acwing--每日一题--总结 第一周 1.笨拙的手指(考查点:进制转换) 2.干草堆(考查点:差分+前缀和) 3.奶牛选美(bfs模板+floodfill算法) 4.拖拉机(bfs+双端队列=迪杰 ...
最新文章
- c++框架有哪些_Java Mybatis框架入门教程_v20200726
- 吞吐量达到瓶颈后下降_如何找到 Kafka 集群的吞吐量极限?
- Dirichlet分布与多项分布的共轭性
- 正则表达式的汉字匹配
- jMeter debug postprocessor的用法
- C#原型模式之深复制实现
- 小程序如何封装自定义组件(Toast)
- java中exception_Java中的异常 Exceptions
- 分析数万条国庆旅游评论数据后,我发现了“坑爹”景点背后的秘密
- xmapp mysql打不开_XAMPP 的MYSQL无法启动
- Android系统信息获取 之二:版本信息获取
- EF并非我们想象的那么智能
- MLOps- 吴恩达Andrew Ng Overview of the ML Lifecycle and Deployment Week1 论文等资料汇总
- osgb转3dtiles 原理_自动控制原理实验箱无法通行故障维修
- 使用FlyMCU往STM32中烧写程序
- NetApp存储术语介绍
- librosa.stft的输出
- 各种浏览器的cache文件夹
- 一台计算机ip地址在哪里设置密码,电脑动态IP地址怎么设置
- pgMP认证,还是再看看吧!