package com.example.demo.leetcode.case202208; import java.util.*; /** * 功能描述 * * @author ASUS * @version 1.0 * @Date 2022/8/4 */ public class Main2022080401 { /* 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先
CodeForces1602 Two Subsequences 解析: 题目大意 给你一个字符串 \(s\)。你需要两个非空字符串 \(a\) 和 \(b\) 并且满足下面的条件: 字符串 \(a\) 和 \(b\) 都是 \(s\) 的子序列。 对于原字符串的每一个字符,必须属于 \(a\) 和 \(b\) 之一。 \(a\) 是所有满足条件的字符串中字典序
转载自LIOI_TEos的题解 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6 + 100; const ll mod = 20040820; const int INF = 2147483647; const int lim = 1e4 + 1; int n, v[maxn], v2[maxn], r[maxn]; ll anss, st, ans2,
高考完了,耍了快一个月,开始边耍边学习
A.蓝蓝的棋盘 dp题 因为蓝蓝走过棋之后下一个人是先手,可以把问题简化为一个保证先手且不断减少的棋盘。 设计状态:dp[i]表示在第i位下,先后手最优策略下的差值,因为是先手减去后手,所以也是最大差值 从n到0倒序dp,设计转移方程为:dp[i]=max(a[y]-dp[y])\(i<y \leq i+m\) 可用单调队列来
来补个档。 CF1621G Weighted Increasing Subsequences 先离散化。对每个上升子序列计算权值是困难的,我们考虑每个位置对答案的贡献。 即我们想要知道对于每个 \(a_p\),\(i_k\) 最远能到哪里,使得存在一个 \(x \in (i_k, n]\) 满足 \(a_x > a_i\)。容易发现,若设 \(r_p\) 为最右端的
题目 点这里看题目。 分析 困难的题目。 思路一 从命题逻辑的角度考察一棵树的限制。 某棵树的 \(\operatorname{grow}\) 可以被写作树上结点存在性(在或不在)的合取。考察 \(\operatorname{grow}\) 的并的时候,出于方便运算的考虑可以取补集,于是就变成了析取范式的合取运算。 然而树
8.1 T2数据水,只判4条边界就可以85pts,随机化2e5个非整点判断可以AC。 T2: 正解是扫描线,但是没人写。 T1 wisdom 我们采用一种贪心,假设当前已经处理完 u 的所有儿子子树,考虑把 u 染成什么颜色最优 // ubsan: undefined // accoders #include <bits/stdc++.h> #define pii pair<int
链接:https://ac.nowcoder.com/acm/contest/25022/1016来源:牛客网 题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可
同样不能题单贴贴了…… A.蓝蓝的棋盘 题目描述 淘淘和蓝蓝在下棋。 这个棋盘是 1×n 的,棋盘的第 i 个格子上有一个数 a[i],因此我们可以把棋盘看作一个序列。一开始棋子在位置 0,双方得分都是 0. 双方轮流操作棋子,如果当前棋子的位置是 p,可以选择把棋子移动到 [p+1,min(n,p+m)] 的
A.Villages: Landlin 数轴上有1个发电站和n-1个建筑,发电站位于\(x_s\)位置,能够与距离\(r_s\)以内的建筑相连。第\(i\)个建筑位于\(x_i\),能与距离\(r_i\)以内的电线杆直接相连。电线杆之间相连需要使用电线,问最少需要多长的电线可以使所有建筑都有能源? (注意建筑可以传递能量) 这题相
1007 Treasure \(n\)个点\(m\)条边的连通图,每个点有第\(c_i\)种权值为\(val_i\)的宝藏,问从\(x\)点出发只通过边权小于等于\(y\)的边可以获得的宝藏最大权值,每种宝藏权值只能算一遍。宝藏权值带修改。每种宝藏最多有10个。 建出克鲁斯卡尔重构树,考虑在节点上维护答案。发现每种宝藏
好题。一道很有趣的性质提。 因为自己搞错结论然后改了 1h(悲 闲话少说,切入正题—— 这是不断插入的,所以根据套路我们会考虑最后一个插入的节点的性质。显然满足: 它是从根不停往左走的路上。 它没有右子树。 但是这样的点有很多,我们来深入分析。性质 1 说明这些点在一条链上,我们
这次好像也不错qwq A. 序列 B. 任意模数快速插值 C. 快递 D. 任意模数多项式乘法逆 A. 序列 一眼题面:这不是在模拟更相减损么 然后发现的确是,所以飞快地过了 #include<cstdio> #include<cstring> #include<string> #define int long long #define WR WinterRain using namesp
https://www.luogu.com.cn/problem/CF1710C 打表发现一位上 \(a\bigotimes b +b \bigotimes c \ge a \bigotimes c\) 恒成立。 那么前面的位已经满足大于了,当前位怎么填都无所谓。也就是只要有 1 位满足大于就好了。 对 3 个式子分别记录,对 \(a,b,c\) 有无顶上界记录。因为前导零
P3454 OSI-Axes of Symmetry 题解 求多边形的对称轴 这是一道人类智慧题 顺时针或者逆时针转一圈,将 \(n\) 个点的多边形的角和边的值连在一起就得到了一个环,环长为 \(2n\) 我们只需要判断对应的边和角相等 具体地,我们用边长表示每条边,用两条邻边的叉积和点积代表以这个点为顶点的
物品 题意 有 \(2m+1\) 种物品,重量分别为 \(-m,-m+1,\ldots, m-1,m\)。重量为 \(i\) 的物品有 \(a_i\) 个。 你需要拿走若干物品,使得这些物品重量之和恰好为 \(l\)。在此基础上,你需要拿尽可能多的物品。 问在物品重量之和恰好为 \(l\) 的基础上,你最多能拿多少物品。 题解 先贪心的
水晶 题意 给定长度为 \(n\) 的序列 \(\{m_n\}\) ,求满足条件的 \(\{a_n\}\) 的个数,条件是 \(\forall i\),\(0\le a_i\le m_i\)。 \(\oplus_{i = 1} ^ n a_i = 0\)。 答案对于 \(998244353\) 取模。 数据范围 \(0\le m_i<2 ^ {32}, 1\le n\le 2\times 10^{5}\)。 题意 本来的想法
2022.7.28 模拟赛 \(\to link\leftarrow\) 目录2022.7.28 模拟赛计算器对称轴互质签到题 计算器 嗯,显然是个爆搜 算一下复杂度 设第 \(i\) 个部位装备总数为 \(cnt_i\),那么总共可能搜到的情况共有 \(\prod \max(cnt_i,1)\) 显然最坏情况下所有 \(cnt_i\) 相同 我们令它们都等于 \(
题目描述 在一条笔直的河流中,有N个站点排成一条直线,从左往右编号为1~N(1<=N<=1000),并有M条滑水路线(1<=M<=10000),路线连接某两个站点(从某个站点连向另一站点地有向边,可能存在自环,也就是同一个站点作为起点终点),保证所有在划水线路中的站点直接或间接地相连。 FLY从1号站点出发,他希望把
为大家激情上演爆零秀! T3 和 T4 全写的是正解,并且得到学长的认可 T3 因为哈希冲突挂了,T4 更加奇妙,因为连通块的 $id$ 没加爆了个零 挂了 $200$ 分,最后得分 $100/400$ 真的,以后再用哈希我是狗 开心 ^_^ A. ^_^ B. 软件包管理器 C. 地理课 D. 道路和航线 A.^_^ 一开始看到
if语句 该程序读取一列数据,每个数据都表示每日的最低温度(℃),然后打印统计的总天数和最低温度在0℃以下的天数占总天数的百分比。程序中的循环通过scanf()读入温度值。while循环每迭代一次,就递增计数器增加天数,其中的if语句负责判断0℃以下的温度并单独统计相应的天数。 #include<st
题目链接 题目 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。 思路 显然数论分块 然后统计一下每一块内1到9出现的情况乘上 \(n/l\) 即可 Code // Problem:
题目简化和分析: 明确一点这是一棵树。 为了保证每个工业城市的设置效益最大,应该设在最深的节点。 从深到浅,可以使用优先队列去实现。 设置一个的价值为 \(dep_u-siz_u-1\)。 关于作者一开始想反了,设置旅游城市,虽然可以做,但非常麻烦,于是看了别人大佬思路才明白。 错误原因在于,有可
题目地址 题目 思路 以下分数皆表示整除 \[\Large\max(n\bmod i)\\\Large=\max(n-\frac n i\times i)\\\Large=n+\max(-\frac n i\times i)\\\Large=n-\min(\frac n i \times i) \]显然,当 \(\frac n i\) 一定时,\(i\) 越小越好,所以可以把每个 \(\frac n i\) 求出来,然后数列分块取