首页 > 其他分享 >二进制-01操作

二进制-01操作

时间:2023-08-04 17:12:32浏览次数:33  
标签:01 二进制 -- len ch int num 操作 scanf

Smiling & Weeping

                    ----听到一些事,明明不相干的,

                      也会在心中拐好几个弯想到你。

 思路:思路就是简单的模拟题,注意一直维护一个len(长度),若是*操作len++; 若是/操作我们就需要分两种操作了:

  • 若num[i] > 0 : num[i-1] += num[i]/2 , num[i] = 0 , len--;      //num[i]初始化为0
  • 若num[i] < 0 : num[i-1] += (num[i]-1)/2 , num[i] = 0 , len++;

最后,再展平即可,操作不细说,看代码相信你一定可以理解(把最高位的1均匀分到之后的每一位,即最后一位加2,除一位的其它位加1),(* ̄︶ ̄)

Talk is cheap , show me the code

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n , m , len;
 4 char num1[50000100] , ch[50000100];
 5 int num[50000100];
 6 int a , b;
 7 int main()
 8 {
 9     scanf("%d%d",&n,&m);
10     len = n;
11     scanf("%s",num1+1);
12     scanf("%s",ch+1);
13     for(int i = 1; i <= n; i++)
14         num[i] = num1[i]-'0';
15     for(int i = 1; i <= m; i++)
16     {
17         if(ch[i] == '*') {len++; }
18         if(ch[i] == '/')
19         {
20             if(num[len] > 1) num[len-1] += num[len]/2;
21             if(num[len] < 0){
22                 num[len-1] += (num[len]-1)/2;
23             }
24             num[len] = 0;
25             len--;
26         }
27         if(ch[i] == '+') num[len]++;
28         if(ch[i] == '-') num[len]--;
29     }
30     for(int i = len; i >= 2; i--)
31     {
32         num[i-1] += num[i]/2;
33         num[i] %= 2;
34     }
35     num[1]--;
36     for(int i = 2; i <= len; i++)
37         num[i]++;
38     num[len]++;
39     for(int i = len; i >= 2; i--)
40     {
41         num[i-1] += num[i]/2;
42         num[i] %= 2;
43     }
44     for(int i = 1; i <= len; i++)
45         printf("%d",num[i]);
46     return 0;
47 }

代码有些乱,还请见谅,⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

少年向来不知天高地厚,放眼处皆自负才高八斗,

  虽是自命风流,倒也坦诚无忧,

    我爱这样的少年

   谦和而狂妄,骄傲又坦诚。

标签:01,二进制,--,len,ch,int,num,操作,scanf
From: https://www.cnblogs.com/smiling-weeping-zhr/p/17606489.html

相关文章

  • 开发小计(01)
    1.Mybatis中sql语句复用<selectid="getInfoById"resultType="com.seari.basicinfo.entities.model.BasicParkWayInfo"parameterType="java.lang.String"><includerefid="selectInfo"/>whereWAY_ID=#{id}<......
  • Facebook 2013年的9个开源项目
    Facebook是全球最大的社交网站,它的成长背后离不开开源力量。其开源项目负责人JamesPearce介绍说,Facebook从写下自己的第一行PHP代码开始,第一次使用MySQLINSERT声明语句开始,开源就已经融入到公司的工程师文化里面了。  Facebook不仅取之开源,更是不断开源其内部项目,将内部成......
  • 表闪回操作
    1、表闪回查询select*from表名asoftimestampto_timestamp('2023-08-0415:25:00','yyyy-mm-ddhh24:mi:ss');2、表闪回(1)开启表闪回altertable表名enablerowmovement;(2)闪回表数据到某个时间点flashbacktable表名totimestampTO_TIMESTAMP('2023-08-0415:2......
  • AT_ttpc2015_g 题解
    洛谷的RMJ总是UKE,所以这一题是在ATcoder上做的,记录一,记录二。思路一首先字符串长度一定是\(6\)的倍数,然后判断是否只有\(t\)、\(i\)、\(e\)、\(c\)、\(h\)这五个字符,最后统计一下字符个数就行了。代码(错误):#include<iostream>#include<string>usingnamespacestd;......
  • 2014年工作中遇到的20个问题:141-160
    141.日期转换。//输入的时间为毫秒的准确时间//firstTime:1417139867916,lastTime:1419731867916publicstaticintgetDayBetweenTwoDate(longfirstTime,longlastTime){//当天的0点:1417104000000} 问题原因:firstCalendaStartTime-lastCalendaStartTime......
  • ActiveMQ任意文件写入漏洞(CVE-2016-3088)
    ActiveMQ任意文件写入漏洞(CVE-2016-3088)【现实项目遇到过】1.环境搭建cdvulhub-master/activemq/CVE-2016-3088docker-composeup-ddocker-composeconfig#查看靶场环境相关的配置信息docker-composedown#关闭靶场环境环境监听61616端口和8161端口,其中8......
  • 收集 301 医院 451 名老年冠心病患者数据,机器学习模型准确预测患者一年内死亡率
    内容一览:据国际糖尿病联盟(IDF)统计,2021年中国糖尿病患者数量占全球26%。而糖尿病患者血糖长期失控,有极高风险引起冠心病等并发症。近期,湖北省麻城市人民医院研究人员分析比较了多种模型,并用其中表现最优的机器学习模型,预测了中国老年冠心病合并糖尿病或糖耐量受损患者一年内......
  • DO-41封装整流二极管 1N4001G~1N4007G 型号齐全
    整流二极管1000V、1A,一般选用什么型号?最好DO-41封装!同样是DO-41封装反向电压1000V,1N4007和1N4007G有什么区别?1N4007G参数怎么看?价格多少?供货周期要多久?方便发下产品规格书吗?……针对上述提及的问题,整流二极管厂家东沃电子(DOWOSEMI)一一耐心为您解答。1)1000V1A整流二极管型号有哪些?......
  • 国标GB28181视频平台LntonGBS(源码版)国标平台正确调阅实时录像接口的具体操作步骤
    LntonGBS之所以成为安防市场的主流视频平台,主要得益于其架构优势。首先,LntonGBS采用了云边端一体化的架构,将云计算、边缘计算和终端设备有机结合,实现了数据的高效传输和处理。这种架构不仅能够满足大规模视频数据的存储和分析需求,还能够实现实时监控和快速响应,提高了安防系统的整体......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台优化设备通道视频播放出现跳屏的问题
    LntonGBS国标视频云服务支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格......