题目大意:有趣的数字系统
在一个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. SQLite 入门教程(四)增删改查,有讲究

    增删改查操作,其中增删改操作被称为数据操作语言 DML,相对来说简单一点. 查操作相对来说复杂一点,涉及到很多子句,所以这篇先讲增删改操作,以例子为主,后面再讲查操作. 一.插入数据 INSERT I ...

  2. SQL SERVER 存储过程基础

    一.注释 -- 单行注释,从这到本行结束为注释,类似C++,c#中// /* … */ 多行注释,类似C++,C#中/* … */ 二.变量 (int, smallint, tinyint, deci ...

  3. 收集 数据库的awr数据,生成报告

    该脚本只是把awr报告的内容,原封不动的 展现出来,做记录 awrreport.sql  脚本内容如下: *********************************************** ...

  4. [转]Delphi I/O Errors

    The following are the Windows API (and former DOS) IO errors, which are also the IO errors often ret ...

  5. [转]mysql自动定时备份数据库的最佳方法-支持windows系统

    网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...

  6. 你好,C++(3)2.1 一个C++程序的自白

    第2部分 与C++第一次亲密接触 在浏览了C++“三分天下”的世界版图之后,便对C++有了基本的了解,算是一只脚跨入了C++世界的大门.那么,怎样将我们的另外一只脚也跨入C++世界的大门呢?是该即刻开 ...

  7. IOS下双击背景, touchmove, 阻止页面背景scroll.

    ios prevent dblclick(tap) page scrollhtml add:("minimal-ui" is very important) <meta na ...

  8. 关于css float 属性以及position:absolute 的区别。

    1.float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.div一个典型的块 ...

  9. Bootstrap_表单_表单控件状态

    一.焦点状态 焦点状态是通过伪类“:focus”来实现.Bootstrap框架中表单控件的焦点状态删除了outline的默认样式,重新添加阴影效果. <form role="form& ...

  10. MAC OSX使用篇

    前述: 从windows平台切换到osx平台,的确没能一下子适应过来,在使用过程当中遇到了很多问题. link1:osx卸载应用程序的四种方法 link2:(推荐看)开始使用Mac OS X——写给M ...