今天我们来讲一下一维差分

什么是差分呢?

比如有一个一维数组a,他的前缀和数组是b,那么a数组就是b数组的差分数组

也就是说,一个一维数组就是它的前缀和数组的差分数组

非常好理解是8

来看一下题目(又是非常简单的一维差分题a)

‘P’代表布,‘S’代表剪刀,‘H’表示石头。‘P’能赢‘H’,‘H’能赢‘S’,‘S’能赢‘P’。小愤同学与小千同学玩N轮游戏,给出小愤同学每一轮出的手势,小愤同学第i 轮游戏出的手势是f[i],其中f[i]是‘P’或者‘H’或者‘S’三种手势之一。小千同学比较懒,具体来说,他在整个N轮游戏过程中,最多只改变一次手势。小千同学想知道,在上述条件限制下,他最多能赢多少轮?

输入:第一行,一个整数N。  1 <= N <= 100000。
接下来有N行,第i 行是f[i]。f[i]是‘P’或者‘H’或者‘S’三种手势之一。

输出:一个正整数。

输入样例:

5
P
P
H
P
S

输出样例:

4
【样例解释】
小千出的手势依次是: S、S、S、S、H,能赢4轮。

相信大家不花10秒就能理解啊

给一下简陋的代码

#include<bits/stdc++.h>
using namespace std;
int n,p[100010],h[100010],s[100010],P,H,S,zd1,zd2,zzd;
char a[100010];
int main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){if(a[i]=='P') p[i]=p[i-1]+1;else p[i]=p[i-1];if(a[i]=='H') h[i]=h[i-1]+1;else h[i]=h[i-1];if(a[i]=='S') s[i]=s[i-1]+1;else s[i]=s[i-1];}for(int i=1;i<=n;i++){zd1=zd2=0,P=p[i],H=h[i],S=s[i];if(P>zd1) zd1=P;if(H>zd1) zd1=H;if(S>zd1) zd1=S;P=p[n]-p[i],H=h[n]-h[i], S=s[n]-s[i];if(P>zd2)  zd2=P;if(H>zd2)  zd2=H;if(S>zd2)  zd2=S;if(zd2+zd1>zzd)  zzd=zd2+zd1;}cout<<zzd;return 0;
}

剪刀石头布二(ptwo) 时限:1s 空间:256m相关推荐

  1. 二进制空间权重矩阵_白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵...

    原标题:白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵 中国古代就有"天圆地方"一说,所谓的"方"就是所谓的矩阵-- 在军事上面,最为讲究就是团体的力 ...

  2. 第十二章 矢量数据的空间分析-缓冲区分析

    第十二章 矢量数据的空间分析-缓冲区分析 1. 缓冲区的概念 2. 创建点.线.面的缓冲和有关参数的说明 侧类型(可选)将进行缓冲的输入要素的侧 末端类型(可选) 融合类型(可选)指定要执行那种融合操 ...

  3. SketchUp的自动化实战 (二)获取内部空间

    SketchUp的自动化实战 (二)获取内部空间 之前在做光伏插件的时候用到了投影功能, 投影功能有很多应用场景, 今天我们来制作一个获取柜体 内部空间 的插件. 获取柜体内部空间 ▼ (获取内部抠门 ...

  4. moran指数 r语言_白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(2):不同空间关系对莫兰指数的影响...

    原标题:白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(2):不同空间关系对莫兰指数的影响 上一篇,讲了R语言中的空间权重矩阵的结构,这一节讲讲R语言里面空间权重矩阵的自定义. 与Ar ...

  5. 跳舞(shuffle) 时限:1s 空间:256m

    先看看题目 农夫John在教他的奶牛跳一种舞蹈,每跳一次舞都要按给定的规则进行位置的变换.他首先把奶牛按一定的顺序排成一行,再按这种舞蹈的规则进行位置的变换,经过3次的位置变换后,会得到一个新的顺序. ...

  6. 【作业调查题】时限:1s 空间:256m

    晨晨所在班今天进行了一次调查,要求每个学生给出昨天晚上花在语文.数学.英语作业的时间(以分钟为单位),这样就可以知道学生做完作业最慢的用了多少时间,最快的用了多少时间,现在要求算出平均用时是多少?平均 ...

  7. FDS学习笔记(二)设置时间空间条件,fds中网格(MESH)的设置

    通常来说,在建立一个火灾模型时,首先要确定全局参数,即火灾蔓延的时间和空间.即仿真时间.计算域的大小和范围 一.HEAD 设置输入文件时要做的第一件事是给模拟起一个名字,HEAD就是用来设置改项内容的 ...

  8. 【STL深入学习】SGI STL空间配置器详解(二)-第二级空间配置器

    本文讲解SGI STL空间配置器的第二级配置器. 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片.不仅仅是碎片的问题,配置时的额外负担也是一个大问题.因为区块越小,额外负担所占 ...

  9. 网页分享功能 支持 微信二维码 qq空间 qq好友 新浪微博 百度贴吧 豆瓣 人人...

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

最新文章

  1. WTForms 小计1 forms
  2. 删除Nifi中的template
  3. AcWing之二维数组的查找
  4. (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第六、七节:视图
  5. php苹果app微信支付 无法返回,微信支付,php_微信支付APP返回-1怎么解决,微信支付,php,移动app - phpStudy...
  6. Python学习笔记之类(三)
  7. linux 查看是否安装perl模块
  8. 艺术签名制作工具v1.0
  9. mysql 备份库的shell_linux备份Mysql数据库shell_MySQL
  10. 2018CCPC网络赛
  11. wdcp如何修改phpmyadmin导入 最大限制2048 KB
  12. win10下装黑苹果双系统_手把手教你轻松安装 Win10/ 黑苹果macOS10.14.1双系统
  13. laydate点击输入框闪一下不见了_解决layui laydate 时间控件一闪而过的问题
  14. thinkpad锁屏壁纸存放目录
  15. bzoj4816 [Sdoi2017]数字表格(反演)
  16. window出现msvcp100.dll缺失问题
  17. iOS进阶 - GCD总结
  18. 英语微课-Speaking Confidently
  19. 华为笔记本能装手机App了,华为移动应用引擎(公测版)
  20. mysql动态ip域名连接_用本地动态IP连接本地mysql

热门文章

  1. docker多容器操作与强制删除容器的方法步骤
  2. 使用 css-transform 实现更好的拖拽功能
  3. 信用评分与数据挖掘(一~七)
  4. 生活在数据时代;聊聊数据分析在当今社会生活中的有趣应用
  5. 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
  6. 使用python快速搭建接口自动化测试脚本实战总结
  7. HTML——表格table
  8. 雅安职业技术学院工业机器人专业_雅安职业技术学院有哪些专业_2020年学费标准_中职中专网...
  9. 基于Eureka服务治理的高可用性注册中心搭建
  10. mpp文件能转换成PDF