1010 Radix (25 point(s))

机器学习之性能度量 废话不说,本文分为两个部分: 第一部分,我对周志华教授《机器学习》这本书中性能度量知识点中疑难点的学习感悟;第二部分,我感觉该书2.3节 性能度量 中最后部分的代价曲线表述有误,苦于没找到联系教授的正确方式,故希望与广大网友一起探讨。 阅读详情

1010 Radix (25 point(s))

Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number.

Now for any pair of positive integers N​1​​ and N​2​​, your task is to find the radix of one number while that of the other is given.

Input Specification:

Each input file contains one test case. Each case occupies a line which contains 4 positive integers:


N1 N2 tag radix

Here N1 and N2 each has no more than 10 digits. A digit is less than its radix and is chosen from the set { 0-9, a-z } where 0-9 represent the decimal numbers 0-9, and a-z represent the decimal numbers 10-35. The last number radix is the radix of N1 if tag is 1, or of N2 if tag is 2.

Output Specification:

For each test case, print in one line the radix of the other number so that the equation N1 = N2 is true. If the equation is impossible, print Impossible. If the solution is not unique, output the smallest possible radix.

Sample Input 1:

6 110 1 10

Sample Output 1:

2

Sample Input 2:

1 ab 1 2

Sample Output 2:

Impossible

进制转换、二分查找。这道题非常坑,题目的表达也很容易让人误解。

 对于进制转换,有基于大数除法的模板(18分)。

然而实际上,题目并没有限制进制最大是36(但我认为它也没有说得很明白)。比如10进制下的10000(D)可以表示成9999进制下的11(1*9999+1==10000),10进制下的10000也可以表示成10000进制下的10。

思路:首先把已知进制数的数转换成10进制A,然后对于未知进制的数B按照i进制转换,如果转换的数和A相等则可。如何确定可以转换进制的范围呢?使用二分查找。下界是B中出现最大的数字(digit)加1,上界是10进制的A的值。

注意点:1.int不够;2. 溢出情况;3. 二分查找的上下线;4. tag的处理;5. 题意!

大神对于各种坑的总结:https://blog.youkuaiyun.com/Joyceyang_999/article/details/81908299

#include<iostream>
#include<cstring>
using namespace std;
string conv(int n,string num,int m){//n to m
	string ans="";
	int len = num.length();
	for(int i=0;i<len;){
		int remain = 0;
		for(int j=i;j<len;j++){
			if(num[j]>='0'&&num[j]<='9') remain = n*remain+num[j]-'0';
			else remain=n*remain+num[j]-'a'+10;
			int temp = remain/m;
			if(temp>=0&&temp<=9) num[j]=temp+'0';
			else num[j]=temp-10+'a';
			remain=remain%m;
		}
		if(remain>=0&&remain<=9) ans=char(remain+'0')+ans;
		else ans = char(remain+'a'-10)+ans;
		while(num[i]=='0')i++;
	}
	return ans;
}
int main(void){
	string N1,N2;int tag,radix;
	cin>>N1>>N2>>tag>>radix; 
	bool flag = false;
	if(tag==1){
		for(int i=2;i<=36;i++){
			if(conv(radix,N1,i)==N2){
				flag=true;
				cout<<i<<endl;
				break;
			}
		}
	}
	else if(tag==2){
		for(int i=2;i<=36;i++){
			if(conv(radix,N2,i)==N1){
				flag=true;
				cout<<i<<endl;
				break;
			}
		}
	}
	if(!flag) cout<<"Impossible"<<endl;
	return 0;
}

AC代码: 

#include<iostream> 
#include<cstring>
#include<algorithm>
#define INF 0x3f3f3f3f
#define ll long long
using namespace std;
ll char2digit(char c){
	if(c>='0'&&c<='9') return c-'0';
	else return c-'a'+10;
}
ll toDec(string s,ll radix){
	ll ans = 0;
	for(int i=0;i<s.length();i++){
		ans=radix*ans+char2digit(s[i]);
		if(ans<0) return -1; 
	}
	return ans;
}
int main(void){
	string n1,n2;int tag,radix;
	cin>>n1>>n2>>tag>>radix;
	if(tag==2) swap(n1,n2);
	ll mid,left,right,target;
	target = toDec(n1,radix);//把目标数转换成十进制
	left = 2;
	for(int i=0;i<n2.size();i++) left = max(left,1+char2digit(n2[i]));
	right = max(left,target);
	while(left<=right){
		mid = (left+right)>>1;
		ll temp = toDec(n2,mid);
		if(temp>=target||temp==-1)//根据当前进制转换的数过大
			right = mid-1;
		else//反之 
			left =  mid+1;
	} 
	if(toDec(n2,left)==target) cout<<left<<endl;//验证 
	else cout<<"Impossible"<<endl;
	return 0;
}

 

