题目传送门

这个题用二分做,我自己写的二分呢太菜了,只能拿到19分,不放出来丢人了。后面看了yxc的代码,美妙绝伦哈。
慢慢来拜读一下。

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
int get(char c){if (c<='9') return c-'0';return c-'a'+10;
}
ll convert(string a,ll radix){ll res=0;for(auto c:a){if ((double)res*radix+get(c)>1e16) return 1e18;res = res * radix+get(c);}return res;
}int main(){string N1,N2;int tag,radix;cin>>N1>>N2>>tag>>radix;if (tag == 2) swap(N1,N2);ll res = convert(N1,radix);ll low=0,hight=max(res,36ll);for(auto c:N2) low = max(low,(ll)get(c)+1);while (low<hight){ll mid = low+hight>>1;cout<<low<<" "<<hight<<" "<<mid<<endl;if (convert(N2,mid)>=res) hight = mid;else low = mid +1;}if (convert(N2,hight)!=res)cout<<"Impossible";else cout<<hight<<endl;
}

有几处美妙绝伦的点:

  1. get函数直接把1~9 a~z都转化为int
  2. convert用增强型for循环,配合get函数让代码短起来了。不然的话又要写一个分支出来。以及判断爆long long的情况。
  3. 写的最好的是这个二分法了吧。。这个二分法会自动找出来最小的满足条件的进制并返回,而不是最传统的二分板子,会直接二分找到中间那个。

PAT 甲级 A1010 Radix (25 分)相关推荐

  1. pat 甲级 1010. Radix (25)

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

  2. 19年冬季第二题 PAT甲级 1166 Summit (25分)

    7-3 Summit (25分) A summit (峰会) is a meeting of heads of state or government. Arranging the rest area ...

  3. PAT A1010 Radix (25 分)

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  4. PAT Advanced—1010 Radix (25分)

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  5. PAT甲级 1032 Sharing (25分) 测试点5陷阱

    题目 1032 Sharing 分析 suffix是后缀,题目的意思是求两个单词的公共后缀的第一个字符的地址.我看有些博客说求的是首个共用结点的地址,我觉得是不对的. 晴神/柳神的解法,是把第一个单词 ...

  6. PAT甲级——1166 Summit (25 分)

    思路: 模拟,用两位vector表示edge相连关系 然后,看是否两两相连和是否有其他点与其都相连 src // 不需要并查 #include<bits/stdc++.h> using n ...

  7. PAT甲级1010 Radix :[C++题解]进制位、秦九韶算法、二分(PAT通过率最低的一道题0.11)

    文章目录 题目分析 题目链接 题目分析 分析: 本题思路分两步. 第一步:先把给出数值和进制的数,暂定为N1,转换成10进制,即为target. 第二步: 判断一下N2在多少进制下是等于target的 ...

  8. PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...

  9. PAT 甲级 A1010

    1010 1010 Radix (25分) 题目描述 Given a pair of positive integers, for example, 6 and 110, can this equat ...

最新文章

  1. java网络编程udp_java网络编程 UDP网络编程问题
  2. mysql在win服务器上安装linux_MySql数据安装Linux+Windows
  3. python处理xml中非法字符的一种思路
  4. 多种方法教你破解电信共享上网的限制
  5. 列标题 如何删除gridcontrol_GridControl简单属性操作
  6. 李宏毅机器学习之Classification
  7. 白帽子讲Web安全(对看书之后的一点笔记)
  8. Hibernate之一对多与多对一映射
  9. mysql 找表重复数据_mysql 数据表中查找重复记录
  10. java注册表添加键值_Java通过CMD方式读取注册表任意键值对
  11. 健康,home? [java的内存浅析]
  12. html embed函数爬取,HTML DOM Embed用法及代码示例
  13. A Survey on Contrastive Self-Supervised Learning(对比式自监督学习研究)-----pretext tasks、Downstream task解释
  14. 单片机性能测试基准CoreMark是什么
  15. 能把晦涩难懂的研究工作讲清楚,Distill就奖你10000美刀
  16. 【英语0基础·读音】【A鹿笔记】Day 1 ee,ea,ache组合
  17. python制作个人名片_python制作名片
  18. 开源的协议(GPL和MIT的区别)
  19. netstat输出中Established时Recv-Q的含义
  20. opencv4.3.0 Cmake后debug模式生成不了opencv_world430d.lib

热门文章

  1. WebService 及java网络编程等基础概念(一)
  2. python测试工具--nose简介
  3. 第三方支付系统-支付流程
  4. 接入高德开放平台实现地址转换为经纬度坐标
  5. 2019年肖秀荣命题人讲真题上下两册【全】
  6. 适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P104~P129)
  7. Microsoft SQL Server 实现数据透视表
  8. STM32 DSP库
  9. Laravel Provider用法
  10. 幼儿园计算机教案 认识画图,信息技术教案《认识画图》