牛客寒假集训营总结笔记——7道优质好题 一、Trie树的应用: 题目链接:Tokitsukaze and Min-Max XOR 1、题意 2、题解 1、首先这道题的答案和元素本身的顺序是无关的,因为假如你选择了一些数字,它是默认必须排好序才能记作是答案,所以对于我们枚举的任意一组max和min,位于 m i n ≤ x ≤ m a x min \le x \le max
戳我进入比赛 Problem A. R 题目大意 输入两个整数 n , k n,k n,k 和一个长度为 n n n 的字符串 s s s. 问字符串 s s s 中存在多少个子串满足该子串至少包含 k k k 个 ′ R ′ 'R' ′R′ 字符,且不包含 ′ P ′ 'P' ′P′ 字符. 1 ≤ n ≤ 2 × 1 0 5 , 1 ≤ k ≤ 20 , s [
比赛链接:这里 目录 OPA 串思路代码 B 括号思路代码 C 红和蓝思路代码 D 点一成零思路代码 E 三棱锥之刻思路代码 F 对答案一时爽思路代码 H 幂塔个位数的计算思路代码 I 限制不互素对的排列思路代码 J 一群小青蛙呱蹦呱蹦呱思路代码 ED OP 个人能力有限,有的题目实在知识点欠缺太多,可以参照一下其他大佬的全题解。 &感谢ph大佬的全程指导。
题目: 分析题目:首先由#运算及阿拉伯数字的数量级,我们很容易想到快速幂的板子,所以直接拿过来就可(注意取模板子的位置)然后我们就可遍历整个字符串,细节处理将等号前面的阿拉伯数字依次压入一个容器中,等号后面的阿拉伯数字赋值给ans作为答案输出比较,具体代码实现及注释下面演示 代码演示: #include<bits/stdc++.h>typedef long long ll;ty
文章目录 ABCDEFGHIJKL A n的范围很小暴力直接 O ( n 3 ) O(n^3) O(n3)直接做就行。 我还傻的统计了一下前后缀,不过怎么写都行这道题。 #include <bits/stdc++.h> #define int long long#define rep(i,a,b) for(int i = (a); i <= (b); ++i)#defin
A - 柠檬可乐 string solve() {int a, b, k; cin >> a >> b >> k;return a >= k * b ? "good" : "bad";} B - 左右互博 每次将一堆石子分成两堆,必然最后结果会多一个 1 1 1,因此只要看能多几个 1 1 1,即为可以操作的次数 string solve() {cin >> n;ll sum =
C Tokitsukaze and Min-Max XOR 题目大意 给定一个数组从任取数构成序列序列满足,(可以只取一个数)问能构造出多少个 解题思路 定找双枚举时间复杂度到,考虑利用加速统计的方案,即将数字按二进制位拆分挂在树上对于一个数,它在树上经过的点,均加上它对答案的贡献所以树上的某一点存的信息为,以这个点的数位为分界,在它之前(包括它)均为某固定值,而在它后均为任意值的数对答案
题目传送门 题目描述 牛牛有一颗大小为 n n n 的神奇 L i n k − C u t Link-Cut Link−Cut 数组,数组上的每一个节点都有两种状态,一种为 l i n k link link 状态,另一种为cut状态。数组上任意一对处于link状态的无序点对(即(u,v)和(v,u)被认为是同一对)会产生dis(u,v)的link能量,dis(u,v)为数组上u到v