指针escape slime cf

CF414B - Mashmokh and ACM

思路 dp。dp[i][j]表示第i位填j时的方案数 ac代码 #include <bits/stdc++.h> using namespace std; using i64 = long long; const i64 inf = 8e18; typedef pair<int, int> pii; ......
Mashmokh 414B 414 ACM and

CF-613-D

613-D 题目大意 给定一颗\(n\)个节点的树。 \(q\)组询问,每组询问给定\(k\)个点,问至少要删除树中多少个点才能使这\(k\)个点两两不连通,无解则输出\(-1\)。 这里\(\sum{k_i}\)的规模大致和\(n\)相当。 Solution 虚树模板题。 暴力的做法是每组询问都对 ......
613 CF

CF1201C - Maximum Median

思路 二分答案。对于一个mid,查询中位数要是为mid的话至少要做多少次操作,最小操作次数就是排序后从中位数开始计算max(0, mid - v[i])的和 ac代码 #include <bits/stdc++.h> using namespace std; using i64 = long lon ......
Maximum Median 1201C 1201 CF

CF1876D Lexichromatography

CF1876D Lexichromatography Luogu CF1876D 题目描述 给定一个长为 \(n\) 的序列 \(a\),你需要对这个序列进行红蓝染色。染色有如下要求: 每个位置恰好染上其中一种颜色。 对于所有的值 \(k\),在这个序列的任意子区间 \([l,r]\) 中,值为 \ ......
Lexichromatography 1876D 1876 CF

C++ --- 智能指针

