洛谷 P5640 【CSGRound2】逐梦者的初心 题解
每日一题 day33 打卡
Analysis
这道题太难♂了,居然才是蓝的。
每个位子和每种字符都是独立的,对每种字符都记录一下位子。
用f[i]=0 or 1 表示长度为ii的后缀可不可以,0表示可以,1表示不行。
考虑f只有0和1,可以用bitset优化,对每种字符都开一个bitset记录是不是该字符。
在末尾加一个字符时,左移后做or运算。
在开头加一个字符时,直接or上该字符出现的状态左移长度减一位。
答案就是范围内0的个数。
复杂度O(m^2/w)
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<bitset>
- #define int long long
- #define R register
- #define maxn 1000000+10
- #define maxm 33333+10
- #define maxnum 1000+10
- #define rep(i,s,e) for(register int i=s;i<=e;++i)
- using namespace std;
- inline int read()
- {
- int x=;
- bool f=;
- char c=getchar();
- for(; !isdigit(c); c=getchar()) if(c=='-') f=;
- for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
- if(f) return x;
- return -x;
- }
- inline void write(int x)
- {
- if(x<){putchar('-');x=-x;}
- if(x>)write(x/);
- putchar(x%+'');
- }
- int n,m;
- int s[maxn];
- bitset<maxm> now,ans,num[maxnum];
- signed main()
- {
- n=read();m=read();
- rep(i,,n) s[i]=read();
- rep(i,,m) num[s[i]].set(i);
- now.set();
- rep(i,,m)
- {
- int op=read(),ch=read();
- now.reset(i);
- if(op==) ans=(ans<<)|num[ch];
- else if(op==) ans=ans|num[ch]<<(i-);
- write((~(ans|now)).count());
- putchar('\n');
- }
- return ;
- }
请各位大佬斧正(反正我不认识斧正是什么意思)
洛谷 P5640 【CSGRound2】逐梦者的初心 题解的更多相关文章
- 洛谷 P5640 【CSGRound2】逐梦者的初心
洛谷 P5640 [CSGRound2]逐梦者的初心 洛谷传送门 题目背景 注意:本题时限修改至250ms,并且数据进行大幅度加强.本题强制开启O2优化,并且不再重测,请大家自己重新提交. 由于Y校的 ...
- 【洛谷P3369】【模板】普通平衡树题解
[洛谷P3369][模板]普通平衡树题解 题目链接 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3 ...
- 洛谷 P1992 不想兜圈的老爷爷 题解
洛谷 P1992 不想兜圈的老爷爷 题解 题目描述 一位年过古稀的老爷爷在乡间行走 而他不想兜圈子 因为那会使他昏沉 偶然路过小A发扬助人为乐优良传统 带上地图 想知道路况是否一定使他清醒 usqwe ...
- BZOJ5285 & 洛谷4424 & UOJ384:[HNOI/AHOI2018]寻宝游戏——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 ht ...
- 洛谷p3384【模板】树链剖分题解
洛谷p3384 [模板]树链剖分错误记录 首先感谢\(lfd\)在课上调了出来\(Orz\) \(1\).以后少写全局变量 \(2\).线段树递归的时候最好把左右区间一起传 \(3\).写\(dfs\ ...
- 洛谷 P1789 【Mc生存】插火把 题解
P1789 [Mc生存]插火把 题目背景 初一党应该都知道...... 题目描述 话说有一天 linyorson 在"我的世界"开了一个 \(n\times n(n\le 100) ...
- 【CSGRound2】逐梦者的初心(洛谷11月月赛 II & CSG Round 2 T3)
题目描述# 给你一个长度为\(n\)的字符串\(S\). 有\(m\)个操作,保证\(m≤n\). 你还有一个字符串\(T\),刚开始为空. 共有两种操作. 第一种操作: 在字符串\(T\)的末尾加上 ...
- 洛谷p3799:妖梦切木棒
题意:任选四段木板拼正三角形 因为是正三角形 所以我们可以想到至少是两个相同的,剩下两个拼成最后一条边 我们只需要枚举边长即可 那么我们对每次读入的x,使他的cnt++ 考虑用一个二重循环 外层枚举边 ...
- 题解 洛谷P3799 【妖梦拼木棒】
一道水题 (还是做了一个小时,我太菜了 基本思路: 题里面说,4根棍子拼成一个正三角形(等边三角形) 若设这四根棍子长度为\(a,b,c,d\)且\(a≥b>c≥d\) 那很容易得到 (真的很容 ...
随机推荐
- Linux进程的五个段
目录 数据段 代码段 BSS段 堆(heap) 栈 数据段 用来存放可执行文件中已初始化的全局变量,换句话说就是存放程序静态分配的变量和全局变量: 代码段 代码段是用来存放可执行文件的操作指令,也就是 ...
- gorm 实现 mysql for update 排他锁
关于 MySQL 的排他锁网上已经有很多资料进行了介绍,这里主要是记录一下 gorm 如果使用排他锁. 排他锁是需要对索引进行锁操作,同时需要在事务中才能生效.具体操作如下: 假设有如下数据库表结构: ...
- 【转】Redis 基础操作和命令
笔记 Redis提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...
- 3.MVC基础-Code First 入门完整实例
1.添加一个EF的上下文类 EFDbContext public class EFDbContext:DbContext { public EFDbContext() : base("EF ...
- PDF时间戳 服务器
好用权威免费的PDF文件数字签名时间戳服务器URL http://tss.pki.gva.es:8318/tsa
- wstngfw中使用虚拟IP映射内网IP
wstngfw中使用虚拟IP映射内网IP -------------------------------- Server01: IP: 192.168.195.73/24 GW: 192.168.19 ...
- 解决SecureCRT 中文乱码??
在linux服务器上搭建solr,用的是SecureCRT 连接linux服务器,发现不能输入中文,配置文件中的中文也是乱码:先以为是SecureCRT工具编码的问题,把编码改成utf-8之后发现还 ...
- 使用sequelize对数据库进行增删改查
由于本人对于命令比较执着,所以基本都是在命令下操作的,喜欢使用命令的可以使用Cmder,需要安装.配置的可以参考这篇文章: https://www.cnblogs.com/ziyoublog/p/10 ...
- require.context实现前端工程自动化
require.context是什么 一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多 ...
- 微信小程序自定义toast的实现
今天写微信小程序突然发现一个尴尬的问题,请求报错需要提示,就去小程序API里找,可悲的小程序的toast并不能满足我的需求,原生提供的方法调用如下 wx.showToast({ title: '成功' ...