10 2022 档案

摘要:二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分二叉(就是说没有只有一个儿子的结点) 这棵树共有 N 个结点(叶子点或者树枝分叉点),编号为 1N,树根编号一定是 1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有 4 个树枝的树: 2 阅读全文
posted @ 2022-10-24 21:28 YHXo 阅读(156) 评论(0) 推荐(0) 编辑
摘要:樱花 题目背景 《爱与愁的故事第四弹·plant》第一章。 题目描述 爱与愁大神后院里种了 n 棵樱花树,每棵都有美学值 Ci(0Ci200)。爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍过,一种樱花树最多看 $A_i 阅读全文
posted @ 2022-10-24 16:09 YHXo 阅读(58) 评论(0) 推荐(0) 编辑
摘要:[NOI1995] 石子合并 题目描述 在一个圆形操场的四周摆放 N 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 2 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出一个算法,计算出将 N 堆石子合并成 1 堆的最小得分和最大得分。 输入格式 数 阅读全文
posted @ 2022-10-24 14:52 YHXo 阅读(59) 评论(0) 推荐(0) 编辑
摘要:We Need More Bosses 题面翻译 题目大意: 给定一个n个点m条边的无向图,找到两个点s,t,使得st必须经过的边最多(一条边无论走哪条路线都经过ta,这条边就是必须经过的边),2<=n<=3105,1<=m<=3105 输入格式: 第一行两个整数,$n 阅读全文
posted @ 2022-10-19 19:02 YHXo 阅读(29) 评论(0) 推荐(0) 编辑
摘要:[HNOI2003]操作系统 题目描述 写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。 如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束。除非在这个过程中 阅读全文
posted @ 2022-10-19 15:34 YHXo 阅读(37) 评论(0) 推荐(0) 编辑
摘要:[SNOI2017]炸弹 题目描述 在一条直线上有 n 个炸弹,每个炸弹的坐标是 xi,爆炸半径是 ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 xj 满足: |xjxi|ri ,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 阅读全文
posted @ 2022-10-19 14:50 YHXo 阅读(76) 评论(0) 推荐(0) 编辑
摘要:题目描述 给两个n×m的矩阵A和B,你可以进行若干次操作。每次操作你可以使A或B的某一行或者某一列的所有元素增加1。 问至少要多少次操作,才能使A和B相等。 输入格式 从文件a.in中读入数据。 第一行一个正整数T,表示数据组数。 每组数据的第一行两个正整数n,m。 接下来n行,每行m个非负整数 阅读全文
posted @ 2022-10-17 19:01 YHXo 阅读(192) 评论(0) 推荐(0) 编辑
摘要:题目描述 Tom 最近学习了滑动窗口类的算法,滑动窗口算法可以解决一些线性数组的离线静态区间查询类问题。 具体来说,假设对于一个数组进行 m次静态区间查询问题。如果这些查询满足条件:i,j,当 liljrirjij表示查询的编号,lr表示查询的左右端 阅读全文
posted @ 2022-10-17 11:39 YHXo 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题目描述 Tom 的班级中有 n 个人,他们的性格各不相同。 Tom 现在想要从这 n 个人中选出一些人组成一个兴趣小组,但是他想让参加这个兴趣小组的人数尽可能的多。但是他又不想让其中有任何一对人之间由于性格问题产生矛盾。 具体来说,如果这个兴趣小组中出现两个人性格值的乘积开三次方根是一个正 阅读全文
posted @ 2022-10-17 10:50 YHXo 阅读(36) 评论(0) 推荐(0) 编辑
摘要:(没穿红色的可莉......) 题目描述 给定一张 n 个点 m 条边的连通图,每条边有权值 w ,定义从 u1ux 经过边 e1e2ek 的路径长度为: 请分别对于每个点 i[2,n] 求出点 1i 的长度最小的路径。 输入格式 阅读全文
posted @ 2022-10-14 19:17 YHXo 阅读(20) 评论(0) 推荐(0) 编辑
摘要:(芭芭拉太可爱了叭......) 题目描述 在企鹅国,企鹅们是通过滑冰出行的。每次滑冰需要选择一个营地作为起点,一个营地作为终点,然后从营地 A(ax,ay) 滑到营地 B(bx,by) 需要的时间是 min|axbx|,|ayby|。 现在企鹅豆豆在 $ 阅读全文
posted @ 2022-10-14 18:52 YHXo 阅读(73) 评论(0) 推荐(0) 编辑
摘要:[JSOI2007] 建筑抢修 题目描述 小刚在玩 JSOI 提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T 部落消灭了所有 Z 部落的入侵者。但是 T 部落的基地里已经有 N 个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T 部落基地 阅读全文
posted @ 2022-10-14 14:24 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:绝世好题 题目描述 给定一个长度为 n 的数列 ai,求 ai 的子序列 bi 的最长长度 k,满足 b_i & b_{i-1} \ne 0,其中 2ik& 表示位运算取与。 输入格式 输入文件共 2 行。 第一行包括一个整数 n阅读全文
posted @ 2022-10-14 11:19 YHXo 阅读(26) 评论(0) 推荐(0) 编辑
摘要:[NOIP2010 提高组] 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张爬行卡片,分成4种不 阅读全文
posted @ 2022-10-13 21:11 YHXo 阅读(85) 评论(0) 推荐(0) 编辑
摘要:快速求和 题目描述 给定一个数字字符串,用最小次数的加法让字符串等于一个给定的目标数字。每次加法就是在字符串的某个位置插入一个加号。在里面要的所有加号都插入后,就像做普通加法那样来求值。 例如,考虑字符串12,做 0 次加法,我们得到数字 12。如果插入 1 个加号,我们得到 3,因 阅读全文
posted @ 2022-10-13 20:18 YHXo 阅读(170) 评论(0) 推荐(1) 编辑
摘要:大师 题目背景 建筑大师最近在跟着数学大师 ljt12138 学数学,今天他学了等差数列,ljt12138 决定给他留一道练习题。 题目描述 ljt12138 首先建了 n 个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为 1n,第 i 个电塔的高度为 h[i]。 建筑 阅读全文
posted @ 2022-10-13 20:09 YHXo 阅读(17) 评论(0) 推荐(0) 编辑
摘要:P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个 n×n 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果 $ 阅读全文
posted @ 2022-10-13 11:34 YHXo 阅读(76) 评论(0) 推荐(0) 编辑
摘要:p1006 这道题其实和1004的方格取数差不多。 先放一下四维DP的代码,与之前不同,l从j + 1开始,这样保证了不会有重复的点,中点(n,m)的值为0,所以最后的答案是f[n][m - 1][n - 1][m]。 #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2022-10-13 10:49 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:P1004 [NOIP2000 提高组] 方格取数 题目描述 设有 N×N 的方格图 (N9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 阅读全文
posted @ 2022-10-13 10:15 YHXo 阅读(101) 评论(0) 推荐(0) 编辑
摘要:(神里......) 先来复习一下C++STL库函数的二分查找lower_bound和upper_bound。 lower_bound求的是序列中第一个大等于目标元素,返回其位置,upper_bound求的是序列中第一个大于目标元素的位置。 序列{an}下标从1开始,二者的形式: int 阅读全文
posted @ 2022-10-13 09:37 YHXo 阅读(119) 评论(0) 推荐(0) 编辑
摘要:##题目描述 作为学校违纪行为的代言人,小S被老师安排去排一个新班级的座位。新班级有 n位同学,他们的成绩按顺序分别为a1,a2,,anaiai+1。教室的一桌会坐相邻的两个人,称为同桌。为促进互帮互助,一对同桌的成绩之差的绝对值必须大于等于给定的常数 K, 阅读全文
posted @ 2022-10-13 08:23 YHXo 阅读(78) 评论(0) 推荐(0) 编辑
摘要:##题目描述 小D今天学习了哈希,因此她对一个等比数列在模意义下的值产生了浓厚兴趣。她选定了三个数 n,a,p (0<a<p) ,并生成了一个共 n 项且下标从 0 开始的序列fi=ai!!modp 用于研究。但可惜的是,她不小心把 f 排序了一下,并且她忘记了原先的 a 的值,请 阅读全文
posted @ 2022-10-13 08:03 YHXo 阅读(95) 评论(0) 推荐(0) 编辑
摘要:P1194 买礼物 普及的题目,而且一眼就能看出该用什么做法。 我主要是决定这道题建图的思想值得借鉴,每样东西原本的价格是a,所以新建一个节点0, 0向i连边,边权为a,这样一共就有b + 1个点,跑kruskal的时候记录加入的边数,=b时就break。 #include <bits/stdc++ 阅读全文
posted @ 2022-10-11 21:53 YHXo 阅读(41) 评论(0) 推荐(0) 编辑
摘要:P3796 差不多还是AC自动机的模板,不过求解得问题不同,这里trie树节点end维护以该点结尾的单词的编号,这样方便我们统计每个模式串出现的次数,最后找到次数最多的模式串即可。 #include <bits/stdc++.h> using namespace std; const int N = 阅读全文
posted @ 2022-10-11 21:10 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:P3808 KMP用来求单模式串的匹配,AC自动机用来求多模式串的匹配。 就是给你n个模式串,再给你一个文本串,求有多少个模式串在文本串中出现过。 AC自动机的数据结构基于trie数,像KMP的nxt数组一样维护失配指针fail(寻找fail的过程是用bfs实现的),查询过程中不断向下匹配,匹配不了 阅读全文
posted @ 2022-10-11 20:11 YHXo 阅读(47) 评论(0) 推荐(0) 编辑
摘要:这是一篇由超级菜的OIer写的博客...... LIS就是最长上升子序列,通过DP求解。 普通的求法是O(n2)的(相信大家都会写): ##解法1 #include <bits/stdc++.h> using namespace std; const int N = 105, inf 阅读全文
posted @ 2022-10-11 14:46 YHXo 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过 n 元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表 阅读全文
posted @ 2022-10-11 10:00 YHXo 阅读(154) 评论(0) 推荐(0) 编辑
摘要:P2392 一道有点意思的题...... 对于每一科的作业, 左右脑各可以解决一门,最后取花费时间较长的作为全部解决完该科作业的答案,计sum为该科作业时间总和,所以当左右脑各花费sum/2时(也就是时间差为0)答案显然是最优的,所以我们要让这个时间差尽可能的小,所以可以用背包。 设背包容量为sum 阅读全文
posted @ 2022-10-11 09:03 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:P3842 每一行走完该行的线段后才能向下一行移动,那么显然可以按行数为阶段进行DP,发现每一行停止的位置不是在左端点就是在右端点,所以设f[i][0\1]表示走完第i行的线段最终停在左/右端点的最短路程, 从该行的左/右端点向下一行的左右端点转移即可,模拟一下可以得到转移方程。 代码如下: 1 # 阅读全文
posted @ 2022-10-11 08:16 YHXo 阅读(37) 评论(0) 推荐(0) 编辑
摘要:P1077 首先二维数组的DP比较好想,设f(i,j)表示前i种花摆了j盆的方案数,方程为f(i,j)=k=0a[i]f(i1,jk) 代码如下: #include <bits/stdc++.h> using namespace std; const in 阅读全文
posted @ 2022-10-10 20:27 YHXo 阅读(59) 评论(0) 推荐(0) 编辑
摘要:P1002 标记马可以到达的地方,因为卒是能向下或向右走,设f[i][j]表示到达(i,j)的路径数,显然有:f[i][j] = f[i - 1][j] + f[i][j - 1]。 DP转移即可。 1 #include <bits/stdc++.h> 2 #define ll long long 阅读全文
posted @ 2022-10-10 17:06 YHXo 阅读(53) 评论(0) 推荐(0) 编辑
摘要:P1802 (日常切水题......) 打人游戏,打不赢获得lose[i],打赢获得win[i],显然win[]>lose[],首先我们肯定可以获得所有的lose,那么打赢每个人就相当于可以获得win-lose,代价为use[i],那么这道题就是一个01背包问题了。 (放张可莉压压惊......) 阅读全文
posted @ 2022-10-10 15:09 YHXo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:P4017 A被B吃,则由A向B连一条有向边,最终得到一个有向图。起点为入度为0的点,终点为出度为0的点,相当于算从起点到终点有多少条不同的路径。 我们设dp[i]表示从起点到i点的路径条数,最终的答案就是所有出度为0的点的dp值相加。dp过程用拓扑排序处理即可。 1 #include <bits/ 阅读全文
posted @ 2022-10-10 14:37 YHXo 阅读(30) 评论(0) 推荐(0) 编辑
摘要:P2572 又是一道颠覆我对线段树认知的题...... 线段树每个节点维护八个信息:0/1个数,从左/右起0/1的个数,最长连续的0/1个数。 我们用线段树维护信息是需要区间合并的,因此为保证能够合并,我们才维护以上的八个信息。 打上两个标记:tg1={-1, 0, 1},-1表示没有,0表示将区间 阅读全文
posted @ 2022-10-10 11:34 YHXo 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P2196 将题目的信息转化为图,相当于我们要在图上找一条最长路径,考虑dfs,dp[i]表示以i结尾的最长路径。则有dp[i] = max(dp[j]) + a[i]) j->i。 题目又要求输出路径,所以用pre[i]记录前驱,最后输出即可。 1 #include <bits/stdc++.h> 阅读全文
posted @ 2022-10-10 10:58 YHXo 阅读(101) 评论(0) 推荐(0) 编辑
摘要:01背包裸题。 不用数组记录每个物品的重量和价值,分别用两个变量记录即可。 1 #include <bits/stdc++.h> 2 using namespace std; 3 int t, m, x, y; 4 int f[1005]; 5 int main() { 6 scanf("%d %d 阅读全文
posted @ 2022-10-10 09:14 YHXo 阅读(127) 评论(0) 推荐(0) 编辑
摘要:P1262 间谍a知道间谍b的情报,那么a向b连边,比较显然的做法就是用tarjan先缩点,这样一个联通块中只要一个人被抓捕,其他的都能抓捕,我们对于每个连通块维护块内的最小花费,再维护块内最小的节点编号。 对于入度为0的连通块我们肯定是需要购买的,购买后他所连向的连通块我们就都可以抓捕了,依次下去 阅读全文
posted @ 2022-10-09 20:07 YHXo 阅读(26) 评论(0) 推荐(0) 编辑
摘要:P1407 对于数据读入的处理就是用map将字符串映射为一个数值即可。 我们称n对为夫妇, m对为情人, 如果把这n+m对关系都用边相连,我们可以得到很多个环,在环中如果一对夫妇离婚,那么两个人都可以和环中的情人分别再进行配对,所以我们可以用tarjan来判断一对夫妇是否都在同一个环中,如果在那么这 阅读全文
posted @ 2022-10-09 19:57 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:P3387 我的做法就是将原图缩点,得到一个DAG新图,在新图上进行DP求最长路径。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5 + 10; 4 int n, m, t; 5 int dfn[N], lo 阅读全文
posted @ 2022-10-09 19:47 YHXo 阅读(19) 评论(0) 推荐(0) 编辑
摘要:求割点: 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5 + 10; 4 int n, m, t, idx; 5 int tot, head[N], to[N << 1], nxt[N << 1]; 6 in 阅读全文
posted @ 2022-10-09 19:43 YHXo 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5 + 10; 4 int n, opt, x, val[N], fa[N], sze[N], sum[N], lc[N], rc[N], T, rt; 5 voi 阅读全文
posted @ 2022-10-08 21:09 YHXo 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目大意: 题目描述. 有𝑛个套娃,大小为𝑎1 ≤ 𝑎2 ≤ … ≤ 𝑎𝑛,现在要将这些套娃分成𝑘组,每组套娃按照大小排序后相邻两个套娃之间的大小差距要求≥ 𝑟,求方案数。 解析: 求方案数, 考虑DP。 dpi,j表示前i个套娃分成j组的方案数。对于套娃i,满足ai - ap>=r时 阅读全文
posted @ 2022-10-08 11:51 YHXo 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题目 感觉这已经不能说是模板了吧...... 解析: 难点在于换根后对子树进行的操作,设rt为当前根节点,u为操作子树: u=rt时,就是对整棵树操作,没事么好说的。 rt不在u的子树范围内,操作对象就是u的子树。 rt在u的子树范围内,操作范围就是整棵树减去u-rt路径上深度最小的点(可以用线段树 阅读全文
posted @ 2022-10-08 10:27 YHXo 阅读(36) 评论(0) 推荐(0) 编辑
摘要:将树通过树链剖分转化成线性序列,用线段树维护最值,和值即可。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 3e4 + 10; 4 int n, m, head[N], to[N << 1], nxt[N << 1 阅读全文
posted @ 2022-10-07 21:12 YHXo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:P3402 通过主席树维护不同版本的并查集,注意要采用按秩合并的方式,路径压缩可能会爆。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 3e5 + 10; 4 int n, m, rt[N * 30]; 5 str 阅读全文
posted @ 2022-10-07 20:13 YHXo 阅读(21) 评论(0) 推荐(0) 编辑
摘要:还是用主席树来做(因为提到不同的版本),这时候的主席树不是以权值为下标的,就是普通的线段树,维护范围1~n,i存的是a[ ]中的数。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e6 + 10, M = N * 阅读全文
posted @ 2022-10-07 18:53 YHXo 阅读(21) 评论(0) 推荐(0) 编辑
摘要:主席树另一模板。 查询的是[L,R]中<=h的个数。 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define lc tr[i].ch[0] 4 #define rc tr[i].ch[1] 5 #define Lc tr[j].ch[0 阅读全文
posted @ 2022-10-06 16:45 YHXo 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P3834 主席树模板,求区间第k小。 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define lc tr[i].ch[0] 4 #define rc tr[i].ch[1] 5 #define Lc tr[j].ch[0] 6 #de 阅读全文
posted @ 2022-10-06 15:00 YHXo 阅读(18) 评论(0) 推荐(0) 编辑
摘要:P2680 题目的大意就是走完m条路径所需要的最短时间(边权是时间), 其中我们可以把一条边的权值变成0(也就是题目所说的虫洞)。 可以考虑二分答案x,找到一条边,使得所有大于x的路径都经过这条边(差分维护),并且路径减去这条边的边权后小等于x,通过这样判定x是否可行。 1 #include <bi 阅读全文
posted @ 2022-10-06 11:31 YHXo 阅读(25) 评论(0) 推荐(0) 编辑
摘要:1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int N = 5e6 + 10; 5 ll fac[N], sv[N], inv[N], a[N]; 6 ll n, p, k; 7 阅读全文
posted @ 2022-10-04 16:32 YHXo 阅读(18) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示