ICode9

精准搜索请尝试: 精确搜索
  • 选课2022-08-27 11:34:38

    P2014 [CTSC1997] 选课 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 树上dp 由于这是一个森林,所以假设有0号结点连接所有的根,就变成了一颗树 dp[now][j]代表以now为根节点,选择j门课程的最大答案 每次dp过程之前需要把子问题都求出来,也就是把当前now节点的子树的dp值求出(就是以

  • 校园网2022-08-26 21:00:27

    P2746 [USACO5.3]校园网Network of Schools - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) tarjan缩点,把强连通分量缩成一个点,再重新建图 建图过程中记录每个缩点的入度与出度 任务a:求入度为0的缩点个数 任务b:求入度为0的缩点个数和出度为0的缩点个数的最大值(任务b要求所有的缩

  • 常用 STL 整合2022-08-26 16:01:50

    常用 STL 整合 一、vector vector 是 STL 提供的一种 内存连续,长度可变 的动态数组。 虽说动态数组,但 vector 的底层仍是定长数组。当数组大小不足时,vector 会倍增的申请、分配更多连续的空间。 定义 vector<int>h; 定义一个数据类型为 int 的 vector h。 需要头文件 #include<vec

  • 洛谷-P3388 【模板】割点(割顶)2022-08-25 23:00:37

    【模板】割点(割顶) tarjan 学了一下割点,发现就是找 \(low[nex] \ge dfn[now]\) 的点,同时根的话要求有两个分支才能作为割点 搜索的时候如果 \(nex\) 没有被访问过,则直接继续搜,如果访问过,则尝试通过 \(dfn[nex]\) 来松弛自己的 \(low[now]\),因为只考虑当前点能跑到的最上面的点,这与

  • 文艺平衡树2022-08-25 01:30:23

    # 【模板】文艺平衡树 ## 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 1,翻转区间是 [2,4] 的话,结果是 5 2 3 4 1。 ## 输入格式 第一行两个正整数 n,m,表示序列长度与操作个数。序列中第 i 项初始

  • CodeForces-505D Mr. Kitayuta's Technology2022-08-24 23:34:24

    Mr. Kitayuta's Technology tarjan + 思维 先缩点,然后考虑如何建边 如果其中一个 \(DAG\) 图中出现一个缩点后大小大于 \(2\) 的连通块(环),则考虑直接将这个 \(DAG\) 图变成一个环,代价显然都是相同的,即点的数量 因此延伸,考虑多个缩点前都有环的 \(DAG\) 图,我们不妨将他们全部变成一

  • P1451 求细胞数量2022-08-24 20:03:11

    P1451 求细胞数量 分析:根据题意,不为0的数连在一起是一个细胞,就是用bfs进行搜索,先是让初始点进入队列,记录下队头的点并向他的上下左右搜索,在没有越界且是细胞(不为0)的情况下,对这个细胞进行标记(后面搜的时候就不搜他了,要不然没完),这一点进行完之后将他放入队尾,在最后输出的时候如果一

  • P5021 [NOIP2018 提高组] 赛道修建 思路简记2022-08-24 19:31:50

    发现答案具有单调性,尝试一下二分答案能不能做 二分答案 \(t\) 后,问题的关键就变成最多能找到多少条长度大于等于 \(t\) 的赛道 我们先假设整棵树以 \(1\) 为根 把样例的图放出来: 我们可以发现一个性质: 如果一个链,它经过了结点 \(i\) 的父结点,同时包含了 \(i\) 到子结点的某条边,那

  • 平衡树Splay与FHQ2022-08-23 01:31:43

    树剖的未来会补的(卑微)。 这里想讲讲平衡树,因为看着高级,可以证明我学过OI。 我们先了解下 \(BST\),也就是平衡二叉树。 他的概念是,对于每一个非叶子结点,他的左儿子一定小于当前节点,右儿子必定大于当前节点。 类似于如下图,就是一个好看的 \(BST\): 那我们现在对平衡二叉树有了深入的

  • 基础树上问题之 树的直径 + 最近公共祖先 例题及学习笔记(入门版)2022-08-22 17:01:25

    本篇博客是关于洛谷题单【图论2-1】基础树上问题 的题目题解合集 紫题还不会,先鸽 同时附加一点我的个人学习心得 基础树上问题 除了 树形dp 外,还有 树的直径 和 LCA 等问题 树的直径 树的直径即树上最长路的长度 求法是首先任取一点作为根,求出一个到根最远的点,此为直径的一端;再以

  • P3605 [USACO17JAN]Promotion Counting P 题解2022-08-21 23:00:08

    solution 考虑权值线段树合并:首先离散化,然后对于一个节点,我们将它的所有子树合并上来,并统计所有能力指数的个数(权值线段树基本操作),查询时只需查询 \(p_i+1\sim n\) 的和即可 code #include <bits/stdc++.h> #define Tp template<typename Ty> #define Ts template<typename Ty,typ

  • Gym-101630C Connections2022-08-21 22:01:42

    Connections 思维 真没看出来 由于给的是强连通图,直接保留从 \(1\) 开始深搜,保证 \(1\) 能访问到其他所有点的,然后反向建图,保证所有点能够到达 \(1\) #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> using namespace std; const

  • CodeForces-1601B Frog Traveler2022-08-20 00:01:24

    Frog Traveler dp + bfs 感觉又像搜索 从后往前进行状态转移,像 \(bfs\) 一样保证当前搜索的是消耗次数最少的 状态转移因为是一个连续的区间,因此考虑当前能上升到的最大距离,只有能更新这个最大值,才进行状态转,保证每个位置只被访问一次 时间复杂度 \(O(n)\) #include <iostream> #i

  • 8.192022-08-19 21:32:47

    CF1720D2 题意: 给定序列\(A\),求\(A\)的最长子序列\(B\),满足\(a_p\oplus p+1<a_{p+1}\oplus p\) \(n\leq 3*10^5,0\leq a_i\leq 10^9\) 题解: 枚举两边的值从高位到地位有多少位相等,对于前\(k\)位来说,有: \(a_p\oplus p+1=a_{p+1}\oplus p\) 这样就可以把不等号变成等号,然后两边同时

  • JDK8中新日期时间API2022-08-18 22:31:22

    LocalDate、LocalTime、LocalDateTime的使用     @Testpublic void test4() { LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime = LocalDateTime.now(); System.out.println(date);//2022-08-18 System.out.prin

  • SPOJ-CAPCITY Capital City2022-08-18 20:33:11

    Capital City tarjan 缩点 缩点之后,找到 DAG 图中唯一一个出度为 \(0\) 的点,如果有多个,说明不成立 #include <iostream> #include <cstdio> #include <algorithm> #include <stack> #include <queue> #include <vector> using namespace std; const int maxn = 2e

  • 「CF1661E」 Narrow Components2022-08-18 01:31:21

    \(\texttt{「CF1661E」 Narrow Components}\) \(\texttt{Describe}\) 给你一个 \(3\) 行 \(n\) 列的 \(01\) 矩阵 \(a\),其中 \(0\) 表示黑色格子,\(1\) 表示白色格子。 再给出 \(q\) 次讯问,每次询问给出两个整数 \(l,r\) 让你回答区间 \([l,r]\) 白色连通块的数量 \(\texttt{Input

  • CF1719C Fighting Tournament 题解2022-08-17 18:31:52

    思路 根据题意,很容易看出,每个人都完成一次比赛后,即完成 \(n-1\) 轮之后,力量值最大的人会留在第一的位置,且在第 \(n-1\) 轮完成后,除了力量值最大的人,其他人的胜场数都不会再增加了。所以问题的关键是求所有人都完成一轮,即前 \(n-1\) 轮比赛之前的答案。 考虑将所有询问离线处理,并按

  • NOIP2022模拟赛二 By yzxoi 8.172022-08-17 17:01:28

    Preface 今天早上被公交车搞了,晚了30min才到…… 最后T1读入\(n\)的时候写%d了,喜提30pts(结果Rank竟然不变233) A. 「NOIP2022模拟赛二 By yzxoi A」『Pale』/ feat. 初音ミク Pro 有线性递推数列\(F\)满足: \[F(n)=3F(n-1)+2F(n-2)(n\ge 2)\\ F(0)=0,F(1)=1 \] \(Q\)次询问,每次

  • Codeforces1699E Three Days Grace【数学】【DP】2022-08-16 14:31:16

    分析: 一开始觉得是二分答案,发现行不通之后改为枚举最小值。 现在我将这若干个数分解,假设分解完之后得到的最小值为$i$,那么我就是要在最小值为$i$的基础上尽量最小化分解的各数的最大值。 考虑DP:设$f[x][i]$表示在分解结果最小值大于等于$i$的情况下,将$x$分解得到的最大值最小是多

  • 【复习】搜索2022-08-16 13:30:54

    Cleaning Robot 数独游戏 城市距离 Bloxorz I 部落卫队 Weather Forecast 生日蛋糕 Best Sequence Children of the Candy Corn Paid Roads Description 给出一张 \(n\) 个点 \(m\) 条边的有向图。对于每条边 \((a, b)\),如果之前经过 \(c\) 点,那么费用为 \(p\),否则为 \(r\)。求 \(

  • [2013年NOIP提高组] 积木大赛2022-08-15 22:03:41

    [2013年NOIP提高组] 积木大赛 思路:只需要进行n次循环,(两个数之间,如果后面的数大于前面的)用后面的数-前面的差值累加,就能得出操作次数啦~ 代码如下: #include<iostream> #include<cmath> using namespace std; int main() {       int n,last=0,now,i,ans=0;//ans 操作次数  

  • LCA 相关 && 树链剖分2022-08-15 00:03:50

    LCA 基本定义:最近公共祖先简称 LCA(Lowest Common Ancestor)。两个结点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 简单来讲,就是两个点到根的路径上,深度最深的重合点 常用的求解方法: 朴素方法 每次选择深度较深的那个结点,往上走一步,直到两个结点重合,这个重合点就

  • 【luogu CF1710C】XOR Triangle(数位DP)2022-08-14 21:01:20

    XOR Triangle 题目链接:luogu CF1710C 题目大意 给你一个数 n,要你求有多少个满足条件的 a,b,c 使得它们两两异或得到的三个值可以得到一个非退化三角形。 其中 a,b,c 值域在 0~n 之间。 思路 考虑要满足三个数任意放要: \(a\oplus b+a\oplus c>b\oplus c\) 然后考虑一下 \(a\oplus b

  • 2022牛客多校第七场2022-08-13 00:02:13

    2022牛客多校第七场 过程 本场首先C题签到,一道小构造,随后F想了想直接暴力删除即可,之后G在理解题意后做出,随后便开始坐牢,队友和我在J上的dp为五次方,没敢下手,,随后在最后时刻想明白了K,但已经没时间下手了,惨淡收场。 题解 C 生成一个排列使得\(P_i\not ={}A_i\),首先如果\(A_i\)全相等

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有