【POI2011】LIZ-Lollipop 【构造】

传送门

题意:给一个长度为nnn的只有111222的序列,多次询问给定xxx构造或判断无法构造一个区间和为xxx

注意到111222实质上是改不改变奇偶性,所以往这上面考虑

我们发现如果一个区间[L,R][L,R][L,R]和为x(x>2)x(x>2)x(x>2),我们就可以构造出x−2x-2x2。方法是如果端点有222把这个222去掉,否则两边都是111,把两边都去掉。

也就是说,如果xxx可以构造,那么小于xxx的奇偶性相同的正整数都可以构造出。

那我们只需要对奇数和偶数分别找出最大的即可。

显然[1,n][1,n][1,n]是其中一个。

然后找到离端点最近的111,整体挖掉就可以改变奇偶性,显然是最大的。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#define MAXN 2000005
using namespace std;
int l[MAXN],r[MAXN];
char s[MAXN];
int a[MAXN];
int main()
{int n,m;scanf("%d%d",&n,&m);scanf("%s",s+1);int sum=0;for (int i=1;i<=n;i++) sum+=(a[i]=1+(s[i]=='T'));l[sum]=1,r[sum]=n;int k1=0,k2=0;while (a[k1+1]==2) ++k1;while (a[n-k2]==2) ++k2;if (k1<n-1||k2<n-1){if (k1<k2)	l[sum-2*k1-1]=k1+2,r[sum-2*k1-1]=n;else 	l[sum-2*k2-1]=1,r[sum-2*k2-1]=n-k2-1;		}for (int i=sum;i>=3;i--){if (!l[i]) continue;if (a[l[i]]==2) l[i-2]=l[i]+1,r[i-2]=r[i];elseif (a[r[i]]==2) l[i-2]=l[i],r[i-2]=r[i]-1;else l[i-2]=l[i]+1,r[i-2]=r[i]-1;}while (m--){int x;scanf("%d",&x);if (!l[x]) puts("NIE");else printf("%d %d\n",l[x],r[x]);}return 0;
} 

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

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

相关文章

kubernetes实战篇之helm示例yaml文件文件详细介绍

前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart.Helm Chart 结构Chart 目录结构mychart/ Chart.yaml LICENSE README.md values.yaml requirements.yam…

P4309 [TJOI2013]最长上升子序列 平衡树 + dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 注意到一个很关键的条件&#xff0c;每次插入iii&#xff0c;而iii是递增的&#xff0c;也就是说插入iii之后只会从前面的最大值转移过来&#xff0c;所以我们现在只需要维护插入操作即可&…

【AGC035C】Skolem XOR Tree【异或】【构造】

传送门 题意&#xff1a;给定nnn&#xff0c;构造或判断无法构造一个2n2n2n个结点的树&#xff0c;其中结点iii和ininin的权值为iii,且所有iii和ininin路径权值异或和等于iii。 注意到 2i⊕2i112i\oplus2i112i⊕2i11&#xff0c;然后可以脑补出 然而111没处理 发现1⊕2⊕301\…

ASP.NET Core 管道再探

几乎任何服务器端处理环境都有自己的直通组件管道&#xff0c;用于检查、重路由或修改传入请求和传出响应。经典 ASP.NET 围绕 HTTP 模块理念进行排列&#xff0c;而 ASP.NET Core 采用基于中间件组件的更现代的体系结构。最终目的是相同的 - 允许可配置的外部模块以请求&#…

GRPC与.net core

QQ讨论群&#xff1a;953553560正文系列章节GRPC与.net coreGRPC截止时间与元数据GRPC与netcore IdentityGRPC与netcore IdentityServer4概述GRPC的数据交互模式有&#xff1a;1.单项RPC&#xff0c;最简单的数据交换方式&#xff0c;客户端发出单个请求&#xff0c;收到单个响…

【Hitachi2020C】ThREE【构造】【二分图染色】

传送门 题意&#xff1a;给一棵nnn个结点的树&#xff0c;构造一个nnn阶排列ppp&#xff0c;使得所有距离为333的点对(i,j)(i,j)(i,j)满足pipjp_ip_jpi​pj​和pipjp_ip_jpi​pj​至少一个为333的倍数。 分析一下&#xff0c;这个条件等价于所有距离333的点对点权对三取模后不…

【HNOI2015】接水果【整体二分】【DFS序】【双区间转矩形】【扫描线】【树状数组】

传送门 题意&#xff1a;给定一个nnn个点的树&#xff0c;定义一个“盘子”为一个给定权值的路径&#xff0c;一个“水果”为一条路径&#xff0c;一个盘子可以接到水果当且仅当盘子的路径是水果的子路径。给出所有盘子和水果&#xff0c;对于每个水果求可以接它的盘子中第kik…

程序员修神之路--做好分库分表其实很难之一

