minimum 1887c array cf

CF915F

Codeforces Round 915 F 题解 定义 \(f(u, v)\) 表示 \(u\) 到 \(v\) 路径上的最大与最小点权之差,求: \[\sum_{i=1}^{n}\sum_{j=i}^{n}f(i,j) \] 定义 \(\max(u,v)\),\(\min(u,v)\) 为路径最 ......
915F 915 CF

CF Beta Round 93-D.Fibonacci Sums-齐肯多夫分解、DP

CF Beta Round 93-D.Fibonacci Sums-齐肯多夫分解、DP https://codeforces.com/contest/126/problem/D 定义Fibonacci序列:\(F_1=1,F_2=2,F_k=F_{k-1}+F_{k-2}(\forall k\geq ......
Fibonacci Round Beta Sums CF

CF1550F Jumping Around

更好的阅读体验 CF1550F Jumping Around 提供一个不用动脑子的方法。 首先题目可以看成是求一个点到 \(s\) 的最小瓶颈路,设这个值为 \(v_i\),自然想到最小生成树,但是边数是 \(\mathcal O(n^2)\) 的,不可接受。 考虑使用 prim,一开始联通块力只有 ......
Jumping Around 1550F 1550 CF

CF1523H Hopping Around the Array

首先考虑 \(k = 0\) 的情况。 贪心,最后一步之前每个 \(i\) 只会跳到 \(j \in [i, i + a_i]\) 且 \(j + a_j\) 最大的点 \(j\),这个信息或许可以线性处理?但是我没脑子,我用线段树维护,时间复杂度 \(\mathcal O(n \log n)\)。 ......
Hopping Around 1523H Array 1523

[LeetCode] 2696. Minimum String Length After Removing Substrings

You are given a string s consisting only of uppercase English letters. You can apply some operations to this string where, in one operation, you can r ......
Substrings LeetCode Removing Minimum Length

CF1687C Sanae and Giant Robot 题解

题目链接:https://codeforces.com/contest/1687/problem/C 题意简述 有两个长为 \(n\) 的数列 \(a\) 和 \(b\)。有 \(m\) 条线段,你可以进行任意次以下操作: 选择一条线段 \([l, r]\),若 \(\sum\limits_{i = ......
题解 1687C Sanae Giant Robot

(补题)CF1348B. Phoenix and Beauty

CF1348B. Phoenix and Beauty 思路 最后输出的一定是一个周期为k的数值。我们只需要查看输入进来的数组中的元素的种类和k的关系即可。元素种类大于k输出-1;小于等于k,输出每个不同的元素,不够k个的话就用1补齐 ac代码 #include <bits/stdc++.h> us ......
Phoenix Beauty 1348 and CF

CF1886E I Wanna be the Team Leader 题解

Problem - E - Codeforces I Wanna be the Team Leader - 洛谷 差一点就想到了/ll 遇到困难?排序肯定不会变差! 性质:每个项目分配的程序员肯定是一段(显然) \(m\) 很小?考虑设 \(dp_{i,S}\) 表示考虑前 \(i\) 个人选项目集 ......
题解 Leader 1886E Wanna 1886

CF1886D Monocarp and the Set 题解

Monocarp and the Set - 洛谷 Problem - D - Codeforces 非常之降智 加入一个数让他满足他是最大值需要判断前面加入的那些数中最大的是哪个,但删除一个数让他满足是最大值只需要直接把他删掉即可 因此我们要反着考虑这个问题: 如果当前是 <,则删除最小的数,有一 ......
题解 Monocarp 1886D 1886 and

3 Matching Arrays

n的范围有2e5,暴力找肯定不行。将这题时间复杂度打下来的关键在于贪心 贪心的点在于局部最优,尽可能的将b里相对大的分给a里相对小的,一共分k个这样的。最后再检查一下,如果不满足就是-1 #include<bits/stdc++.h> using namespace std; const int N ......
Matching Arrays

CF1511G Chips on a Board

