当前位置:网站首页>PAT1010
PAT1010
2022-08-09 11:09:00 【AlanLiu6】
这个题可太秀了,本来以为是一道水题,结果死活19分。然后网上查了一下代码,结果需要用到二分(黑人问号???干嘛要二分),然后看了一下别人代码里的进制搜索的右边界,竟然是给的数的十进制+1,突然发现自己想当然的把有边界写到了36。然后把36改成了10001,结果真对了23分,知道方向错了后,果断二分。结果一直卡在24分样例10上,我看人家说这个是溢出了,我想我做了溢出判断啊,然后疯狂操作,还是不行。突然看了一下代码,我的mid是用int类型定义的(全code唯一一个int),然后我想也不应该啊,进制数的mid咋可能爆炸呢,除非它给的样例的已知进制的那个数的10进制数爆int才可能啊。但是本着全code一致原则,改了交了,结果对了,这个数据真是绝了。
https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536
#include<cstdio>
#include<cstring>
typedef long long ll;
ll tag,radix;
ll ans = -1;
char N1[15],N2[15];
ll numTrans(char c)
{
if(c >= '0' && c <= '9') return c - '0';
if(c >= 'a' && c <= 'z') return c - 'a' + 10;
}
ll trans(char* str,ll r)
{
ll sum = 0;
ll flag = 1;
for(ll i = strlen(str)-1;i >= 0;i--,flag*=r)
{
ll temp = flag * numTrans(str[i]);
sum += temp;
if(temp < 0 || sum <0 || flag < 0) return -1;
}
return sum;
}
ll findMax(char *str)
{
ll maxn = 0;
for(ll i = 0;i < strlen(str);i++)
{
if(numTrans(str[i]) > maxn)
maxn = numTrans(str[i]);
}
return maxn;
}
void binSearch()
{
ll sum = 0;
sum = trans(N1,radix);
ll rad = findMax(N2);
ll down = rad +1;
ll top = sum +1;
while(top >= down)
{
ll mid = (top+down)/2;
ll temp = trans(N2,mid);
if(temp >= sum || temp == -1)
{
top = mid - 1;
if(temp == sum)
ans = mid;
}
else
down = mid + 1;
}
}
int main()
{
scanf("%s%s%lld%lld",N1,N2,&tag,&radix);
if(tag == 2)
{
char tt[15];
strcpy(tt,N1);
strcpy(N1,N2);
strcpy(N2,tt);
}
binSearch();
if(ans != -1) printf("%lld\n",ans);
else
printf("Impossible\n");
return 0;
}
边栏推荐
猜你喜欢
Qt获取EXE可执行文件的上一级目录下的文件
PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization Paper Reading
七夕?程序员不存在的~
ICML 2022 | Out-of-Distribution Detection with Deep Nearest Neighbors
Tensorflow realize parameter adjustment of linear equations
FreeRTOS列表和列表项源码分析
支付宝小程序的接入
x86 Exception Handling and Interrupt Mechanism (1) Overview of the source and handling of interrupts
PTA 实验7-5 输出大写英文字母(10 分)
信息系统项目的十大管理
随机推荐
OpenSSF's open source software risk assessment tool: Scorecards
Quartz分布式实现
MySQL查询性能优化七种武器之索引潜水
Oracle数据库的两种进入方式
fork creates multiple child processes
1009 Product of Polynomials C语言多项式乘积(25分)
b站up主:空狐公子 --矩阵求导(分母布局)课程笔记
激光条纹中心提取——Steger
uni-app 自带的picker封装一个日期-时间选择器
gdb 10.2的安装
MATLAB中如何把cftool拟合的函数输出到命令行(解决如何导出拟合后的曲线数据)
fidder为什么不会抓包的问题
STemwin中GUI_Exec和GUI_Delay
使用.NET简单实现一个Redis的高性能克隆版(四、五)
学习阶段总结(背包问题)
Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
论文分享 | ACL2022 | 基于迁移学习的论元关系提取
The torch. The stack () official explanation, explanation and example
PTA 换硬币
Netscope: Online visualization tool for neural network structures