P3514-[POI2011]LIZ-Lollipop【思路题】
正题
题目链接:https://www.luogu.org/problemnew/show/P3514
题目大意
一个12序列,若干个询问求有没有一个子串之和为kkk
解题思路
首先感谢ZYCdalaoZYCdalaoZYCdalao的温馨提示。
然后进入正题
首先我们考虑一个串的和为kkk
那么最边的数的情况(1,1),(1,2),(2,1),(2,2)(1,1),(1,2),(2,1),(2,2)(1,1),(1,2),(2,1),(2,2)
后三种情况将其中一个2去掉,第一种情况把两边去掉那么和就变成了k−2k-2k−2
那么我们可以求一个最长的和为偶数和和为奇数的串开始推导就好了。
codecodecode
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1000100;
int n,q,ansl[2*N],ansr[2*N],z;
char s[N];
void get_ans(int l,int r,int num)
{while(num>=0){ansl[num]=l;ansr[num]=r;if(s[l]=='T') l++;else if(s[r]=='T') r--;else l++,r--; num-=2;}
}
int main()
{scanf("%d%d",&n,&q);scanf("%s",s+1);for(int i=1;i<=n;i++)z+=(s[i]=='T'?2:1);int l=1,r=n;get_ans(1,n,z);for(l=1;l<=n&&s[l]=='T';l++);for(r=n;r>=1&&s[r]=='T';r--);if(n-r+1<l)get_ans(1,r-1,z-(n-r)*2-1);elseget_ans(l+1,n,z-l*2+1);for(int i=1;i<=q;i++){scanf("%d",&l);if(!ansl[l]) printf("NIE\n");else printf("%d %d\n",ansl[l],ansr[l]);}
}
P3514-[POI2011]LIZ-Lollipop【思路题】相关推荐
- AtCoder Grand Contest 004 C - AND Grid(思路题)
题意: 给你一个n*m的矩阵,矩阵中有.和#,#表示两图重合的部分,边缘没有# 然后要你构造两个n*m的图,要求#是连通的,然后合并之后重合的部分就是原图中的# 思路: 又是一到思路题 当时被B题智商 ...
- UVA 12898 - And Or 与和或 (思路题)
思路就是有零一变化的位Or以后一定是1,And以后一定是0:那么如果b的二进制更长那么就把包含a的部分全部置为1或0,如果一样长那么就把不同的部分置为1或0. 今天被这题坑的地方:1默认是int,如果 ...
- 【LeetCode笔记】221. 最大正方形(Java、动态规划、思路题)
文章目录 题目描述 思路 & 代码 更新版 题目描述 显而易见地可以用dp来写,问题在于如何考虑状态转移方程 思路 & 代码 首先再加一层外墙,就不用边界判断了 maxSqure[i] ...
- 【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)
文章目录 题目描述 思路 & 代码 更新版 题目描述 首先暴力二层循环肯定可以,然后先累乘整个数组,再用除法肯定也行. 但是很遗憾,两种做法都不满足题目说明. 思路 & 代码 O(n) ...
- 【思路题】【多校第一场】【1001.OO’s Sequence】
题目大意: 给你一个序列A,f(l,r) 表示 在[l,r]中 的Ai 对于每一个数Aj 都有 Ai%Aj!=0 的数目( i!=j ) 卡了一段时间..... 题解 简单题 定义两个数组L[i ...
- agc012E Camel and Oases(状压dp+思路题)
这题神啊.状压dp你敢信?思维难度爆表还有一堆细节要注意???orz Visjiao 原题链接:http://agc012.contest.atcoder.jp/tasks/agc012_e 大神题解 ...
- zoj 2316 Matrix Multiplication 【思路题】
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2316: 题目大意:给 n*n的矩阵 A,求 A∗AT所有元素和( ...
- 【uva1380 - 一个调度问题】思路题+树形dp
[题意] 有n<=200个恰好需要一天完成的任务,要求用最少的时间完成所有任务.任务可以同时完成.但是有一些约束,分有向和无向两种,其中A-->B表示A必须在B前面完成,而A--B表示A和 ...
- 习题:Dual Matrices(思路题/分治)
tyvj1764 描述 一个N行M列的二维矩阵,矩阵的每个位置上是一个绝对值不超过1000的整数. 你需要找到两个不相交的A*B的矩形,使得这两个矩形包含的元素之和尽量大. 注:A*B的矩形指连续的A ...
最新文章
- Java的表白程序_java表白程序
- SAP HANA简介
- [react] 说说你对React的reconciliation(一致化算法)的理解
- 组装式AI落地新模式,降低企业AI试错成本
- python02_python常用数据类型字符串
- mvc html.radiobutton 选中,asp.net-mvc - 如何使用RadioButtonFor选择单选按钮中的任何一个并包含if else语句 - 堆栈内存溢出...
- Linux操作Oracle(14)——Oracle数据库 使用VMware虚拟网卡 配置 TnsListener 解决 无法启动的问题
- 争锋职考职称计算机,PVP攻略 | 新秀职业的争锋天下?
- 基于itchat实现微信群消息同步机器人
- 常见的USB接口类型
- free、detele与野指针
- linux外接无线网卡,外接无线网卡+linux配置指南
- 专访美团外卖曹振团:天下武功唯快不破
- 公安部中标十大身份证阅读器品牌型号
- 有15个数按从小到大的顺序存放在一个数组中。(折半查找)
- Trust App(高通)
- Python numpy.corrcoef函数方法的使用
- 【转】微信公众号h5网页被嵌入广告 不知道什么原因
- MyEclipse 2016 Windows/Linux/Mac 版下载地址
- 【数据库】浅谈WITH CHECK OPTION的作用
热门文章
- oracle 参照完整性,Oracle中用表外键来保证系统参照完整性
- cta策略 有哪些_CTA 主流的交易策略都有哪些?
- 5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...
- shiro单点登录原理_SSO单点登录三种情况的实现方式详解
- cocoscreator editbox 只允许数字_《Cocos Creator游戏实战》做一个数字调节框
- 后端返回number类型数据_Javascript基础教程之数据类型 (数值 Number)
- matlab仿真习题,(MATlab仿真部分习题答案.doc
- 剑指offer——01二维数组中的查找.
- leetcode904. 水果成篮(滑动窗口)
- [Redis6]发布和订阅