有奖求调!!!

news/2024/10/5 11:55:18/文章来源:https://www.cnblogs.com/YuenYouth/p/18447733

T3 求调,12:00 之前调成功悬一袋红烧牛肉面

#include<bits/stdc++.h>
#define Type int
#define qr(x) x=read()
typedef long long ll;
using namespace std;inline Type read(){char c=getchar(); Type x=0;while(!isdigit(c))c=getchar();while(isdigit(c))x=(x<<1)+(x<<3)+(c^48),c=getchar();return x;
}const int N = 2e5 + 10;
const int mod = 1e9 + 7;int n, q, f[N];
char s[N];int P(char A, char B){if(A == '#' or B == '@') return 1;if(A == B) return 0;if(A == 'R'){if(B == 'S') return 1;else return -1;}else if(A == 'S'){if(B == 'P') return 1;else return -1;}else{if(B == 'R') return 1;else return -1;}
}
struct tree{int v, pos, tag;bool operator < (const tree &A) const{return v < A.v;}}t[N<<3];
namespace Tree
{#define lson rt<<1#define rson rt<<1|1inline void pushup(int rt){if(t[lson].v < t[rson].v) t[rt].v = t[lson].v, t[rt].pos = t[lson].pos;else t[rt].v = t[rson].v, t[rt].pos = t[rson].pos;}inline void pushdown(int rt){if(t[rt].tag){t[lson].tag += t[rt].tag, t[rson].tag += t[rt].tag;t[lson].v += t[rt].tag, t[rson].v += t[rt].tag;t[rt].tag = 0;}}inline void build(int rt, int l, int r){if(l == r){t[rt].v = f[l], t[rt].pos = l;return;}int mid = (l + r) >> 1;build(lson, l, mid),build(rson, mid+1, r);pushup(rt);// if(t[rt].pos == 0) cout<<"CTHisSB\n";}inline void update(int rt, int l, int r, int pos, int val){if(pos <= l and r <= n){t[rt].tag += val, t[rt].v += val;return;}pushdown(rt);int mid = (l + r) >> 1;if(pos <= mid) update(lson, l, mid, pos, val);if(n > mid) update(rson, mid+1, r, pos, val);pushup(rt);}inline tree query(int rt, int l, int r, int L, int R){if(L <= l and r <= R) return t[rt];pushdown(rt); int mid = (l + r) >> 1;if(R <= mid) return query(lson, l, mid, L, R);else{if(L > mid) return query(rson, mid+1, r, L, R);else return min(query(lson, l, mid, L, R), query(rson, mid+1, r, L, R));}}
}signed main(){freopen("a.in", "r", stdin), freopen("a.out", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);qr(n), qr(q), cin>>(s+1);f[1] = 1; s[0] = '#', s[n+1] = '@';for(int i=2; i<=n; i++)f[i] = f[i-1] + P(s[i-1], s[i]);Tree::build(1, 1, n);while(q--){int qr(op);switch(op){case 1:{int qr(p); char c; cin>>c; int now = P(s[p-1], c) - P(s[p-1], s[p]);Tree::update(1, 1, n, p, now); now = P(c, s[p+1]) - P(s[p], s[p+1]);Tree::update(1, 1, n, p+1, now); s[p] = c;  break; }default:{int qr(l), qr(r); cout<<s[Tree::query(1, 1, n, l, r).pos]<<"\n"; break;}}}return 0;
}

为了方便判断,我让 s[0]='#',但交到 oj 上却输出了这个:

显然是返回了 0,但是毫无缘由,代码里注释部分是输出树上所有点的 pos,结果没有为 0 的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808399.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c盘清理指南

1.清理缓存文件 快捷键Win+R输入%temp%2.磁盘清理直接win键+搜索磁盘清理3.休眠文件关闭关机时下次开机powercfg -h off 有需要休眠文件的时候再powercfg -h on 4.临时文件 设置→系统→存储→临时文件,删除! 5.把ubuntu从c移到d出现0x80073cf6错误代码 https://www.yundongf…

轻松找到并查看织梦CMS的数据库配置文件,从而获取数据库连接信息

