首页 > 其他分享 >一切都与进制有关【USACO 2015 January Contest Bronze】

一切都与进制有关【USACO 2015 January Contest Bronze】

时间:2023-02-27 17:35:57浏览次数:42  
标签:表示 10 数字 Contest int January USACO 贝茜 进制

一切都与进制有关

奶牛贝茜一直在她的牛栏中学习计算机课,最近她在致力于学习不同进制下的数字表示。

回想一下,B 进制数字的数位从右到左依次代表 1,B,B2,B3 等等。

例如,在 10 进制下数位从右到左依次代表 1,10,100 等等。

数字序列 1234,在 10 进制下,实际上表示 1(1000)+2(100)+3(10)+4(1),而在 5 进制下,则表示 1(125)+2(25)+3(5)+4(1),这在 10 进制下等于 194。

贝茜注意到,同一数字序列在越高的进制下,表示的数值也就越大,例如 7 进制下的 1234 大于 6 进制下的 1234。

在 B 进制下写数字时,每个数字的范围可以从 0 到 B−1。

例如,10 进制下的每个数字都在 0∼9 的范围内,而 5 进制下的每个数字都在 0∼4 的范围内。

当然,也存在进制超过 10 的数字,比如计算机科学家经常使用 16 进制表示数字,其中字母 A∼F 表示数值 10∼15。

例如,16 进制下的 BEEF 实际上表示 11(4096)+14(256)+14(16)+15,这在十进制下相加等于 48879。

贝茜对使用超过 10 的进制表示数字很感兴趣。

她选取一个整数 N,并写出其在 X 进制以及 Y 进制下的表示。

有趣的是两种表示都是 3 位数字序列,且每个数字都在 1∼9 的范围内。

不幸的是,贝茜把 N,X,Y 都忘记了!

现在,按顺序给出她写下的两个三位数字,请帮她确定 X 和 Y。

输入格式
第一行包含整数 K,表示共有 K 组测试数据。

每组数据占一行,包含两个三位数字,分别表示 N 在 X 进制以及 Y 进制下的表示。

输出格式
共 K 行,每行输出一组测试数据对应的 X,Y。

保证每组数据都存在唯一解。

数据范围
10≤X,Y≤15000,
1≤K≤100
输入样例:
1
419 792
输出样例:
47 35
样例解释
数字 8892 在 47 进制下表示为 419,在 35 进制下表示为 792。

代码

点击查看代码
#include<iostream>

using namespace std;

int get(int x,int k){
    return x/100*k*k+x/10%10*k+x%10;
}

int main(){
    int k,x,y;
    cin >> k;
    while(k --){
        cin >> x >> y;
        for(int i = 10; i <= 15000; i ++ ){
            int t = get(x,i);
            int l = 10,r = 15000,mid;
            while(l < r){
                mid = (l + r) >> 1;
                if(get(y,mid) >= t)r = mid;
                else l = mid + 1;
            }
            if(get(y,r) == t){
                cout << i << " " << r << '\n';
                break;
            }
        }
    }
}

标签:表示,10,数字,Contest,int,January,USACO,贝茜,进制
From: https://www.cnblogs.com/J-12045/p/17160563.html

相关文章

  • AtCoder Beginner Contest 291
    比赛链接A-camelCase题目大意给一个由英文字母构成的字符串\(S\),\(S\)中只有一个大写字母,输出该大写字母是字符串中第几个字母。题目思路遍历字符串找出大写字母......
  • (AtCoder Beginner Contest 289)And Codeforces Round #851 (Div. 2)
     <C-Coverage Editorial>       这道题可以用dfs进行爆搜,但是在爆搜的时候要注意:是否同一个状态重复计数了比如dfs(i......
  • AtCoder Beginner Contest 281 A-F 题解
    比赛链接A-CountDown先这样,就这样。点击查看代码#include<cstdio>intn;intmain(){ scanf("%d",&n); for(inti=n;i>=0;i--)printf("%d\n",i); re......
  • AtCoder Beginner Contest 287 A-F 题解
    比赛链接A-Majority先这样再那样最后这样,就是这样。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;intn,a;char......
  • AtCoder Beginner Contest 286 A-G 题解
    比赛链接A-RangeSwap根据题意,分段输出。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;constintN=105;intn,......
  • AtCoder Beginner Contest 288 解题报告
    AtCoderBeginnerContest288解题报告\(\text{ByDaiRuiChen007}\)A.ManyA+BProblems直接模拟即可时间复杂度\(\Theta(n)\)#include<bits/stdc++.h>usingname......
  • AtCoder Beginner Contest 282 A-F 题解
    比赛链接A-GeneralizedABC额,对,是的,没错,先这样再那样然后这样就是这样。点击查看代码#include<cstdio>intn;intmain(){ scanf("%d",&n); for(inti=0;......
  • #373. 「USACO1.1」Friday the Thirteenth 题解
    #373.「USACO1.1」FridaytheThirteenth题解题目传送门题目知识点模拟+数学闰年知识点题意说明写一个程序来计算在n年里13日落在星期一,星期二......星期日的次数......
  • AtCoder Beginner Contest 285 A-F 题解
    比赛链接A-EdgeChecker2判断y==2x||y==2x+1即可。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;inta......
  • AtCoder Beginner Contest 283 A-F 题解
    A-Power快速幂板子点击查看代码#include<cstdio>#include<algorithm>usingnamespacestd;#defineintlonglongintn,m;intqpow(inta,intb){ intr......