2023牛客暑期多校训练营3

A: World Fragments I

题意:给定两个数字的二进制表示,每次可以用x减去本身的一个1或者0,直到x变成y最少多少步,可知只要x大于0其中必定存在1,也就是 x可以转化为y,求|x - y|即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
typedef pair<int,int> PII;
const int N = 100010;

int ptt(string s,int p){
	int x = 0;
	for(int i = 0; i < s.size(); i ++){
		x *= p;
		if(s[i] >= 'A' && s[i] <= 'Z') x += (s[i] - 'A' + 10);
		else x += (s[i] - '0');
	}
	return x;
}

void solve(){
	string s1,s2;
	cin >> s1 >> s2;
	if(s1 == s2){
		cout << 0;
		return;
	}
	if(s1 == "0"){
		cout << -1;
		return;
	}
	int a = ptt(s1,2),b = ptt(s2,2);
	cout << abs(a - b);
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	solve();	
	return 0;
}
全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务