数字IC后端时序违例修复:setup/hold冲突与时钟树优化实战 时序收敛是数字IC后端设计中最关键的环节之一,直接影响芯片能否在目标频率下稳定工作。建立时间与保持时间的本质是寄存器对数据稳定性的物理约束,而实际工程中,setup违例和hold违例往往此消彼长,冲突的根源在于数据路径与时钟路径的延迟匹配。时钟树综合(CTS)作为连接逻辑与物理的关键步骤,其skew、insertion delay和transition的优化直接决定了时序修复的成败。通过useful skew技术、合理的单元替换和路径结构调整,可以系统性地解决setup/hold冲突,实现时序收敛。本文结合 阅读详情

相关推荐

【YOLO 系列】基于YOLOv8的工业零件表面缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了如何基于YOLOv8深度学习模型和PyQt5图形界面,构建一套完整的工业零件表面缺陷智能检测系统。内容涵盖从环境搭建、数据集标注、模型训练调参到最终封装成可执行桌面软件的全流程,并深入解析了YOLOv8在工业视觉场景中的技术优势与落地优化策略。

ol78901234的博客 402

1010 Radix (25 分)

一、问题描述 输入两个数N1、N2,和一个标记tag、一个基数radix,其意义是:tag为1时,radix是N1的基数;tag为2时,radix是N2的基数。方便起见,以下假定tag为1,则目标就是找到一个尽可能小的基数,使N2在此基数下的值等于N1在radix下的值。例如二进制下的110等于十进制下的6。 二、思路 做过的都知道,思路是不难的,就是坑实在不少,要想的全面一点。 1、暴力算法:...

自己人的博客 6479

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8178

1010 Radix (25 point(s)) - C语言 PAT 甲级

设计思路: 1. 两个数均转化为 10 进制数进行比较 2. 寻找另一个数的基数时: * 确定基数的最小值和最大值 * 二分法查找基数 3. 当另一个数只有一位时,在任何大于它本身的基数下,其值均等于它自身: * 如果等于已知数,最小进制为自身加 1 * 否则无解

有三只土豆 419

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2261

Cadence笔记--原理图导入PCB

根据PCB尺寸画PCB外观尺寸,这里注意X\Y不能超过指定的区域,X\Y的最大值在setuo的grids里设置,画完后保存并关闭工程然后重新打开(不理解为何)由于只画了一个PMU6050,所以这里只有一个器件。工程选择board,选择存储路径和名称。6、重新网格导入,保证网表导入无误;注意网表保存的路径。

weixin_51418325的博客 1963

1010 Radix (25 point(s)) 刷题踩坑记录

原题链接 下面给出我自己的ac代码 #include<cstdio> #include<string> #include<iostream> #include<cmath> #include<algorithm> using namespace std; char Map[256]; void hashMap() { for (char...

fire_for_you的博客 727

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 428

1010 Radix (25 point(s))

题解 二分查找 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;string&gt; #include&lt;cmath&gt; #include&lt;cctype&gt; #include&lt;algorithm&gt; using namespace std; typedef long long LL; LL...

徐伯莱 286

热膨胀系数(CTE)的不同处理方法对于封装翘曲仿真的影响

随着技术的不断发展,芯片封装的集成度越来越高,尺寸也越来越大,随之而来的封装翘曲问题也越来越引起关注。影响芯片封装翘曲最主要的原因就是封装中不同材料热膨胀系数(CTE)的失配性,因此在进行封装翘曲仿真的过程中,如何使用材料的CTE值就变得尤为重要,会对仿真精度产生较大的影响。本文将对比不同CTE的处理方法给仿真结果带来的影响。

wangyubo1的博客 6859

ROBOGUIDE教程:FANUC机器人X型焊枪气动点焊焊接

FANUC机器人X型焊枪气动点焊焊接虚拟仿真实现方法。

IndRobSim 4387

PAT_1010 1010 Radix (25 point(s))__二分法(需要回看)

