
ACM
衛宮
I will be back
展开
-
关于Floyd的一些疑问
Floyd是一个很简单的算法, 运用了动态规划的思想.它是这么描述求最短路的过程的: 设Di,j,kDi,j,kD_{i, j, k} 是i到j的只以(1⋯k)(1⋯k)(1\cdots k)集合中的节点==为中间节点==的最短路径的长度.若最短路径经过点k, 则Di,j,k=Di,k,k−1+Dk,j,k−1Di,j,k=Di,k,k−1+Dk,j,k−1D_{i, j, k} = D...原创 2018-08-12 09:42:58 · 259 阅读 · 0 评论 -
Treap的区间操作 NOI2005维护序列
Fhq-Treap的序列操作Fhq-Treap的序列操作节点划分合并笛卡尔树性质构造插入删除求和最大子列和修改翻转比如NOI2005 维护序列, 这道题应该如何应用Fhq-Treap来维护呢?1节点我们还是采用指针式的Fhq-Treap. 为了可以把update(), spread(), assign(), reverse(...原创 2018-08-09 20:05:43 · 919 阅读 · 0 评论 -
最小生成树MST的三个简单应用
kruskal算法相当简单直观~还比prim好用~应用一, 求最大权值最小的最小生成树.仔细想一想, 最小生成树的最大权值就是最小的.应用二, 求次小生成树.先求一个最小生成树, 然后枚举这个最小生成树的每一条边, 然后计算分别删去这个边的图的最小生成树, 一共有n - 1个, 次小生成树一定是这几个.poj1679的问图的最小生成树是否为一, 可以先求最小生成树, 在求次小生...原创 2018-07-27 18:07:52 · 578 阅读 · 0 评论 -
[NOIP2013]货车运输
题目描述A 国有 n 座城市,编号从 1 到 n ,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入输出格式输入格式: 第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道路。 接下来 m 行每行 3 个整数 x,y,z,每两个...原创 2018-07-27 12:52:40 · 259 阅读 · 0 评论 -
花神游历各国
当时在火车上思考的, 思考了半天突然发现了开方操作不是平方操作, 开多了就成1了然后我发现这样就可以暴力的去做了, 因为整个数列最多开6次, 之后就都成了1.我特别发现数列是没有零的, 如果没有0值的话, 一个区间的和如果等于他的长度, 就不需要开深入修改了。洛谷P4145的数据是没有零的, libreOj的信息学奥赛一本通提高篇的练习题是有零的。今天交了几次, 但是都不对, 我发...原创 2018-07-30 16:19:44 · 215 阅读 · 0 评论 -
[AHOI2008]聚会
题目描述欢乐岛上有个非常好玩的游戏,叫做“紧急集合”。在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要花费一个游戏币。参加游戏的人三人一组,开始的时候,所有人员均任意分散在各个等待点上(每个点同时允许多个人等待),每个人均带有足够多的游戏币(用于支付使用道路的花费)、地图(标明等待点之间道路连接...原创 2018-07-30 11:32:28 · 831 阅读 · 0 评论 -
[NOI2002]银河英雄传说
有一个划分为N列的星际战场, 各列依次编号为 1, 2, ···, N. 有 N 艘战舰, 也依次编号为 1 - N, 初始时, 第 i 号战舰在第 i 列.T条指令, 有两种格式.1. M i j, 表示让第 i 号战舰所在列的全部战舰保持原有的顺序, 接在第 j 号战舰所在列的尾部.2. C i j, 表示询问第 i 号战舰与第 j 号战舰是否处在同一列中, 如果在同一列中, 他们...原创 2018-07-30 09:41:24 · 379 阅读 · 0 评论 -
[计蒜客-树状数组线段树]帕吉的肉钩
分析题意, 是一道典型的线段树题目.要求做到区间赋值(树状数组应该无法做到), 区间求和两个操作.开始的时候思路不清楚, 后来要注意线段树的 up 和 down 操作.需要注意的是有lazy-tag的节点, 它本身的信息是完全正确的, 子节点的信息是待更新的.这也就是说, 当需要用到这些子节点的信息时在进行更新.#include <iostream>#inclu...原创 2018-07-21 17:22:41 · 242 阅读 · 0 评论 -
树状数组
给n, m,给n个数字, 表示位置i的数字的排名,再给m个询问, 一个询问由a, b组成, 代表着要询问前i个数字中, 排名前b的数目. 当时想了好久好久, 但是一点意识也没有qwq.后来...看了别人的想法后, 突然就懂了点... 这种问题吧, 我感觉是要先确定一些顺序, 再根据已有的顺序进行操作.比如这里, 先确定询问的顺序, 把询问依据a排序, 这样的话, 对...原创 2018-07-26 10:27:13 · 97 阅读 · 0 评论 -
SuperMemo POJ3580 TREAP
SuperMemo TreapPOJ3580-SuperMemo典型的区间操作水题, 我们要注意的点是REVOLVE操作中的T可能是负数.我因为modify函数写错了, WA了好几次, 要细心.#include <iostream>#include <algorithm>#include <vector>#include <que...原创 2018-08-09 20:09:28 · 332 阅读 · 0 评论 -
[计蒜客]威虎山上的分配
问题是这样的, n个人, m个二元组, 对于每个二元组(a, b), 表示a的钱应该比b多.每个人最少应该有100元, 求最后的总分配钱数./*有两种思路, 一种是正常建边, 最后从在从拓扑序列的前面开始更新wage第二种是反向建边, 在拓扑排序的时候就直接更新wage第一种的常数大点.主要的点是: 对于A->B, B->C, A->C这种关系, A应该最后保留...原创 2018-07-28 10:40:02 · 208 阅读 · 0 评论 -
[洛谷P3258, JLOI2014]松鼠的新家
题目描述松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在”树“上。松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,再去a2,......,最后到an,去参观新家。可是这样会导致维尼重复走很多房间,懒惰的维尼不停地推辞。可是松鼠告诉他,每...原创 2018-08-01 11:40:24 · 193 阅读 · 0 评论 -
Fhq-Treap
FHQ Treapsplitmergeinsertremoveprecursorsuccessorthe first kget rankFHQ TreapFHQ Treap是fhq(范浩强)大神发明的非常好用非常有思想的函数式二叉搜索树.其主要操作分为两个merge, split.fhq-treap的每个节点只存一个数字, 也就是...原创 2018-08-07 16:58:51 · 2208 阅读 · 1 评论 -
[HNOI2004, 洛谷P2286]宠物收容所
题目描述凡凡开了一间宠物收养场。收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养场的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养场总是会有两种情况发生:被遗弃的宠...原创 2018-08-07 16:13:04 · 168 阅读 · 0 评论 -
[NOI2004, 洛谷P1486]郁闷的出纳员
题目描述OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体扣除...原创 2018-08-07 12:21:43 · 165 阅读 · 0 评论 -
笛卡尔树
笛卡尔树性质构造笛卡尔树笛卡尔树是一种同时满足二叉搜索树和堆的性质的数据结构. 可以在一个数组上构造出来(时间复杂度可以达到 O(n)O(n)O(n) ). 树中节点有几个属性, key(节点元素的大小, 优先级priority), index(节点在元素组中的索引), left(左子节点), right(右子节点), parent(父节点).性质...原创 2018-08-06 18:49:39 · 223 阅读 · 0 评论 -
[洛谷P2234, HNOI2002]营业额统计, fhq-treap
题目描述Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管...原创 2018-08-06 18:46:24 · 190 阅读 · 0 评论 -
[IOI2014, 洛谷4560]Wall城墙
给定一个长度为 n 且初始值全为 0 的序列。你需要支持以下两种操作:Add L,R,h:将序列 [L,R] 内所有值小于 h 的元素都赋为 h ,此时不改变高度大于 h 的元素值 Remove L,R,h :将序列 [L,R] 内所有值大于 h 的元素都赋为 h ,此时不改变高度小于 h 的元素值你需要输出进行 k 次上述操作之后的序列。这道题处看时没有一点想法, 脑海中只有“啊, ...原创 2018-08-01 22:25:58 · 221 阅读 · 0 评论 -
[洛谷P2023, AHOI2009]维护序列
这是一道典型的线段树板子题. hzwer说过, 对于线段树的多标记 lazy-tag 可以根据标记的优先级, 优先级高的先下传.但是我一直思路有点问题, 比如说这道题.这道题要求的是区间加法, 区间乘法, 要查询的是区间和.我开始的想法是, 不管是加法标记还是乘法标记都是相斥的, 要进行加法, 就必须把乘法标记清零(其实是清一),要进行乘法, 就必须把加法标记清零.这样想的话,...原创 2018-08-01 17:44:30 · 195 阅读 · 0 评论 -
[NOIp2015, 洛谷P2678]跳石头
题目背景一年一度的“跳石头”比赛又要开始了!题目描述这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NN 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算...原创 2018-08-01 14:47:17 · 182 阅读 · 0 评论 -
[CodeForces20C]Dijkstra?(Prim, Dijkstra)
这道题只需要在计算最短路的时候, 记录当前最小边的端点即可, 用faz[]数组.需要注意的是, 节点1只需要到节点N即可, 不需要整个图都联通. 可以用并查集, 也可以在Dijkstra算法后, 看一下dist[N](节点N到节点1的最短距离)是否为初值.开始的时候, 我的第一个思路是建立一个最短路径生成树, 然后在遍历这颗树, 从1开始, 到N的路径只有一条.但是我在提交的时候一直卡...原创 2018-07-28 22:27:56 · 288 阅读 · 0 评论 -
线段树常规操作
关于线段树的区间修改(加值), 区间查询(求和), 利用延迟化的思想, 是比较容易的.主要是想好标记下传中lazy-tag的意义是什么, 这个思路中的add标记的意义是: 当前节点没有问题, 但是子节点要受到当前节点标记的影响.#include <iostream>#include <algorithm>#include <cstdlib>#in...原创 2018-07-23 17:48:32 · 181 阅读 · 0 评论 -
信息传递dfs
有 nn 个同学( 编号为 11 到 nn)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 nn 的同学的信息传递对象是编号为 T_iTi的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象( 注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。 当有人从别人...原创 2018-02-21 14:54:52 · 455 阅读 · 0 评论 -
三值排序
排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。写一个程序计算出,计算出的一个包括1、2、3三种值的数字序列,排成升序所需的最少交换次数。输入第1行为类别的数量N(1≤N≤1000)输入第2行到第N+1行,每行包括一个数字(1或2或3)。输出包含一行,为排成升序所需的最少交换次数。样...原创 2018-02-27 16:50:37 · 444 阅读 · 0 评论 -
走迷宫
给一个 nn 行 mm 列的 22 维的迷宫,'S'表示迷宫额起点,'T'表示迷宫的终点,'#'表示不能通过的点,'.' 表示可以通过的点。你需要从'S'出发走到'T',每次只能上下左右走动,并且只能进入能通过的点,每个点只能通过一次。现在要求你求出有多少种通过迷宫的的方案。输入格式第一行输入 nn, mm (1 \le n,m \le 10)(1≤n,m≤10) 表示迷宫大小。原创 2018-02-03 14:56:44 · 178 阅读 · 0 评论 -
Radar Installation
DescriptionAssume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, loc原创 2018-01-24 19:39:32 · 141 阅读 · 0 评论 -
分蛋糕
Description有一块矩形大蛋糕,长和宽分别是整数w 、h。现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形、且长和宽均为整数。切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕。请计算:最后得到的m块小蛋糕中,最大的那块蛋糕的面积下限。假设w= 4, h= 4, m= 4,则下面的切法可使得其中最大蛋糕块的面积最小。假设w= 4, h= 4, m= 3,则下面的切法会使得其中原创 2018-01-06 12:06:45 · 403 阅读 · 0 评论 -
复杂的整数划分问题
Description将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。正整数n 的这种表示称为正整数n 的划分。Input标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 Output对于每组测试数据,输出以下三行数据:第一行: N划分成K个正整数原创 2017-12-28 19:03:23 · 615 阅读 · 0 评论 -
最佳加法表达式
总Time Limit: 1000ms Memory Limit: 65536kBDescription给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36Input有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放(原创 2017-12-27 10:59:40 · 232 阅读 · 0 评论 -
Sum Problem
Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … + n.Input The input will consist of a se原创 2017-04-24 19:52:40 · 193 阅读 · 0 评论 -
A + B Problem||
杭电上的1002,很水,但是出错却很多。 首先是,没有认真读题,遗漏了好几个条件。其次是用了cin导致超时。还有PresentatonError,修改后代码就submit,结果是判断条件有问题。 以此为戒。原创 2017-04-24 19:27:52 · 230 阅读 · 0 评论 -
蒜头君的新游戏 dp
工作空闲之余,蒜头君经常带着同事们做游戏,最近蒜头君发明了一个好玩的新游戏:nn 位同事围成一个圈,同事 A 手里拿着一个兔妮妮的娃娃。蒜头君喊游戏开始,每位手里拿着娃娃的同事可以选择将娃娃传给左边或者右边的同学,当蒜头君喊游戏结束时,停止传娃娃。此时手里拿着娃娃的同事即是败者。玩了几轮之后,蒜头君想到一个问题:有多少种不同的方法,使得从同事 A 开始传娃娃,传了 mm次之后又回到了同事 A 手里...原创 2018-02-21 22:48:15 · 1063 阅读 · 0 评论 -
等和的分隔子集
晓萌希望将 11 到 NN 的连续整数组成的集合划分成两个子集合,且保证每个集合的数字和是相等。例如,对于 N=3N=3,对应的集合 \{1,2,3\}{1,2,3} 能被划分成 \{3\}{3} 和 \{1,2\}{1,2} 两个子集合.这两个子集合中元素分别的和是相等的。对于 N=3N=3 ,我们只有一种划分方法,而对于 N=7N=7 时,我们将有 44 种划分的方案。输入格式输入包括一行,仅...原创 2018-02-28 23:08:46 · 352 阅读 · 1 评论 -
乳草的侵占 bfs
Farmer John 一直努力让他的草地充满鲜美多汁的而又健康的牧草。可惜天不从人愿,他在植物大战人类中败下阵来。邪恶的乳草已经在他的农场的西北部份占领了一片立足之地。 草地像往常一样,被分割成一个高度为 Y(1 \le Y \le 100)Y(1≤Y≤100), 宽度为 X(1 \le X \le 100)X(1≤X≤100) 的直角网格。(1,1)(1,1)是左下角的格(也就是说坐标排布跟一...原创 2018-02-22 23:00:58 · 783 阅读 · 0 评论 -
poj 3617 Best Cow Line
DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.The con...原创 2018-04-28 20:37:18 · 124 阅读 · 0 评论 -
UVA11235: Frequent values(RMQ)
You are given a sequence of n integers a1 , a2 , . . . , an in non-decreasing order. In addition to that, you are given several queries consisting of indices i and j (1 ≤ i ≤ j ≤ n). For each query, d...原创 2018-05-05 17:41:21 · 190 阅读 · 0 评论 -
poj2566 Bound Found
DescriptionSignals of most probably extra-terrestrial origin have been received and digitalized by The Aeronautic and Space Administration (that must be going through a defiant phase: "But I want to u...原创 2018-04-24 11:45:58 · 185 阅读 · 0 评论 -
楼兰图腾
在完成了分配任务之后,西部314来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N个点的水平位置和竖直位置是两两不同的。西部314认为这幅壁画所包含的信息与这N个点的相对位置有关,因此不...原创 2018-04-09 20:10:09 · 692 阅读 · 0 评论 -
Ultra-QuickSort
任意给定一个集合 s, 如果用 t[val] 保存数值 val 在集合 s 中出现的次数, 那么数组 t 在[l, r]上的区间和就表示集合 s 中范围在 [l, r] 内的数有多少个.在集合 s 的数值范围上建立一个树状数组, 来维护 t 的前缀和. 这样即使在集合 s 中插入或删除一个数, 也可以高效地进行统计.DescriptionIn this problem, you have to a...原创 2018-04-09 19:05:51 · 253 阅读 · 1 评论 -
Cinema codeforces 670C
Moscow is hosting a major international conference, which is attended by n scientists from different countries. Each of the scientists knows exactly one language. For convenience, we enumerate all lan...原创 2018-04-07 20:31:09 · 231 阅读 · 0 评论