积累模拟经验

题目描述

维护一个二进制数,支持如下操作

  • "+" 该数加 11
  • "-" 该数减 11
  • "*" 该数乘 22
  • "\" 该数除 22 并下取整

保证操作过程中不会出现负数

输入格式

第一行 n,m 表示原数和指令的长度

第二行 一个 01 串,从高位到低位表示一个二进制数

第三行 指令

输出格式

输出操作后的数,二进制,无前导 0


题目分析

延迟处理进退位

 #include<bits/stdc++.h>
const int maxn = ; int n,m,a[maxn<<],lens;
char s[maxn],t[maxn]; int main()
{
scanf("%d%d%s%s",&n,&m,s+,t+);
lens = n;
for (int i=; i<=n; i++) a[i] = s[i]-'';
for (int i=; i<=m; i++)
{
if (t[i]=='+') a[lens]++;
if (t[i]=='-') a[lens]--;
if (t[i]=='*') a[++lens] = ;
if (t[i]=='/'){
if (a[lens] < )
a[lens-] -= (-a[lens]+)>>;
else a[lens-] += a[lens]>>;
a[lens--] = ;
}
}
for (int i=lens; i; i--)
if (a[i] < )
a[i-] -= (-a[i]+)>>, a[i] = (-a[i])&;
else a[i-] += a[i]>>, a[i] = a[i]&;
for (int i=; i<=lens; i++) putchar(a[i]+'');
return ;
}

END

【模拟】HHHOJ#251. 「NOIP模拟赛 伍」高精度的更多相关文章

  1. 「NOIP模拟赛」数位和乘积(dp,高精)

    统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又 ...

  2. 「NOIP模拟赛」Round 3

    Tag 计数+LIS, 二分+ST表, 计数+记搜 A. 改造二叉树 Description 题面 Solution 如果目标序列非严格递增,或者说目标序列是不下降的,那么答案就是 \(n\) 减去最 ...

  3. 「NOIP模拟赛」Round 2

    Tag 递推,状压DP,最短路 A. 篮球比赛1 题面 \(Milky\ Way\)的代码 #include <cstdio> const int N = 2000, xzy = 1e9 ...

  4. NOIP模拟测试21「折纸&#183;不等式」

    折纸 题解 考试时无限接近正解,然而最终也只是接近而已了 考虑模拟会爆炸,拿手折纸条试一试,很简单 考你动手能力 代码 #include<bits/stdc++.h> using name ...

  5. NOIP模拟测试10「大佬·辣鸡·模板」

    大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...

  6. HHHOJ #153. 「NOI模拟 #2」Kotomi

    抽代的成分远远大于OI的成分 首先把一个点定为原点,然后我们发现如果我们不旋转此时答案就是所有位置的\(\gcd\) 如果要选择怎么办,我们考虑把我们选定的网格边连同方向和大小看做单位向量\(\vec ...

  7. HHHOJ #151. 「NOI模拟 #2」Nagisa

    计算几何板子题(我才没有拷板子的说--) 众所周知,三角形的重心坐标是\((\frac{x_1+x_2+x_3}{3},\frac{y_1+y_2+y_3}{3})\) 然后我们发现如果我们有一个点集 ...

  8. 【HHHOJ】NOIP模拟赛 玖 解题报告

    点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...

  9. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

随机推荐

  1. iOS - 验证输入的是否是正确的身份证号码和手机号码

    - (BOOL)checkIdentityCardNo:(NSString*)cardNo { if (cardNo.length != 18) { return  NO; } NSArray* co ...

  2. git 基本操作——上传文件与项目分支管理

    创建并转入新分支:git checkout –b XX(其中XX代表分支名称) 将新分支发布在github上: git push origin Branch1 往分支中添加文件:git add mas ...

  3. 安装mongo可视化管理工具mongo admin

    https://github.com/mrvautin/adminMongo github地址 安装要求下载下来,然后安装即可 中间出现了问题: 说是开了代理,可以关掉代理之后,然后把下载下来的删了, ...

  4. APP携参安装技术怎样帮助APP推广

    APP 如何自动实现携带参数安装?这是许多开发者感兴趣的问题,毕竟在 APP 开发的许多逻辑上常常不可避免的需要判断安装来源,比如:广告投放.用户邀请.用户行为.社交分享等 APP 推广环节,国内的 ...

  5. Glassfish 4 修改server.log 等配置

    如果所示:

  6. 常用CMD指令

    快捷方式: dcomcnfg.exe   打开windows的组件服务. regedit   打开windows的注册表的界面,进行管理. services.msc  打开service面板 calc ...

  7. Nginx功能介绍

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的. 从2004年发布至今,凭借开元的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作 ...

  8. Linux .Net Core

    Linux .Net Core自宿主应用程序瘦身记 一,.NET Core 自宿主应用程序个头有点大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标 ...

  9. setTimeout的异步传输机制

    setTimeout是异步的,在设置完setTimeout后,指定代码会在设定的时间后加入到任务队列,但并不是立即执行,js是单线程语言,所有的代码按顺序执行,即同步执行,同步执行的代码放在执行队列中 ...

  10. SQLServer数据库表字段超长,找到超长字段脚本

    平时开发系统时偶尔会遇到数据超长导致往数据库中保存时出错. 使用下边的脚本可以方便的找出超长的字段. 1.通过正式表创建临时表,修改临时表中varchar.nvarchar的长度为max ); ); ...