使用FTP工具连接到服务器。 导航到 /var/www/html/include 目录。 打开 config.inc.php 文件。使用SSH连接到服务器。 切换到相应目录:bashcd /var/www/html/include使用文本编辑器打开文件:bashvi config.inc.php通过以上步骤,你可以轻松找到并查看织梦CMS的数据库配置文件…

使用ValueConverters扩展实现枚举控制页面的显示

1、ValueConverters 本库包含了IValueConverter接口的的最常用的实现,ValueConverters用于从视图到视图模型的值得转换,某些情况下,可用进行反向转换。里面有一些抽象类、模板类的定义,可以继承这些类实现一些自己想要实现的功能,方便快速。像BoolToValueConverterBase、V…

【Shiro】3.Springboot实现缓存

最近已经快速入门了Shiro。对于登录、授权、认证等方法,每次都是从数据库直接查询。如果登录的人员过多,对数据库来说,是一项压力。如何减轻数据库的压力。EhCache 实现缓存 集成 Redis 实现 Shiro 缓存(推荐使用)在此之前,我们已经简单学会EhCache 和Reids的使用。 EhCa…

织梦如何数据库备份,织梦cms网站数据怎么备份与还原

织梦CMS(DedeCMS)的数据库备份和还原是非常重要的操作,可以帮助你在出现问题时快速恢复数据。下面详细介绍如何进行织梦CMS的数据库备份和还原。 一、数据库备份 1. 使用 phpMyAdmin 备份数据库登录 phpMyAdmin登录到你的网站控制面板(如 cPanel)。 找到并打开 phpMyAdmin…

【软考】3 校验码

校验码 码距概念:任意进制的两个码值之间的最小二进制位数称为校验码的码距 例如:二进制1bit位,从0到1,则码距是1,二进制2bit位 从 00 到 11 一共4个码字,但码距还是为1 可以设置 性别男为 00 女为 11两个合法码字,则该两个合法码字的最小码距为2 (间隔 01 和 10 两个)…

IOU指标

IOU:全称 intersection over union 交并比,两个区域真实框和预测框之间的交集比他们之间的总面积-交集的 IOU指标:通常用于评估计算机视觉任务中的模型性能,特别是目标检测和图像分割。一个较高的IoU值意味着模型的定位和分割精度更好。

Redis安装管理, RDB, AOF ubuntu使用

1.1 Redis 基础redis单线程处理用户请求,不用加锁。其他线程做别的工作1.2 Redis 安装 Ubuntu 安装 Redis 范例:基于官方仓库包安装 (可以安装最新版本)#官方地址 https://redis.io/docs/install/install-redis/install-redis-on-linux/#导入key [root@ubuntu2204 ~]#curl -f…

查找和管理数据库的具体步骤

登录MySQL命令行使用SSH连接到服务器。 登录MySQL命令行:bashmysql -u root -p输入MySQL root用户的密码。查看数据库列表在MySQL命令行中查看所有数据库:sqlSHOW DATABASES;选择织梦CMS数据库选择织梦CMS使用的数据库:sqlUSE dedecmsv56gbk;查看数据库表查看织梦CMS数据库中…

DedeCMS Error Track:DedeCMS错误警告:连接数据库失败

当织梦CMS(DedeCMS)出现“连接数据库失败”的错误时,可以通过以下几个步骤进行排查和解决: 1. 检查数据库配置文件打开配置文件打开织梦CMS的数据库配置文件 include/config.inc.php。 使用FTP工具或SSH连接到服务器,然后打开该文件。检查配置信息确认数据库配置信息是否正…

SpringMVC内容

SpringMVC简介 SpringMVC(Model View Controller) 是以Servlet API为基础的 Web 框架并可以部署到 Servlet容器(比如:Tomcat),是控制层框架,主要负责与前端交互,接收前端的参数,在服务层进行交互,并把结果返回会前端页面。 SpringMVC工作原理当发送请求的时候,Dis…

Linux系统安装Pycharm专业版【附破解方法】

​写在前面 本教程适用于 Pycharm 2022.2.3 以下所有版本 一、版本信息 虚拟机产品:VMware Workstation 17 Pro 虚拟机版本:17.0.0 build-20800274 ISO映像文件:ubuntukylin-22.04-pro-amd64.iso Pycharm版本:PyCharm 2022.3.3 (Professional Edition) 资源链接:https:/…