不难发现这是个 Nim 游戏,于是对每对 \((L_i, R_i)\) 所求转化为: \[\bigoplus_{i = 1}^n (a_i - L_i)[a_i \ge L_i] \]暴力做时间复杂度就是 \(\mathcal O(n^2)\),考虑优化。 感觉好像可以倍增?设 \(f(i, k)\ ......
1511G Board Chips 1511 CF

[CF1063F] string journey

String Journey 题面翻译 对于一个字符串数组 \(t_1, \ldots, t_k\),若对于每一个 \(t_i\) 都是 \(t_{i-1}\) 的真子串的话,即 \(t_i\) 是 \(t_{i - 1}\) 的子串且 \(t_i \ne t_{i-1}\),则称为有序串组,列如 ......
journey string 1063F 1063 CF

常用容器:动态数组array、列表list、队列 queue、map或字典、 集合、栈等等

一般语言都会提供一些逻辑容器的实现,各个语言的实现方式不同;底层的数学算法应该差不多; # 动态数组, 这个没啥可说的,就是一个数组,满了时候,再创建一个数组,把之前的数组里的数据移过来,销毁之前数组; ......
队列 数组 字典 容器 常用

JavaImprove--Lesson05--Arrays,对象排序,Lambda表达式,方法引用简化Lambda表达式

一.Arrays 用来操作数组的一个工具类 在Java中,没有内置的"Arrays工具类",但有一个名为java.util.Arrays的类,它包含了一些用于操作数组的静态方法。这个类主要用于数组的排序、搜索和复制 toString(类型[] arr):打印数组中的内容 int[] arr={20, ......
表达式 Lambda JavaImprove 对象 方法

CF1707E Replace

由题意可以发现一个性质: \[f[(l, r)] = \bigcup_{i = l}^{r - 1} f[(i, i + 1)] \]进而可以推广至: \[f^k[(l, r)] = \bigcup_{i = l}^{r - 1} f^k[(i, i + 1)] \]证明显然,即若 \([l_1, ......
Replace 1707E 1707 CF

CF1919H Tree Diameter

某人在换根时根还设置成 \(1\) 交了整整 \(11\) 发,我不说是谁。 先考虑一下 \(2\) 询问的实际用途,因为我们可以用它来确定深度,根据树上交互题的常见技巧,我们通过这种方式确定了一个拓扑序,只要能在拓扑序的前缀中快速查询一个点的父亲,就可以求出这棵树。 考虑先以一条边为根,那么其会有 ......
Diameter 1919H 1919 Tree CF

CF1864H Asterism Stream【概率 DP,矩阵优化】

给定一变量,初始为 \(1\),每次等概率随机进行以下两种操作之一: 令 \(x\) 加一。 令 \(x\) 乘二。 求期望多少次操作之后 \(x\) 会 \(\ge n\)。 \(T\) 组数据,\(T\le 100\),\(n\le 10^{18}\)。 对着 aw 老师的题解学的,感觉太深刻。 ......
矩阵 概率 Asterism Stream 1864H

CF331A1&CF331A2

不难发现一件事:对于在 \(i\) 之后能跟 \(i\) 匹配的 \(j\),最好的办法显然是使得 \(j\) 最大。则用前缀和统计整个和,并且用前缀和维护负数和,在枚举 \(i\) 统计出最小答案时在后面计算出满足最大答案的条件并输出即可。 ac records #include<bits/std ......
331 CF amp A1 A2

Hive 复杂数据类型Array,Map,Struct

建表语句,支持嵌套 CREATE TABLE parquet_test ( id int, str string, mp MAP<STRING,STRING>, lst ARRAY<STRING>, strct STRUCT<A:STRING,B:STRING>) PARTITIONED BY (p ......
类型 数据 Struct Array Hive

Hive Array数据处理

建表 CREATE TABLE IF NOT EXISTS default.array_test( id String COMMENT 'id', name Array<String> COMMENT '名称' ) COMMENT 'array测试' ROW FORMAT DELIMITED FIE ......
数据处理 数据 Array Hive

CF864F Cities Excursions

题意:给定一张有向图,询问 \(s, t\) 两点间字典序最小路径上的第 \(k\) 个结点。 首先要验证 \(s, t\) 间是否连通,所以建反图,枚举 \(1 \sim n\),跑 dfs。这部分时间复杂度 \(\mathcal O(n^2)\)。 确定了哪些点跟 \(t\) 连通后,\(s\) ......
Excursions Cities 864F 864 CF

CF1919G Tree LGM

原问题可以看作是二分图博弈的模型,那么可以将博弈问题转化为最大匹配的一定性判定性问题,实际上博弈的 \(\text{dp}\) 过程直接摊开就是每次删任意一个叶子与其父亲,将父亲变为 \(1\),这个也就是最大匹配的求解过程,而是否为匹配的上端点即该点的 \(01\) 状态,那么实际上每一行的 \( ......
1919G 1919 Tree LGM CF

[LeetCode] 1979. Find Greatest Common Divisor of Array

Given an integer array nums, return the greatest common divisor of the smallest number and largest number in nums. The greatest common divisor of two ......
LeetCode Greatest Divisor Common Array

CF156D

whk 考试前写题解攒 rp 有用吗 仍然是讲讲想出来的过程。 首先,我们只需要关心一个联通块中有哪些点,而不用关心图的具体形态。 然后,将每个连通块看作一个点,就变成了一个无根树计数问题,但是带权值。首先想到 prufer 序列。 prufer 序列的定义:一棵无根树中,每次将编号最小的叶子取出来 ......
156D 156 CF

CF1917F

大常熟另类做法。不用排序。 要求直径长度,则想到把直径这一条链拎出来处理。然后考虑其他边会接在哪里,发现树最优情况下一定是一个毛毛虫的形式。更进一步,所有边都挂在接近直径中点的点上。 然后再考虑这些不在直径中的,长度为 \(l\) 的边带来的限制,设直径为 \(d\),从每个点将直径切成两半,记其中 ......
1917F 1917 CF

CF1896D Ones and Twos 题解

来自机房大佬 FFT 的简单解法。 思路 首先有个结论:如果 \(a\) 中存在一个子串的和为 \(x\) (\(x>2\)),那么也就一定存在一个子串之和为 \(x-2\)。怎么证明?其实和为 \(x\) 的子串有 \(3\) 种情况: \(\text{1}\dots \text{1}\) 两边都 ......
题解 1896D 1896 Ones Twos

CF1917D Yet Another Inversions Problem 题解

官方题解。 思路 首先可以把 \(a\) 数组分成 \(n\) 块,每块都是长为 \(k\) 的 \(q\) 数组。于是我们可以把答案拆成两部分计算:块内的贡献和块外的贡献。对于块内,\(p_i\) 都是一样的,因此可以直接消去,计算的实际上就是 \(q\) 序列的逆序对数,把这个值 \(\time ......
题解 Inversions Another Problem 1917D

CF1527D MEX Tree 题解

思路 如果一条路径的 \(\text {mex} = k\),那么 \(0 \sim k-1\) 这些点一定在路径中出现过,并且一定在一条链上。如果不在一条链上,那么就不满足简单路径这一条件了。因此我们在从小到大加点的过程中如果发现一个点不在已求出的链上,那么比这个点编号大的 \(k\) 答案一定都 ......
题解 1527D 1527 Tree MEX

CF1536F Omkar and Akmar 题解

思路 首先最后的局面在两两字母间一定不会多于 \(1\) 个空格。考虑反证,假设有两个空格,那么有以下两种情况:\(\text{A}\_\_ \text{B}\),\(\text{A}\_\_ \text{A}\),也就是两边的字母不同,相同。对于第一种,在任意一个空格都可以填一个与他相邻字符不同的 ......
题解 1536F Akmar Omkar 1536

CF1547C题解

思路 题意这里就不讲了,直接进入正题。 贪心。 首先我们知道要想尽可能的让每一次操作都合法就得使 \(k\) 最大化,那么要使 \(k\) 最大就得尽可能的选择 \(0\) 操作,所以贪心策略就出来了:优先选择 \(0\) 操作,\(A,B\) 序列那个有 \(0\) 就选哪个合并。如果两个序列当前 ......
题解 1547C 1547 CF
共2720篇  :2/91页 首页上一页2下一页尾页