月份:2019年2月

篇文章

10182. 「一本通 5.5 练习 3」理想的正方形
题意 有一个 $a\times b$ 的整数组成的矩阵,现请你从中找出一个 $n\times n$ 的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 思路 设$dp[i][j][k]$表示以$i,j$为左上角的正方形变成为$k$内的最大值,$dp2[i][j][k]$表示最小值。 可知,$dp[i][j][k]=max(dp[i+1][j…
zkw线段树 学习笔记
前置知识 C++位运算学过线段树(其实关系不大) 什么是zkw线段树 就是一种线段树。(废话) 与普通线段树相比,zkw线段树更快、更短小。 本篇博客讲一个例题:Luogu P3372 普通线段树 zkw线段树 zkw线段树的实现 首先来看一看变量的定义与BuildTree操作 这是一棵求和的线段树(废话) 然后我们发现它有16个叶子节点。 而$1…
2240. 「CQOI2014」数三角形
三倍经验 LOJ #2240. 「CQOI2014」数三角形 BZOJ 3505: [Cqoi2014]数三角形 Luogu P3166 [CQOI2014]数三角形 (Luogu要大一些。。。) 题意 给定一个$n \times m$的网格,请计算三点都在格点上的三角形共有多少个。下图为$4 \times 4$的网格上的一个三角形。注意三角形的三…
主席树(静态) 学习笔记
在学习主席树之前 你必须学习: 线段树。 前缀和。 sort函数、unique函数以及lower_bound函数的使用方法。 什么是主席树 主席树又叫函数式线段树,又名可持久化线段树。所以主席树的名称与他的功能一点关系都没有。 主席树的时空复杂度为$O(n logn)$。 主席树的模板 由于主席树比较难理解,所以结合代码理解一下: [crayon-…
10137. 「一本通 4.4 练习 4」跳跳棋
题意 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有三颗棋子,分别在 $a,b,c$ 这三个位置。我们要通过最少的跳动把他们的位置移动成 $x,y,z$(注意:棋子是没有区别的)。跳动的规则很简单,任意选一颗棋子,对一颗中轴棋子跳动。跳动后两颗棋子距离不变。一次只允许跳过一颗棋子。…
10187. 「一本通 5.6 例 4」Cats Transport
题意 小S养了$M$只猫,雇了$P$位饲养员。农场旁边有$N$座山,从$1$到$N$编号,第$i$座山与第$i-1$座山的距离为$D_i$,饲养员都住在$1$号山上。 有一天,第$i$只猫到第$H_i$座山玩,一直玩到$T_i$停止。饲养员们必须接回所有的猫,饲养员们行走的速度为$1$个单位每单位时间。 问如何计划每个饲养员从$1$号山出发的时间,…
10162. 「一本通 5.2 练习 5」骑士
题意 有$n$个骑士,每个骑士有一个自己的战斗值,每个骑士也有且仅有唯一一个自己讨厌的骑士,每个骑士不可能与自己讨厌的骑士一起上场战斗,问最高的战斗值之和是多少? 思路 这道题与没有上司的舞会很像。但是注意,这道题可能会有环的存在,所以我们需要对于每个环,把它切割成两部分,再分别树形dp,然后取最大值,加入ans中。 树形dp的思路很简单: 设$f…
10161. 「一本通 5.2 练习 4」叶子的染色
题意 给一棵有 $m$ 个节点的无根树,你可以选择一个度数大于 $1$ 的节点作为根,然后给一些节点(根、内部节点、叶子均可)着以黑色或白色。你的着色方案应保证根节点到各叶子节点的简单路径上都包含一个有色节点,哪怕是叶子本身。对于每个叶子节点 $u$,定义 $c_u$ 为从根节点到 $u$ 的简单路径上最后一个有色节点的颜色。给出每个 $c_u$ …
10206. 「一本通 6.3 练习 1」X-factor Chain
题意 输入正整数 $x$,求 $x$ 的大于 $1$ 的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数。 思路 题目读起来很困难?告诉你题目的实际意思。 给你一个数,要求你输出将这个数分解成因式相乘,并且后面一个因子至少是前面一个因子的2倍,问最长的因式相乘链有多长,有几条最长的因式相乘链。 为什么可以这样转化…
10204. 「一本通 6.3 例 2」Hankson 的趣味题
题意 已知正整数 $a_0,a_1,b_0,b_1$,设某未知正整数 $x$ 满足:1. $x$ 和 $a_0$ 的最大公约数是 $a_1$;2. $x$ 和 $b_0$ 的最小公倍数是 $b_1$。Hankson 的「逆问题」就是求出满足条件的正整数 $x$ 的个数。 思路 先从第二个条件入手。 $$lcm(x,b_0)=b_1$$ 因为$lcm…
10156. 「一本通 5.2 例 4」战略游戏
题意 有一座古城堡,里面的路形成一棵树, 某个士兵在一个节点上时,与该节点相连的所有边都将能被瞭望到。问最少需要多少士兵才可以使所有的路都被瞭望到。 输入数据表示一棵树,描述如下。 第一行一个数 $N$ ,表示树中节点的数目。 第二到第 $N+1$ 行,每行描述每个节点信息,依次为该节点编号 $i$,数值 $k$,$k$ 表示后面有 $k$ 条边与…
10230. 「一本通 6.6 练习 1」牡牛和牝牛
题意 牡 mǔ,畜父也。牝 pìn,畜母也。 ——《说文解字》 约翰要带 $N$ 只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛。牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有 $K$ 只牝牛。请计算一共有多少种排队的方法,所有牡牛可以看成是相同的,所有牝牛也一样,答案对 $5000011$ 取…
洛谷 P3419 [POI2005]SAM-Toy Cars题解
题目描述 Jasio 是一个三岁的小男孩,他最喜欢玩玩具了,他有n 个不同的玩具,它们都被放在了很高的架子上所以Jasio 拿不到它们. 为了让他的房间有足够的空间,在任何时刻地板上都不会有超过k 个玩具. Jasio 在地板上玩玩具. Jasio'的妈妈则在房间里陪他的儿子. 当Jasio 想玩地板上的其他玩具时,他会自己去拿,如果他想玩的玩具在…
CF293B Distinct Paths 题解
题意 给定一个$n\times m$的矩形色板,有kk种不同的颜料,有些格子已经填上了某种颜色,现在需要将其他格子也填上颜色,使得从左上角到右下角的任意路径经过的格子都不会出现两种及以上相同的颜色。路径只能沿着相邻的格子,且只能向下或者向右。 计算所有可能的方案,结果对 $1000000007 (10^9 + 7)$ 输入及输出格式 输入格式 第一…
洛谷 P1992 不想兜圈的老爷爷 题解
题目描述 一位年过古稀的老爷爷在乡间行走 而他不想兜圈子 因为那会使他昏沉 偶然路过小A发扬助人为乐优良传统 带上地图 想知道路况是否一定使他清醒 usqwedf补充:为了让欢乐赛充满欢乐 小A还想问你一些数学作业…… 输入输出格式 输入格式: 一行 n m k 表示乡间共有 n 个村庄 m 条道路 接下来 m 行 每行两个整数 x y 表示 村 …
CF2B The least round way 题解
题目传送门 题意(直接复制了QWQ) 题目描述 给定由非负整数组成的$n \times n$的正方形矩阵,你需要寻找一条路径: 以左上角为起点, 每次只能向右或向下走, 以右下角为终点 并且,如果我们把沿路遇到的数进行相乘,积应当是最小“round”,换句话说,应当以最小数目的0的结尾. 输入格式 第一行包含一个整数 $(2 \leq n \leq…
P4009 汽车加油行驶问题 题解
当然食用spfa啦。 但本蒟蒻不会分层。所以就二维spfa啦。 基本思路就是:一开始先把(1,1)点的状态扔进队列。 然后分类讨论 详细见代码 丑陋无比的代码: [crayon-5db0787c496d1697655235/]
洛谷P1331 海战 题解
题目传送门 思路 肯定食用dfs啦。。。 但关键是两条船接触了怎么判断呢?? 上图: 可以发现一下规律 当两条船接触时,必有一条直线连续穿过两条船 当一条船不与另一条船接触时,没有一条直线连续穿过两条船 所以只需要在每一次碰见一条船的一部分(一条船内每个点都要拓展一遍)时,将其沿右上、左下分别拓展一遍,边拓展边用sum前缀和check一遍就好啦。。…
10082. 「一本通 3.3 例 1」Word Rings
题意 每组数据读入一个n和n个字符串。定义前2个与末尾2个字母相同可以连接。问使这个环串的平均长度最大。求这个最大值。不存在输出No solution。 思路 平均值公式: $$Average=(E_1+E_2+…..+E_n)/n$$ $$Average*n=(E_1+E_2+…+E_n)$$ $$(E_1-Average)+(E_2-Avera…
10086. 「一本通 3.3 练习 3」Easy SSSP
题意 给你一个图,问从源点到每个节点的最短路径分别是多少。 如果存在负权回路,只输出一行 -1;如果不存在负权回路,再求出一个点 S 到每个点的最短路的长度。如果 S 与这个点不连通,则输出 NoPath。 思路 当然食用spfa啦。 先跑一下非源点的。万一数据卡你其他有环呢? 然后再跑一次源点。得出Ans [crayon-5db0787c4c78…
10087. 「一本通 3.4 例 1」Intervals
题意 从$0\sim 5\times 10^4$中选出尽量少的整数,使每个区间$ [a_i,b_i]$内都有至少 $c_i$个数被选出。 思路 当然食用spfa啦。 设s[k]表示0~k中至少选多少个整数。根据题意可得: $$s[b_i]-s[a_i-1]\geq c_i$$ $$s[k]-s[k-1]\geq0$$ $$s[k]-s[k-1]\l…
10088. 「一本通 3.4 例 2」出纳员问题
题意 R(0)、R(1)、R(2)…R(23)表示第x个时刻需要R(x)个出纳员,有n个出纳员申请工作,第i个出纳员从t_i时刻开始工作8小时,问至少需要多少出纳员? 思路 设$x[i]$表示第$i$时刻实际上需要雇佣$x[i]$人,$r[i]$为第$i$时刻至少需要$r[i]$个人。 $$x[i-7]+x[i-6]+x[i-5]+x[i-4]+x…
10089. 「一本通 3.4 练习 1」糖果
题意 满足条件: 如果 X=1.表示第 A 个小朋友分到的糖果必须和第 B 个小朋友分到的精果一样多。 如果 X=2,表示第 A 个小朋友分到的糖果必须少于第 B 个小朋友分到的糖果。 如果 X=3,表示第 A 个小朋友分到的糖果必须不少于第 B 个小朋友分到的糖果。 如果 X=4,表示第 A 个小朋友分到的糖果必须多于第 B 个小朋友分到的糖果。…
10090. 「一本通 3.4 练习 2」布局 Layout
题意 有些奶牛是好基友,它们希望彼此之间的距离小于等于某个数。有些奶牛是情敌,它们希望彼此之间的距离大于等于某个数。 思路 如果两只奶牛是好基友,那么: $$A-B\leq D$$ 如果两只奶牛是情敌,那么: $$A-B\ge D$$ 即: $$D\leq A-B$$ 也就是: $$B-A\leq -D$$ 直接上代码: [crayon-5db07…
10117. 「一本通 4.1 练习 2」简单题
题意 有一个 $n$ 个元素的数组,每个元素初始均为 $0$。有 $m$ 条指令,要么让其中一段连续序列数字反转——$0$ 变 $1$,$1$ 变 $0$(操作 $1$),要么询问某个元素的值(操作 $2$)。 思路 当然是树状数组啦。。。 这里介绍C++的一大利器——位运算。 &在C++里叫做与运算。应该差不多吧。。大概就是这样的:(按一…
10121. 「一本通 4.2 例 3」与众不同
题意 定义完美序列:一段连续的序列满足序列中的数互不相同。 想知道区间 $[L,R]$ 之间最长的完美序列长度。 思路 设$las[x]$表示盈利$x$最近出现位置。 设$st[i]$表示以第$i$个数结尾的最长完美序列的起始位置。 $$st[i]=max(st[i-1],las[a[i]]+1)$$ 设$f[i]$表示以第$i$个数结尾的最长完美…
2597. 「NOIP2011」选择客栈
题意 有$n$个客栈,每个客栈都配有咖啡馆。有两名旅客想住在同色调的客栈中,又想在两客栈之间的咖啡馆中小聚,咖啡馆的价钱不能高于$p$。 对于 $100\%$ 的数据,有 $2\leq n\leq2\times 10^6$,$0<k\leq10^4$ ,$0\leq p\leq100$,$0\leq$ 最低消费 $\leq100$ 。 思路 …
10128. 「一本通 4.3 练习 2」花神游历各国
题意 每一次旅行中,花神会选择一条旅游路线,它在那一串国家中是连续的一段,这次旅行带来的开心值是这些国家的喜欢度的总和,当然花神对这些国家的喜欢程序并不是恒定的,有时会突然对某些国家产生反感,使他对这些国家的喜欢度 $\delta$ 变为 $\sqrt \delta$(可能是花神虐爆了那些国家的 OI,从而感到乏味)。 现在给出花神每次的旅行路线,…
10202. 「一本通 6.2 练习 5」樱花
题意 求不定方程: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ 的正整数解 $(x,y)$ 的数目。 思路 $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac{y}{xy}+\frac{x}{xy}=\frac{1}{n!}$$ $$\frac{x+y}{xy}=\…
10147. 「一本通 5.1 例 1」石子合并
题意 将 $n$ 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。 请编写一个程序,读入堆数 $n$ 及每堆的石子数,并进行如下计算: 选择一种合并石子的方案,使得做 $n-1$ 次合并得分总和最大。选择一种合并石子的方案,使得做 $n-1$ 次合并得分总和最小。 思…
10153. 「一本通 5.2 例 1」二叉苹果树
题意 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 $N$ 个节点,标号 $1$ 至 $N$,树根编号一定为 $1$。 我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵有四根树枝的苹果树,因为树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。 思路 设$f[i]…
10149. 「一本通 5.1 例 3」凸多边形的划分
题意 给定一个具有 $N$ 个顶点的凸多边形,将顶点从 $1$ 至 $N$ 标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成 $N-2$ 个互不相交的三角形,试求这些三角形顶点的权值乘积和至少为多少。 思路 首先随便搞一个多边形: 然后给它顺时针每个顶点表上序号: 然后枚举$i,j$,要求:$i+1<j$,然后给$i,j$连一条线,分…
10106. 「一本通 3.7 例 2」单词游戏
题意 有 $N$ 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词。你需要给这些盘子安排一个合适的顺序,使得相邻两个盘子中,前一个盘子上单词的末字母等于后一个盘子上单词的首字母。请你编写一个程序,判断是否能达到这一要求。如果能,请给出一个合适的顺序。多组数据。第一行给出数据组数 $T$,每组数据第一行给出盘子数量 $N$,接下去 $N$ 行给出…
10178. 「一本通 5.5 例 4」旅行问题
题意 John 打算驾驶一辆汽车周游一个环形公路。公路上总共有 $n$ 车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米。John 必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所有的车站,并回到起点。在一开始的时候,汽车内油量为零,John 每到一个车站就把该站所有的油都带上(起点站亦是如此),…
树链剖分 算法学习
树你应该懂的吧o( ̄︶ ̄)o 学习树链剖分之前需要先学习:$dfs$、线段树(当然大佬们用树状数组代替线段树也可以O(∩_∩)O),据说一名普及+的$oier$应该都会呀 先来了解树链剖分的用处 Luogu题目传送门 已知一棵包含$N$个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从…
博弈论之威佐夫博弈 算法学习
博弈论之威佐夫博弈 威佐夫博弈(Wythoff's game)是指的这样一个问题:有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。 ——转自百度百科 就比如洛谷的P2252 取石子游戏就是威佐夫博弈的裸题。。。 威佐夫博弈的性质 首先,由题目可知,当这两堆石子一样…
缩点求强连通分量——Kosaraju算法 学习笔记
Kosaraju 算法学习 序 这星期捣鼓了一个新的算法——Kosaraju算法 今天分享给大家 简介 Kosaraju算法,其实与tarjan算法差不多。但是码量较小,容易记忆。其时间复杂度与tarjan算法一样,为O(n+m),所以,某种程度上来说Kosaraju可以替代tarjan算法。 算法思路 如果直接让我讲Kosaraju算法到底是基于…
fhq treap 学习笔记
序 今天心血来潮,来学习一下fhq treap(其实原因是本校有个OIer名叫fh,当然不是我) 简介 fhq treap 学名好像是“非旋转式treap及可持久化”。。。听上去怪怪的。其实就是可以代替LCT、BST等等码量很高的东东。 定义 [crayon-5db0787c62a0b019884845/] 操作 最基本的操作 其实都不应该叫做操作…
矩阵快速幂 学习笔记
举例1:Fibonacci 题目传送门 题意 $$f[1]=1,f[2]=1,f[3]=2,f[4]=3 \dots f[n]=f[n-1]+f[n-2]$$那么输入$n$、$m$,求第n项Fibonacci的值$mod$ $m$,即$f[n]$ $mod$ $m$。$$1\leq n \leq 2 \times 10^9$$因为:$$f[i]=1…
欢迎来到yzx1798106406的博客
这是本博客的第一篇文章。本博客搭建于2019.2.14 12:20 。基于wordpress+Argon。 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!