7.8 Cound 练习
- 题目:
给你一个字符串,字符串只有+和-,+代表1,-代表 -1,是正负正负交替进行运算,然后给你q个询问,每个询问给你两个数字L,R,在字符串区间[L, R]中使得这个区间的和为0需要删除的最小个数是多少? - 思路:
求前缀和,如果在这个区间里面删除一个下标为 i 的字符,只会对后面进行影响 前面的和为A = sum[i - 1] - sum[l - 1],后面的和为B = sum[r] - sum[i],修改以后后面的和取相反数,所以就要有 sum[i - 1] - sum[l - 1] = sum[r] - sum[i],也就是sum[i - 1] + sum[i] = sum[r] + sum[l - 1],sum[r],sum[l - 1]已知,然后sum[i - 1]和sum[i]相差1,所以他们相加是奇数,原来未改变的值 x = A + B + (1或者-1),那x一定得是奇数,次数就是1如果是偶数的话,就先删除一个 次数就是2 - 代码:
#include <bits/stdc++.h>
#define fi first
#define se second
#define endl '\n'
#define all(x) x.begin(),x.end()
#define pb push_back
#define PII pair<int,int>
#define ios ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define int long long
using namespace std;
const int N = 3e5 + 100,M = N,mod = 1e9 + 7,INF = 0x3f3f3f3f;
int sum[N];
void solve()
{int n,m; cin >> n >> m;string s; cin >> s;memset(sum,0,sizeof sum);for(int i = 0;i < n;i ++ ){if(i & 1){if(s[i] == '+')sum[i + 1] = sum[i] - 1;elsesum[i + 1] = sum[i] + 1;}else{if(s[i] == '+')sum[i + 1] = sum[i] + 1;elsesum[i + 1] = sum[i] - 1;}}while(m -- ){int l,r; cin >> l >> r;int t = sum[r] - sum[l - 1];if(t == 0) cout << "0" << endl;else if(t & 1) cout << "1" << endl;else cout << "2" << endl;}}signed main()
{ios;int T; cin >> T;while(T -- ) solve();return 0;
}
``
7.8 Cound 练习相关推荐
- Idea集成springboot报错(cound not autowire)
我是一个做程序的,不喜欢报红色的,所以一旦报错就想着法子去解决和处理 1.存在的问题 2.解决方法 把error改成warning就好了
- 使用 sched_setaffinity 将线程绑到CPU核上运行
linux 提供CPU调度函数,可以将CPU某一个核和指定的线程绑定到一块运行. 这样能够充分利用CPU,且减少了不同CPU核之间的切换,尤其是在IO密集型压力之下能够提供较为友好的性能. 通过sch ...
- linux下把进程绑定到特定cpu核上运行
现在大家使用的基本上都是多核cpu,一般是4核的.平时应用程序在运行时都是由操作系统管理的.操作系统对应用进程进行调度,使其在不同的核上轮番运行. 对于普通的应用,操作系统的默认调度机制是没有问题的. ...
- [转]Iphone NSString字符串常用方法
/******************************************************************************************* NSStrin ...
- linux 脚本给设备节点权限,[Linux] I2C设备读写及文件节点创建
Linux Kernel Version:3.0.35 Platform:Freescale DSA2L 通过I2C读取VGA屏的EDID信息(主要是分辨率),解析后喂给CH7036芯片(LVDS转V ...
- Windows phone 应用开发[12]-Pex 构建自动化白盒测试[下]
本篇承接于上篇Windows phone 应用开发[11]-Pex 构建自动化白盒测试[上] .大概了解Pex作为自动化白盒测试工具工作方式.以及提出参数化单元测试的概念.为开发人员减少手动编写大量独 ...
- NSArray,NSSet,NSDictionary总结 (转)
NSArray,NSSet,NSDictionary总结 博客分类: iphone 三种集合类来收集cocoa对象(NSObject对象): NSArray 用于对象有序集合(相当于是数组) NSSe ...
- 多线程编程之线程绑定处理器核
2019独角兽企业重金招聘Python工程师标准>>> Linux系统提供API函数sched_setaffinity和sched_getaffinity用于设置或获取线程的可以使用 ...
- xilinx axi dma 深入开发(一)
以下为官方 axidma-proxy 源码 /*** Copyright (C) 2021 Xilinx, Inc** Licensed under the Apache License, Versi ...
- NSStirng、NSArray、以及枚举(Method小集合)
以下内容由angellixf整理,这里制作记录: /************************************************************************** ...
最新文章
- 如何快速搭建一个简约美观的在线互动教室?
- Unity C#单例模式的实现
- 6行代码实现ASP无组件上传
- 3DSlicer14:Loadable Module
- html表格的表头怎么合并单元格,使用tableGrob合并表头单元格
- python各个版本改动
- linux yun nginx,Linux - CentOS 7 通过Yum源安装 Nginx
- 课时4:改进我们的小游戏
- SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.解决方法
- Atitit httpclient 概述 rest接口
- Java集合框架和重要接口、类
- linux 邮件文件名 病毒,linux-qmail 病毒/垃圾邮件处理
- “K米” 软件产品评测
- php excel速度慢,window_win10双击打开excel太慢了的三种解决办法,win10双击打开excel文件慢该怎么 - phpStudy...
- 2021洛谷10月月赛3游记
- Isito - Rate Limits(请求限速)
- Scapy的介绍(一)
- C语言输出不能被3整除
- Firebase入门使用 01
- 帝国cms7.5漏洞复现
热门文章
- EAN13商品条码数据如何居中显示
- 分享一个蛋白互作网站——String (一)
- win7 局域网访问网站
- uni-app 小程序引入字体图标
- 梨花带雨html音乐播放器源码,梨花带雨 - 雨陌文化传媒 - 5SING中国原创音乐基地...
- 错误:Error:java.lang.RuntimeException: Some file crunching failed, see logs for details解决方案
- tp6 支付宝沙箱支付
- ORA-00932:数据类型不一致:应为NUMBER,但却获得CHAR
- html自定义文本框,JavaScript自定义文本框光标
- Hexo 设置博客背景图片 (NexT 主题 )