题解 P2104 【二进制】
_•́へ•́╬_
·
·
题解
vector是个好东西
#include<stdio.h>
#include<vector>
#define rpt(n) for(register int ttxyc=0;ttxyc<(n);++ttxyc)//宏定义
int n,m,_;std::vector<int>a;char c;
main()
{
scanf("%d%d",&n,&m);//输入
rpt(n){scanf("%1d",&_);a.push_back(_);}//再输入
rpt(m)
{
for(;c=getchar(),c!='+'&&c!='-'&&c!='*'&&c!='/';);//获取操作
switch(c)
{
case'*':a.push_back(0);break;
case'/':a.pop_back();break;
case'+':++a.back();for(register int i=a.size()-1;a[i]==2;--i)++a[i-1],a[i]=0;break;
case'-':--a.back();for(register int i=a.size()-1;a[i]<0;--i)--a[i-1],a[i]=1;break;
}
}
for(register int i=0;i<a.size();++i)printf("%d",a[i]);//输出
}/**/