一、智能指针存在的意义 智能指针主要解决以下问题: (1)内存泄漏:内存手动释放,使用智能指针可以自动释放。 (2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 C++里面有四个智能指针:auto_ptr、share_ptr、unique_ptr、weak_ptr。其中后三个是C ......
指针 智能

AT_cf17_final_j 题解

题意 给定一棵既有点权也有边权的树,构造一个完全图,图中两点间边的边权为树中两点点权之和加上两点间的距离,求该图的最小生成树。 思路 发现完全图总边数太大,考虑减少边数。 这里有一个性质: 如果在一个图中选取任意个联通的边集,使得它们的并为全集,则整个图的最小生成树中的边一定在 分割后的两个边集的最 ......
题解 final_j AT_cf final AT

CF1900E 题解

题意 给你一张有向图,点有点权,现进行以下操作直到无法进行: 选择两条首尾相连的边 \((a,b)\) 和 \((b,c)\) 且 \(a\) 与 \(c\) 间没边,添加边 \((a,c)\)。 求操作完后图中最长的 不经过重复点的路径,并求这种路径中经过的点的点权和最小值。 思路 先考虑 DAG ......
题解 1900E 1900 CF

CF1896E 题解

题意 给一个 \(n\) 阶全排列 \(a\),每次把不满足 \(a_i = i\) 的 \(a_i\) 向右循环移位一位,问从移位多少次后起所有 \(i \in [1,n]\) 都满足 \(a_i = i\)。 思路 先断环成链后再复制一次,可以发现此时的移位等价于向右移位。发现一条性质:若 \( ......
题解 1896E 1896 CF

CF713D 题解

题意 给一个 \(01\) 矩阵,多次求在给定区间内最大的全 \(1\) 正方形边长。 思路 容易想到二分: 先预处理出以每个位置为右下角的最大合法正方形的边长 \(mx_{i,j}\),然后对于每个询问,我们二分边长 \(mid\),设当前询问的区间左上角为 \((x_1,y_1)\),右下角为 ......
题解 713D 713 CF

CF1900E 题解

题意 给你一张有向图,点有点权,现进行以下操作直到无法进行: 选择两条首尾相连的边 \((a,b)\) 和 \((b,c)\) 且 \(a\) 与 \(c\) 间没边,添加边 \((a,c)\)。 求操作完后图中最长的 不经过重复点的路径,并求这种路径中经过的点的点权和最小值。 思路 先考虑 DAG ......
题解 1900E 1900 CF

CF1284E New Year and Castle Construction

New Year and Castle Construction Luogu CF1284E 题目描述 给定大小为 \(N\) 的点集 \(S\)。保证点集中的任意三点不共线,且不存在重复的点。 设 \(f(p)\) 表示满足如下条件的 \(S\) 的四元子集 \(T\) 的个数: \(T \sub ......
Construction Castle 1284E 1284 Year

CF-87-D

87-D 题目大意 给定一颗\(n\)个节点的树,边带权。 现在要枚举所有路径,对于一条路径,取边权最大的边给它得分加\(1\);若有多个权最大的边,则这些边的得分都加\(1\)。 输出最后所有边中的最大的得分是多少,有多少条得分最大的边。第二行输出这些得分最大的边的编号 Solution 首先考虑 ......
CF 87

深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

C 语言简介 C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 学习变量、数据类型和运算符 C 中的变量和关键字 C 语言中的作用域规则 C 中的数据 ......
深入浅出 指针 变量 全方位 流程

CF1506D - Epic Transformation

思路 用优先队列模拟 ac代码 #include <bits/stdc++.h> using namespace std; using i64 = long long; const i64 inf = 8e18; typedef pair<int, int> pii; const int N = 5 ......
Transformation 1506D 1506 Epic CF

【C语言】指针

指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元,按变量地址存取变量值的方式称为直接访问,如printf("%d",i);和scanf("%d",&i);;另一种存取变量值的方式称为间接访问,即将变量i的地址存放到另一个变量中,在C语言中,指针变量就是用 ......
指针 语言

快慢指针解决环形链表

可知首先要判断是否有环,然后给出目标的位置。 slow指针走一步,fast指针走两步。当这两个指针都进入环时,fast指针相当于slow指针只走了一步,因此肯定两者会相遇。 但这只是相遇点,不是环起始点,但根据计算可知,此时都以同样的单位速度时,再相遇时就可以得到相交点。 点击查看代码 class ......
快慢 环形 指针

吴师兄学算法day06 双指针 485. 最大连续 1 的个数

题目:485. 最大连续 1 的个数 易错点: 代码示例: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: cnt = 0 max_cnt = 0 for i in nums: if i == 1: ......
指针 师兄 算法 个数 day

CF678F Lena and Queries题解

题目链接:CF 或者 洛谷 可以看到查询和插入就是李超线段树的基本操作,但在原有基础上多了一个删除操作,李超线段树不支持删除操作,但支持可撤销和可持久化,所以我们容易想到外层再套一个线段树分治即可。本题用可撤销就远远足够了,很好写。 具体的,我们读入所有操作,对于操作一,为当前下标线段读入它的 \( ......
题解 Queries 678F Lena 678

CF914C

problem & blog 数位 dp 模板题。 经过一次操作,可以把 \(n\) 变成一个小于 1000 的数。 所以我们可以把所有小于 1000 的数操作的次数全部处理出来。 然后就是正常的数位 dp。 定义 \(dp_{s,num,lim}\) 表示剩 \(s\) 位,有 \(num\) 个 ......
914C 914 CF

吴师兄学算法day06 双指针 80. 合并两个有序数组

题目:80. 删除有序数组中的重复项 II 易错点: 为什么是slow-2? 因为有序 当slow -1 说明与上一个相等,当slow-2说明与上一个相等,并且上上一个也相等,就说明已经有3个相等的了。此时要跳过。 不相等说明要么是第一次出现,要么是第2次出现。出现新的,此时我记录一下 代码示例: ......
数组 指针 师兄 算法 两个

指针的定义--应用场景

1 指针的本质 1.1-指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元。在C语言中,指针变量是一种特殊的变量,它用来存放变量地址。指针变量的定义格式如下:基类型 *指针变量名。 另外注意:指针变量加1后,偏移的长度是其基类型的长度,例如int *p; ......
指针 场景

吴师兄学算法day06 双指针 26. 删除有序数组中的重复项

题目:26. 删除有序数组中的重复项 易错点: 为什么不可以写大于nums[slow] 因为会出现多个[0,1,2,2,...]情况 代码示例: from typing import List class Solution: def removeDuplicates(self, nums: List ......
数组 指针 师兄 算法 day

CF-375-D

375-D 题目大意 给定一颗\(n\)个节点的树,根节点为\(1\),每个节点都有一个颜色\({c}_{i}\) 给定\(q\)次询问: \((x,k):\)询问在以\(x\)为根的子树中出现次数\({\ge}k\)的颜色数量 Solution 首先考虑一般暴力的做法,将所有询问离线下来,对整个树 ......
375 CF

CF-342-E

342-E 题目大意 给定一颗\(n\)个节点的树,其中\(1\)号节点为红色,其余节点为蓝色 有m次操作,操作分为两种: \(1.\)把节点\(x\)变为红色 \(2.\)询问节点\(x\)到最近红色节点的距离 Solution 对于操作\(2\)首先考虑两种暴力操作 \(1.\)对每次询问的\( ......
342 CF

吴师兄学算法day06 双指针 88. 合并两个有序数组

题目:88. 合并两个有序数组 易错点: 注意 判断i合法,不可以写if nums[i] 会下标越界 掌握好边界条件,num1[i] 和nums2[j]大于或者大于等于都可以。 代码示例: class Solution: def merge(self, nums1: List[int], m: in ......
数组 指针 师兄 算法 两个

CF550C. Divisibility by Eight

题目大意 给你一个由阿拉伯数字组成的字符串,让你找出其中一个子序列,使其能被8整除 思路1 一个整数的末尾三位数能被8整除,则这个数能被8整除。 代码 #include <bits/stdc++.h> using namespace std; using i64 = long long; const ......
Divisibility Eight 550 CF by

7引用-右值引用-引用结合const和指针

引用 引用和指针的区别 引用是一种更安全的指针。 引用必须初始化,指针可以不初始化。引用初始化为另一个同类变量,特殊情况下可初始化为常量。 引用只有一级,没有多级引用。 从汇编指令层面看。对引用的处理,是采用指针的方法。因为引用是一种const指针。通过引用变量修改所引用内存的值,与通过指针解引用修 ......
指针 const

CF766E

CF766E Mahmoud and a xor trip 题解 CodeForces cnblogs 提供一种有点复杂但是好想的换根 dp 思路,好像没什么人写。 给定一棵树,带点权,设 \(I(i, j)\) 表示 \(i\) 到 \(j\) 的路径按位异或和,求: \[\sum_{i=1}^{ ......
766E 766 CF

CF1876C Autosynthesis 题解

Autosynthesis - 洛谷 https://codeforces.com/contest/1876/problem/C 这次也差点想出来了 \(QwQ\) 遇到这种题第一感觉是建图。把 \(i \rightarrow a_i\) 得到一个 章鱼森林 (这里忘记了每个点只有一个出边,是章鱼森 ......
题解 Autosynthesis 1876C 1876 CF

CF1006E Military Problem 题解

CF1006E Military Problem 题解 题意 给定一颗有 \(n \thinspace (2 \leq n \leq 2 \times 10^5)\) 个节点的树,树根为 \(1\)。 对于每个节点 \(i \thinspace (2 \leq i \leq n)\) 都有它的父节点 ......
题解 Military Problem 1006E 1006
共3189篇  :1/107页 首页上一页1下一页尾页