首页 > TAG信息列表 > Sereja
CF367E Sereja and Intervals
written on 2022-05-06 这题简单,先给这题写题解 套路题,为每个区间分配左右端点,那不就是在长度为 \(m\) 的数轴上任取 \(2n\) 个点吗?然后考虑题目的要求,区间两两不包含。 对于这个要求,我们发现,对于同一数轴上的几个区间,要求不互相包含,在已经确定所有左右端点的情况下,方案数是唯一cf314 B. Sereja and Periods
题意: 定义 \(str^k\) 表示字符串 \(str\) 重复 \(k\) 次。 给定 \({s_1}^{k_1}\) 和 \(s_2^{k_2}\),求最大的整数 \(ans\) 使得 \((s_2^{k_2})^{ans}\) 是 \(s_1^{k_1}\) 的子序列 \(1\le |s_1|,|s_2|\le 100, 1\le k_1,k_2\le 1e7\) 思路: 有种比较直接的思路是模拟匹配的过程,每次CF380C Sereja and Brackets
洛谷题面 线段树模板题。 题目分析 给定一个括号串和 \(m\) 次操作,每次操作求区间 \([l,r]\) 内最长合法括号子序列的长度。 题目分析 我们可以在普通线段树上再记录两个变量 \(lnum,rnum\),分别表示区间内未匹配的左括号的数量和未匹配的右括号的数量。 于是有: inline void pushupCF380C Sereja and Brackets 题解
题目大意 维护一段长度 \(|s|\leq 10^6\) 的括号串,需要回答 \(m\leq 10^5\) 次询问,每次询问给定区间 \([l,r]\),求 \([l,r]\) 的子序列中最长的合法括号串长度。 分析 考虑一个括号串的子序列中最长的合法括号串长度,不妨分别计算其中没有匹配的左括号和右括号个数。 不妨分治计算其CF401B - Sereja and Contests
Problem CF有一些比赛,有的比赛只有Div2,其它的既有Div1也有Div2。每个比赛有个标识符,从 \(1\) 开始依次编号,如果一场比赛有Div1和Div2,则Div2的标识符一定是这次比赛的Div1的标识符 \(+1\) 。已知一个人在 \([1,n)\) 的时间段内共打了 \(k\) 次比赛,知道每次比赛是否分Div以及它的标CF380C Sereja and Brackets
原题链接 题意:给出一个括号序列,然后要求 \(m < 1e5\) 个区间询问,求给出区间内,合法的括号序列的长度。 题解:想到了可能用线段树做,结果没想到是,线段树记录的是非合法的向左的和向右的,然后每次询问直接剪掉非合法向左和向右的即可。 代码: #include <bits/stdc++.h> using namespace蓝桥杯---Sereja and Squares
题目链接在这里~ 问题描述 Sereja在平面上画了n个点,点i在坐标(i,0)。然后,Sereja给每个点标上了一个小写或大写英文字母。Sereja不喜欢字母"x",所以他不用它标记点。Sereja认为这些点是漂亮的,当且仅当: ·所有的点可以被分成若干对,使得每个点恰好属于一一对之中。F - Sereja and Suffixes
F - Sereja and Suffixes Sereja has an array a, consisting of n integers a1, a2, …, an. The boy cannot sit and do nothing, he decided to study an array. Sereja took a piece of paper and wrote out m integers l1, l2, …, lm (1 ≤ li ≤ n). For eachCF 367C Sereja and the Arrangement of Numbers
https://codeforces.com/problemset/problem/367/C 题目 你有m种数字,每个数字有无穷个。你准备用这些数字来组成一个长度为n的数组a。要求 如果选择了数字x和数字y,这两个数字在数组中至少有一个位置相邻:存在i,使a[i]=x且a[i+1]=y,或者,a[i]=y且a[i+1]=x 一个数组的价值由组成数组的CF-426D Sereja and Table(思维+简单dp)
题意:https://codeforces.com/problemset/problem/426/D 有一个矩阵,只含01,你现在最多修改k次,使得矩阵所有01连通块都是矩形。问你最少改几次。n<=100,m<=100,k<=10 思路: 首先确定了一行我们就知道下面几行如果要合法的话就必须与之相同或完全相反。 然后就是我比较难想到的地方,不要CF380C Sereja and Brackets 括号序列+线段树
你可以手画一下,然后发现求的其实就是 $[l,r]$ 区间内合法序列匹配个数. 用线段树维护一下括号序列就可以了. code: #include <bits/stdc++.h> #define N 1000005 #define ll long long #define lson now<<1 #define rson now<<1|1 #define setIO(s) freopenCF308C-Sereja and Brackets-(线段树+括号匹配)
题意:给出一段括号,多次询问某个区间内能匹配多少括号。 题解:线段树,结构体三个属性,多余的左括号l,多余的右括号r,能够匹配的括号数val。 当前结点的val=左儿子的val+右儿子的val+min(左儿子的l,右儿子的r)。原本匹配好的括号数加上多余的可以匹配的括号。 同时在左右儿子的l和r累加后减Codechef SEAARC Sereja and Arcs (分块、组合计数)
我现在真的什么都不会了呢...... 题目链接: https://www.codechef.com/problems/SEAARC 好吧,这题其实考察的是枚举的功力…… 题目要求的是\(ABAB\)的数量,这个不太好求,但是不同颜色区间对的总数和\(AABB,ABBA\)的都比较好求 补集转化,求\(ans0,ans1,ans2\), 分别表示总数、\(AABB\)CodeForces 314 D Sereja and Straight Lines
传送门 题意 再平面内有\(n\)个点,两个夹角为\(90\)°并与\(x\)轴夹角为\(45\)°的直线,求所有点与直线中的点的曼哈顿距离中的最大值最小。 思路 既然提到了最大值最小,那么必然是二分无疑了,又因为直线与坐标轴夹角为\(45\)°,所以曼哈顿距离就为点到直线距离的\(\sqrt{2}\)倍。我们