NYOJ 1277Decimal integer conversion (第九届河南省省赛)

XiaoMing likes mathematics, and heis just learning how to convert numbers between different

bases , but he keeps making errorssince he is only 6 years old. Whenever XiaoMing converts a

number to a new base and writes downthe result, he always writes one of the digits wrong.

For example , if he converts thenumber 14 into binary (i.e., base 2), the correct result should be

"1110", but he mightinstead write down "0110" or "1111". XiaoMing neveraccidentally adds or

deletes digits, so he might writedown a number with a leading digit of " 0" if this is the digit she

gets wrong.

Given XiaoMing ‘s output whenconverting a number N into base 2 and base 3, please determine

the correct original value of N (inbase 10). (N<=10^10)

You can assume N is at most 1billion, and that there is a unique solution for N.

Input

The first line of the input containsone integers T, which is the nember of test cases (1<=T<=8)

Each test case specifies:

* Line 1: The base-2 representationof N , with one digit written incorrectly.

* Line 2: The base-3 representationof N , with one digit written incorrectly.

Output

For each test case generate a singleline containing a single integer ,  the correct value of N

Sample Input

1 1010 212

Sample Output

14

题意多实例,然后每个样例给两行字符串分别是2进制的和3进制的,表示的是同一个十进制数。但是每个串都是有一个数是错的,让你通过这两个错的来找出呢个正确的十进制数。暴力找出所有情况的十进制数,然后一一对比相等说明这个十进制数就是正确的要求的数。

具体看代码,不算太难只不过中间一些小细节特别需要注意:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<time.h>
#include<iostream>
#include<ctype.h>
#include<map>
#include<set>
#include<string>
#include<vector>
#include<algorithm>
#include<stdlib.h>
#include<queue>
#include<stack>
using namespace std;
int a[1001];
int b[1001];
char s[1001];
char s0[1001];
int h=0,k=0,len1,len2;
int f(int t)//将2进制转换为十进制存起来
{
    int i;
    int sum=0;
    for(i=0; i<=len1; i++)//主意为什么此处是小于等于,main函数有解释
    {
        sum+=pow(2,t)*(s[i]-‘0‘);
        t--;
    }
    a[k++]=sum;
}
int ff(int t)//将3进制转换为十进制存起来
{
    int i,sum=0;
    for(i=0; i<=len2; i++)
    {
        sum+=pow(3,t)*(s0[i]-‘0‘);
        t--;
    }
    b[h++]=sum;
}
int main()
{
    int t;
    char cc,cc2;
    int i,j;
   scanf("%d",&t);

         while(t--)
    {
        //getchar();

        scanf("%s",s);
        scanf("%s",s0);
        len1=strlen(s)-1;//这个地方本来想着减不减无所谓,循环的时候控制一下就行
        len2=strlen(s0)-1;//但是试了好几次,只有用这个,然后循环变成<=才能出数据,可能因为用char的话最后一位会自动赋值一个\0表示结束吧,然后中间运行会莫名出现问题,具体啥问题我也不清楚,但是很神奇,计算到前一位就过了
        h=0;
        k=0;
        for(i=0; i<=len1; i++)//列举2进制串所有可能情况
        {
            cc=s[i];
            if(s[i]==‘0‘)
                s[i]=‘1‘;
            else
                s[i]=‘0‘;
            f(len1);
            s[i]=cc;
        }
        for(i=0; i<=len2; i++)//列举3进制串所有可能情况
        {
            cc2=s0[i];
            if(s0[i]==‘0‘)
            {
                s0[i]=‘1‘;
                ff(len2);
                s0[i]=‘2‘;
                ff(len2);
            }
            else if(s0[i]==‘1‘)
            {
                s0[i]=‘0‘;
                ff(len2);
                s0[i]=‘2‘;
                ff(len2);
            }
            else
            {
                s0[i]=‘0‘;
                ff(len2);
                s0[i]=‘1‘;
                ff(len2);
            }
            s0[i]=cc2;
        }
        for(i=0; i<k; i++)
        {
            for(j=0; j<h; j++)
            {
                if(a[i]==b[j])
                {
                    printf("%d\n",a[i]);
                    break;
                }
            }
        }
         memset(s,0,sizeof(s));
        memset(s0,0,sizeof(s0));
    }
}