点击上方“蓝字”带你去看小星星菜哥&#xff0c;领导让我开发新系统了这么说领导对你还是挺信任的呀~必须的&#xff0c;为了设计好这个新系统&#xff0c;数据库设计我花了好多心思呢做一个系统我觉得不应该从数据库入手&#xff0c;应该从设计业务模型开始&#xff0c;先不说…

【CF1311E】Construct the Binary Tree【增量构造】【复杂度证明】

题意&#xff1a;给定nnn和ddd&#xff0c;构造或判断无法构造一棵二叉树使得所有点的深度&#xff08;定义为到根距离&#xff09;之和为ddd。 n,d≤5000n,d\leq 5000n,d≤5000 显然可以算出有解的ddd的下界和上界&#xff0c;分别是完全二叉树和链的情况。下面会证明在这个范…

Office 365开发者的前端必备课程

这篇文章其实不仅仅是写给Office 365开发者的&#xff0c;但对于广大的Office 365开发者来说确实相当重要的。这里提到的Office 365开发者&#xff0c;包括了Office Add-ins&#xff0c;SharePoint Add-ins&#xff0c;Microsoft Graph&#xff0c;Microsoft Teams的开发者。我…

【CF1338C】Perfect Triples【位运算】【构造】

传送门 题意&#xff1a;有一序列SSS由下列方式生成&#xff1a; 找到字典序最小的正整数(a,b,c)(a,b,c)(a,b,c)&#xff0c;满足a,b,ca,b,ca,b,c不在SSS中且a⊕b⊕c0a\oplus b\oplus c0a⊕b⊕c0,其中⊕\oplus⊕为异或将a,b,ca,b,ca,b,c加入SSS重复第一步 TTT组数据&#xff…

.NET开发框架(五)-IIS上部署ASP.NET Core项目教程

在之前教程中&#xff0c;我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接)系列教程&#xff1a;从初学者到架构师的一步步蜕变本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目&#xff0c;希望对初学.NET CORE的童靴入门有所帮助&#xff01;1、打开V…

P4146 序列终结者 平衡树 + lazy维护

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 平衡树裸题&#xff0c;直接维护俩lazylazylazy就行了。 需要注意的是&#xff0c;只有儿子节点存在的时候才能更新&#xff0c;不然更新到000号节点之后&#xff0c;给000号点加上了奇怪的…

.NET开发框架(四)-服务器IIS实践教程

前三篇教程中&#xff0c;我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接)&#xff0c;今天开始我们进入实践教程&#xff0c;从0开始教学&#xff0c;让你从新手到架构师之兑变&#xff0c;目前已经重置了一台服务器&#xff0c;从安装与配置各组件开始学习…

【十二省联考2019】异或粽子【01Trie】【堆】【前k大套路】

题意&#xff1a;给定长度为nnn的序列aaa&#xff0c;求前kkk大的区间异或和之和。 n≤5105,k≤min⁡(n(n−1)2,2105),ai<232n\leq 5\times 10^5,k\leq \min(\frac{n(n-1)}2,2\times10^5),a_i<2^{32}n≤5105,k≤min(2n(n−1)​,2105),ai​<232 原来省选题这么裸&…

.NET Core IdentityServer4实战 第六章-Consent授权页

在identityServer4中登陆页面只要是成功了&#xff0c;就会注册一个Cookie在服务器资源上&#xff0c;像现在大部分的网站第三方授权&#xff0c;都是经过一个页面&#xff0c;然后选需要的功能&#xff0c;IdentityServer4也给我们提供了&#xff0c;只要你登陆成功,就会跳转到…

Codeforces Round #674 (Div. 3) F. Number of Subsequences 简单计数dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn的串&#xff0c;包含a,b,c,?a,b,c,?a,b,c,?四种字符&#xff0c;其中???可以变成为a,b,ca,b,ca,b,c的任意一种&#xff0c;让你求abcabcabc子序列出现的次数。 思路&#xff1a; …

【十二省联考】春节十二响【贪心】【堆】【启发式合并】

传送门 题意&#xff1a;给一棵nnn个点带点权的树&#xff0c;要求把点分成若干部分&#xff0c;有祖孙关系的点不能在同一部分。求每个部分最大值 的和 的最小值。 n≤2105n \leq 2\times 10^5n≤2105 由链的部分得到启发&#xff0c;每个点用一个堆来维护&#xff0c;合并两…

GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)

最近利用业余时间实现.ner core 版本的 casbin &#xff0c;即 Casbin.NET。之前的CI都使用的是公司搭建的jenkins和gitlab-runner&#xff0c;对开源社区的工具链并不是很熟悉&#xff0c;在casbin的原作者(hsluoyz )的“要求”下&#xff0c;只能被迫在项目的README.md加入下…

P4847 银河英雄传说V2 非旋treap

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 让我们分析一下题目需要实现什么操作&#xff1a; (1)(1)(1)将某个序列放到某个的后面&#xff0c;也就是合并两个序列。 (2)(2)(2)将一个序列从某处断开。 (3)(3)(3)查询某个序列的一段和…