2104 二进制

news/2024/7/15 20:12:07 标签: c++, 图论, 开发语言

2104 二进制

这不就是一个很简单的模拟吗
按照题目进行模拟,然后处理进位啊
这个题我感觉挺简单的
不配做黄题

‘*2’:在二进制中,乘以2就相当于十进制中的乘以十,只需要将数字右移一位即可,因为我们用字符串来存储直接在字符串格式存储的二进制数字末尾加零即可
‘/2’:除以二就是乘以二的逆运算,乘以二把数字右移一位,除以二就要将数字左移一位即可,字符串处理的话,我们只需要将数字末尾赋值成’\0’即可,也就是没有了,直接往右
‘+2’:这个貌似有点麻烦了,因为需要处理进位。我很讨厌进位,非常难搞。加一的规律:从后往前遍历,将每一位赋值成0,直到遇到原本的零,将其赋值成1,结束计算。然鹅,如果原数一个零也没有
例如11111,加一就涉及到进一的问题了。但是,题目中有提到:“数据保证+,-操作不会导致最高位的进位与退位”,所以,我们并不需要考虑这个问题而将整个数组移位。
‘-2’:类似地,-2也是+2的逆运算,原来是将一变零,遇到原本就是零为止,现在只需要将零变一,遇到原本就是一为止。
搞个循环就行了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
char s[100000005],oper[6000005];
int main()
{
	int n,m;
	scanf("%d%d%s%s",&n,&m,s,oper);
	for(int i=0;i<m;i++)
	{
		switch(oper[i])
		{
			case '*': s[n++]='0';break;
			case '/': s[--n]='\0';break;
			case '+': for(int k=n;s[--k]!='0'&&(s[k]='0')||!(s[k]='1');); break;
			case '-': for(int k=n;s[--k]!='1'&&(s[k]='1')||!(s[k]='0');); break;
		}
	}
		
	puts(s);
	return 0;
}

http://www.niftyadmin.cn/n/849537.html

相关文章

VMware10.0+Ubuntu14.04设置共享文件夹

一、共享失败 VMware版本&#xff1a;VMware-workstation-full-10.0.0-1295980 Ubuntu版本&#xff1a;Ubuntu14.04.1 TLS 在VMware10.0中安装Ubuntu10.04、Ubuntu12.04使用起来都比较正常(可以设置共享文件夹)&#xff0c;但是安装Ubuntu14.04就不是那么顺了。按照参考资料[1]…

oracle park队,Park

标签&#xff1a;365[1]Insert CentOS install diskand start the Computer. Then, Following screen is displayed, PushEnter key to proceed.标签&#xff1a;365[1]标签&#xff1a;mysqlConfigure MySQL Replication settings. This configuration is generalMaster-Slave…

1003 铺地毯

1003 铺地毯 题意&#xff1a;首先一个平面&#xff0c;看成一个平面直角坐标系的象限&#xff0c;然后有什么地毯&#xff08;也就是一个矩形&#xff09;&#xff0c;然后这些个矩形编号1~n&#xff0c;将这些个地毯会有重合覆盖&#xff0c;给定一个查询的点&#xff0c;问…

J2EE,我们还需要什么--给陷于J2EE开发中忧郁的人们

我想最初作者无非是想吐槽一下而已&#xff0c;却反映了J2EE程序员的现状。他们使用着J2EE复杂体系之下如此之多的框架&#xff0c;却被项目经理或是开发组长催着去快速构建企业应用。程序员的好奇心&#xff0c;在这种高压状态下&#xff0c;很容易丢失状态&#xff0c;忧郁、…

php文件上传兼容浏览器,ajax文件上传成功 解决浏览器兼容问题

这篇文章主要为大家详细介绍了ajax文件上传的相关资料&#xff0c;成功解决了浏览器兼容问题&#xff0c;感兴趣的小伙伴们可以参考一下ajaxfileupload控制很好用&#xff0c;不过发现上传文件后的结果为被浏览器处理&#xff0c;IE不会&#xff0c;谷哥和火狐都会进行处理&…

1008 三连击

1008 三连击 这个题很简单&#xff0c;没有什么难理解的&#xff0c;就是这里需要用到一个算法 题意让我们求每一个三连击的数&#xff0c;不如我们直接按照三连击条件筛选数&#xff0c;然后输出就好了 a[i%10]a[i/10%10]a[i/100]a[i2%10]a[i2/10%10]a[i2/100]a[i3%10] a[i3/…

VirualBox+Ubuntu14.04

一、一些提示 二、设置共享文件夹 三、Ubuntu14.04的改变 最后发现&#xff0c;Ubuntu14.04的共享目录不在/mnt下&#xff0c;而是在/media下&#xff01; 参考资料 [1]VirtualBox如何共享文件夹 [2]VirtualBox内Linux系统怎样与Windows共享文件夹 [3]virtualboxubuntu设置共…

我的线段树扫描线问题模板

/* 在求周长之前最好线看一下求面积&#xff0c;这样再求周长回好理解很多。题目是POJ 1177 http://poj.org/problem?id1177POJ 1151也是这类问题&#xff0c;不过是求面积的&#xff0c;更简单一些。 */#include <iostream> #include <cstdio> #include <cmat…