原文地址:https://www.cnblogs.com/nr1999/p/9021358.html

时间: 2024-10-14 06:22:24

NYOJ 1277Decimal integer conversion (第九届河南省省赛)的相关文章

nyoj 1274信道安全 第九届河南省赛(SPFA)

信道安全 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 Alpha 机构有自己的一套网络系统进行信息传送.情报员 A 位于节点 1,他准备将一份情报 发送给位于节点 n 的情报部门.可是由于最近国际纷争,战事不断,很多信道都有可能被遭到监 视或破坏. 经过测试分析,Alpha 情报系统获得了网络中每段信道安全可靠性的概率,情报员 A 决定选 择一条安全性最高,即概率最大的信道路径进行发送情报. 你能帮情报员 A 找到这条信道路径吗? 输入 第一行: T 表示以下有

nyoj1273 河南省第九届省赛_&quot;宣传墙&quot;、状压DP+矩阵幂加速

宣传墙 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做一系列的宣传.为了统一规划,CBA 镇长要求每个宣传栏只能占相邻的两个方格 位置.但这条道路被另一条道路分割成左右两段.CBA 镇长想知道,若每个位置都贴上宣传栏, 左右两段各有有多少种不同的张贴方案. 例如: N=6,M=3, K=2, 左,右边各有 5 种不同的张贴方案 输入 第一行: T 表示

NYOJ - 716 - River Crossing --第六届河南省程序设计大赛 (简单DP!!)

River Crossing 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 Afandi is herding N sheep across the expanses of grassland  when he finds himself blocked by a river. A single raft is available for transportation. Afandi knows that he must ride on the raft for

NYOJ - 715 - Adjacent Bit Counts --第六届河南省程序设计大赛 (DP!!)

Adjacent Bit Counts 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 For a string of n bits x1, x2, x3, -, xn,  the adjacent bit count of the string  is given by     fun(x) = x1*x2 + x2*x3 + x3*x 4 + - + xn-1*x n which counts the number of times a 1 bit is adj

nyoj 711最舒适的路线(第六届河南省程序设计大赛 并查集)

最舒适的路线 时间限制:5000 ms  |  内存限制:65535 KB 难度:5 描述 异形卵潜伏在某区域的一个神经网络中.其网络共有N个神经元(编号为1,2,3,-,N),这些神经元由M条通道连接着.两个神经元之间可能有多条通道.异形卵可以在这些通道上来回游动,但在神经网络中任一条通道的游动速度必须是一定的.当然异形卵不希望从一条通道游动到另一条通道速度变化太大,否则它会很不舒服. 现在异形卵聚居在神经元S点,想游动到神经元T点.它希望选择一条游动过程中通道最大速度与最小速度比尽可能小的路

nyoj 712 探 寻 宝 藏(双线dp 第六届河南省程序设计大赛)

探 寻 宝 藏 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦的,到处都是陷阱.Dr.Kong决定让他的机器人卡多去探险. 但机器人卡多从左上角走到右下角时,只会向下走或者向右走.从右下角往回走到左上角时,只会向上走或者向左走,而且卡多不走回头路.(即:一个点最多经过一次).当

第七届河南省赛H.Rectangles(lis)

10396: H.Rectangles Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 229  Solved: 33 [Submit][Status][Web Board] Description Given N (4 <= N <= 100)  rectangles and the lengths of their sides ( integers in the range 1..1,000), write a program that fi

第九届省赛-表达式求值(模拟)

表达式求值 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 假设表达式定义为: 1. 一个十进制的正整数 X 是一个表达式. 2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+. 3. 如果 X 和 Y 是 表达式,则 函数 Smax(X,Y)也是表达式,其值为:先分别求出 X ,Y 值的各位数字之和,再从中选最大数. 4.如果 X 是 表达式,则 (X)也是表达式. 例如: 表达式 12*(2+3)+Smax(333,220+2

nyoj714 Card Trick(第六届河南省程序设计大赛)

题目714 题目信息 运行结果 本题排行 讨论区 Card Trick 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 The magician shuffles a small pack of cards, holds it face down and performs the following procedure: The top card is moved to the bottom of the pack. The new top card is deal