题目大意: 给定2个数字num1和num2,和num1的进制,要求求出在num1==num2的条件下num2的进制,如果无法满足,返回impossible. 注意: 思想 - 将num1转化为10进制。 - num2的进制有一个区间,low是num2的每个数位+1,high是num1+1 - 用二分法寻找num2的进制。 进制涉及到溢出问题,所有数据类型设置为long long (超出范围视...

a7701935的博客 356

【参数配置】OpenClaw 的破解之道(Doom Loop)

本文深入解析了OpenClaw中的Doom Loop(死循环)问题及其应对策略。主要内容包括: Agent Loop的核心概念:基于ReAct范式,OpenClaw通过"思考-行动-观察"循环执行任务,但可能陷入无进展的死循环。 Doom Loop现象:Agent持续执行但任务进度为零,常见于四种工具调用场景:相同调用重复执行、调用不存在工具、轮询工具卡死、操作交替振荡。 OpenClaw的防御机制: 第一道防线:重试端断路器,通过上下文压缩熔断(最多3次)和总重试次数熔断(32-160次)防止无限重试。

海兰 4042

1010 Radix (25point(s))

1010 Radix (25point(s)) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integers N ​1 ​​ and N ​2 ​​ , your

佳迪斯的博客 154

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PAT(甲级)1010 Radix (25point(s))

题目 题目链接 思路 题目大意:给两个数,以及其中一个数的进制,问是否存在一个进制,使得另一个数在此进制下两数相等; 首先应该明确用二分对解空间进行搜索,其次需要找到每次优化后解空间的上下界; 为了方便,我们不妨始终保持第一个数进制已知; 最初解空间的下界是第二个数中最大位 + 1,上界是第一个数转化为10进制后的值 + 1; 因为给的radix是很大的,所以本题必须都用longlong型,注意不要想当然认为解空间是 [2, 36], 而应该是 [2, radix]; 题里还有一个坑,因为给的radix很大

hjyp的博客 199

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pat 甲级 1010 Radix (25 point(s))

1010 Radix (25 point(s)) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer isyes, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integersN1​andN2​, your task is...

m0_51711089的博客 500

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

1010 Radix (25 point(s))

1010 Radix (25 point(s)) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer isyes, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integersN​1​​andN​2​​, your tas...

专栏 115

PAT A1010 Radix (25point(s))

题目链接 本题有几个注意点: 1.对基数进行遍历会超时,因此要用二分法 2.本题变量最好使用long long型,因为待求radix可以很大,在转换为十进制过程中甚至会超出long long 的表示范围,不过本题的给出的数转换为十进制不会超过范围,因此只需检查未知进制的数是否超出范围,在超出long long表示范围时,会变成负数,可将此作为判断依据。 3.待求进制的下界是给出数中的最大位+1(这...

皮皮瓜的博客 169

1010 Radix (25)(25 point(s))

problem Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is "yes", if 6 is a decimal number and 110 is a binary number. Now for any pair of pos...

weixin_30337157的博客 128

PAT(A)1010 Radix (25point(s))

思路: 这是我看过的测试点最多的题,简直多到爆。 看到题面,意识上认为只有36进制就可以了,然而不是,注意爆long long时会变成负数,然后还有,暴力不行,一定要二分找,下界是n2的最低阶,上界是n1的数值和n2的最低阶比较的较大值。 这张图真是贼不容易。 代码: #include <bits/stdc++.h> #include <cstdio> using n...

Sqssq的博客 239

PAT (Advanced Level) Practice 1010 Radix (25 point(s))

题目:PAT A 1010 解题思路 首先需要很明确,未知数的进制不一定是2-36进制之间,上限不一定。只不过是a-z以外无法表示而已 二分枚举进制 可能超过long long的表示范围,超过范围,溢出结果为负 #include<bits/stdc++.h> using namespace std; typedef long long ll; string str1,str2; ll tag,radix; //把字符转换为10进制的数 ll cTonumber(char ch){ i

helloful的博客 127

PAT-1010 Radix (25)

题目大意:已知 A 的值和对应的 Xa 进制,在已知 B 值的情况下,问 B 值所对应的 Xb 进制(最小符合的进制)。解题思路:本人花了 n 多个小时才 AC 了这道题,如果考场上估计只能拿21分(cai)。以下是我踩的坑。。。坑一:将 A 转化为十进制数 v,以 A 的最大字母加1 (记做 minRadix) 作为进制下界之后随意选择了一个进制的上界(自认为pat测试数据水,就设了一个 100...

zhoujian_1943的博客 859

[PYTHON](PAT)1010 RADIX (25)

Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is “yes”, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive in...

贰拾壹 483

[PAT]1010. Radix (25)@Java解题报告

1010. Radix (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given a pair of positive integers, for example, 6 an

zjkC050818的博客 701

1010. Radix (25) (JAVA)

import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger str2int(byte[] str, BigInteger radix) { BigInteger d = BigInteger.valueOf(0); for(int i = 0; i < s

Missan的专栏 568

1010 Radix (25分)测试样例很多坑

Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integ...

qq_41773202的博客 729
上一篇: 1049 Counting Ones (30 point(s))
下一篇: 1118 Birds in Forest (25 point(s))
coderwait
博客等级 码龄9年 20粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值