PAT 甲级 A1010 Radix (25 分)
题目传送门
这个题用二分做,我自己写的二分呢太菜了,只能拿到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;
}
有几处美妙绝伦的点:
- get函数直接把1~9 a~z都转化为int
- convert用增强型for循环,配合get函数让代码短起来了。不然的话又要写一个分支出来。以及判断爆long long的情况。
- 写的最好的是这个二分法了吧。。这个二分法会自动找出来最小的满足条件的进制并返回,而不是最传统的二分板子,会直接二分找到中间那个。
PAT 甲级 A1010 Radix (25 分)相关推荐
- pat 甲级 1010. Radix (25)
1010. Radix (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given a pair of ...
- 19年冬季第二题 PAT甲级 1166 Summit (25分)
7-3 Summit (25分) A summit (峰会) is a meeting of heads of state or government. Arranging the rest area ...
- PAT A1010 Radix (25 分)
Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...
- 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 ...
- PAT甲级 1032 Sharing (25分) 测试点5陷阱
题目 1032 Sharing 分析 suffix是后缀,题目的意思是求两个单词的公共后缀的第一个字符的地址.我看有些博客说求的是首个共用结点的地址,我觉得是不对的. 晴神/柳神的解法,是把第一个单词 ...
- PAT甲级——1166 Summit (25 分)
思路: 模拟,用两位vector表示edge相连关系 然后,看是否两两相连和是否有其他点与其都相连 src // 不需要并查 #include<bits/stdc++.h> using n ...
- PAT甲级1010 Radix :[C++题解]进制位、秦九韶算法、二分(PAT通过率最低的一道题0.11)
文章目录 题目分析 题目链接 题目分析 分析: 本题思路分两步. 第一步:先把给出数值和进制的数,暂定为N1,转换成10进制,即为target. 第二步: 判断一下N2在多少进制下是等于target的 ...
- PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...
- PAT 甲级 A1010
1010 1010 Radix (25分) 题目描述 Given a pair of positive integers, for example, 6 and 110, can this equat ...
最新文章
- java网络编程udp_java网络编程 UDP网络编程问题
- mysql在win服务器上安装linux_MySql数据安装Linux+Windows
- python处理xml中非法字符的一种思路
- 多种方法教你破解电信共享上网的限制
- 列标题 如何删除gridcontrol_GridControl简单属性操作
- 李宏毅机器学习之Classification
- 白帽子讲Web安全(对看书之后的一点笔记)
- Hibernate之一对多与多对一映射
- mysql 找表重复数据_mysql 数据表中查找重复记录
- java注册表添加键值_Java通过CMD方式读取注册表任意键值对
- 健康,home? [java的内存浅析]
- html embed函数爬取,HTML DOM Embed用法及代码示例
- A Survey on Contrastive Self-Supervised Learning(对比式自监督学习研究)-----pretext tasks、Downstream task解释
- 单片机性能测试基准CoreMark是什么
- 能把晦涩难懂的研究工作讲清楚,Distill就奖你10000美刀
- 【英语0基础·读音】【A鹿笔记】Day 1 ee,ea,ache组合
- python制作个人名片_python制作名片
- 开源的协议(GPL和MIT的区别)
- netstat输出中Established时Recv-Q的含义
- opencv4.3.0 Cmake后debug模式生成不了opencv_world430d.lib