题目大意:有趣的数字系统
在一个k位的2的补码,,位的索引是从0到k-1位的,值是-2^(k-1),其他位置的i是2^i( (0 ≤ i < k-1) ),例如,3位的数字101是-2^2 + 0 + 2^0 = -3,一个负权值叫做一个negabit, 例如最高位的2的补码,一个正的位权值叫做一个possibit。
一个趣味数字系统是一个二进制数字系统,每一位也可以是一个negabit或者一个negabit,例如认为一个3位趣味数字系统趣味3,位在位置0那里,并且2是posibits.
明白了就是先给一个数字说这个数字的二进制有多少位,然后按照给的字符串正负方式能不能得到下面的数,不能就是impossible能就输出那个字符串
需要考虑负数的情况->千万不要忘记

#include<iostream>

#include<string>
using namespace std;
int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        int i, j, k;
        long long m;
        int a[100]={0}, b[100]={0};
        string s;
        cin >> k >> s >> m;
        int op=1;
        if(m<0)
            op=0, m=-m;
        for(i=0,j=k-1; i<k; i++, j--)
        {
            if(s[i] == 'n' && op)
                b[j] = 1;
            else if(s[i]=='p' && !op)
                b[j] = 1;
            a[i] = m%2;
            m/=2;
        }
        for(i=0; i<=k; i++)
        {
            a[i+1] += a[i]/2;
            a[i] %= 2;
            if(a[i] && b[i])
                a[i+1]++;
        }
        if(a[k] || a[k+1] || m)
            cout << "Impossible" <<endl;
        else
        {
            for(i=k-1; i>=0; i--)
                cout << a[i];
            cout << endl;
        }
    }
    return 0;
}

poj1023的更多相关文章

  1. POJ1023 The Fun Number System

    题目来源:http://poj.org/problem?id=1023 题目大意: 有一种有趣的数字系统.类似于我们熟知的二进制,区别是每一位的权重有正有负.(低位至高位编号0->k,第i位的权 ...

随机推荐

  1. git代码库的使用

    代码库/使用指南 http://learn.zone.jd.com/cmsuser/index.htm 在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC http://m ...

  2. iOS 里面如何使用第三方应用程序打开自己的文件,调用wps其他应用打开当前应用里面的的ppt doc xls

    我们的自己的应用里面经常涉及的要打开ppt doc,这样的功能,以前总以为iOS沙盒封闭化,不可能实现,后来终于解决了 使用 UIDocumentInteractionController 来解决这一 ...

  3. 【vc】1_Windows程序内部运行机制

    创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3 ...

  4. SGU 112.a^b - b^a

    题意: 如标题. 方法: 简单高精度... 代码(继续JAVA 水过) import java.util.*; import java.math.*; public class Solution { ...

  5. Linux系统、版本、CPU、内存查看、硬盘空间

    查看系统版本:lsb_release -a [root@localhost /]# lsb_release -a LSB Version:    :core-4.0-amd64:core-4.0-no ...

  6. linux 日常命令(磁盘空间)

    df –hl 在windows下可以很方便的查看磁盘空间的.但是到了Linux查看磁盘空间,你可能就有点摸不着头脑了,呵呵.不要急,我这就要给你解决这个问题. Df命令是Linux查看磁盘空间系统以磁 ...

  7. AppiumDriver 运行app启动基本参数

    记录一下 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(Mobile ...

  8. spring Mvc json返回json的日期格式问题

    (一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...

  9. dede定义全局变量(include/common.inc.php)及调用方式

    dede定义全局变量的文件include/common.inc.php及使用   在include/common.inc.php文件里,dede定义了大量的全局变量,详细自己去看看   dede模板里 ...

  10. CentOS 6.3 卷组挂载硬盘教程 linux的VPS如何分区

    XEN架构VPS提供的容量一般都不会低于10G,但大部分基于Xensystem面板的VPS默认挂载10G硬盘(第一磁盘),剩下的容量(第二磁盘)就需要通过手动挂载才能扩充默认的10G容量了.默认装完系 ...