10 2018 档案

摘要:题目描述:给出一个n*n的棋盘,棋盘上每个格子有一个值。你有一个子,要求将这个子从1移到n*n(去k时可以经过比k大的点)。 开局时它可以作为车,马,相(国际象棋)。每走一步耗费时间1。你也可以中途将它换为车,马,相(国际象棋),耗费时间1。 求最短时间,以及保证最短时间的最少替换次数。 题解: 一 阅读全文
posted @ 2018-10-31 07:25 LiGuanlin 阅读(245) 评论(0) 推荐(0)
摘要:【问题描述】小A 和小B 在做游戏。他们找到了一个n 行m 列呈网格状的画板。小A 拿出了p 支不同颜色的画笔,开始在上面涂色。看到小A 涂好的画板,小B 觉得颜色太单调了,于是把画板擦干净,希望涂上使它看起来不单调的颜色(当然,每个格子里只能涂一种颜色)。小B 想知道一共有多少种不单调的涂色方案。 阅读全文
posted @ 2018-10-29 16:09 LiGuanlin 阅读(241) 评论(0) 推荐(0)
摘要:分治+并查集。 阅读全文
posted @ 2018-10-27 20:22 LiGuanlin 阅读(452) 评论(0) 推荐(0)
摘要:题目大意:给出n个bool变量,以及m个条件,条件为x,vx,y,vy,表示 x == vx || y == vy 。 求匹配。 题解: 最近新学了一下2-SAT算法。2-SAT指有若干个bool变量(显然有1/0两个值),还给出若干限定条件,比如: t1 || t2 t1 || !t2 t1 && 阅读全文
posted @ 2018-10-27 07:39 LiGuanlin 阅读(240) 评论(0) 推荐(0)
摘要:题目:(luogu翻译错的很多) Alice和Bob玩游戏,每人有8张牌,牌的值为0~4。每一轮当前玩家选择自己的牌A和对手的牌B,然后将A的值变为( A + B )%5,其中A和B都不是0。 当一个人手牌全为0时他就赢了。 T(T<=1e5)组询问,求最后谁赢了,如果都没赢输出Deal。(两个人都 阅读全文
posted @ 2018-10-24 16:51 LiGuanlin 阅读(374) 评论(10) 推荐(0)
摘要:题目描述:给出一个无向图,找出使每个点离1号距离都有最小值时边的k个选择方案。 题解: 先跑bfs求最短路,然后总方案数*=节点a与深度小于a的点相连边数。 最后枚举每个点连哪条边。 代码: 阅读全文
posted @ 2018-10-24 13:20 LiGuanlin 阅读(216) 评论(0) 推荐(0)
摘要:题目大意:给出一棵树,其中每个点有其点权。求树上每对点间路径上的极差之和。 题解:鉴于n<=1e6,O( n ^ 2)的算法会T飞。因此可以考虑将极差拆为sigma max - sigma min。 因此得出这样一个做法: 第一步,将点按点权排序。 第二步,从小到大向图中加点,用并查集维护块的大小, 阅读全文
posted @ 2018-10-23 20:29 LiGuanlin 阅读(144) 评论(0) 推荐(0)
摘要:题目大意:有n个人,每人有两个时间考试。同一个时间不能有两个人同时考试。问全部考完的最小时间。题解:二分图,考虑匈牙利+二分答案,但我太弱了导致超时。 于是考虑并查集: 比如对于2 1 5 1 7,我们可以认为有两条边,分别链接1 5和1 7。 然后分别加进去,先是: 7 1 <-> 5 这时候第一 阅读全文
posted @ 2018-10-23 07:18 LiGuanlin 阅读(238) 评论(8) 推荐(0)
摘要:题目描述 给定一棵树。要求往树中加入一些边使得从1到其他节点的距离至多是2 。 输出加入边的最小数量。(边全部都是无向的) 题解:好多人都说是贪心,但是我写的是树形dp。 (这道题实在太像小胖守皇宫了) 先贪一步,每条边都由1连出,另一端距离为1。因此可以更新其父亲和儿子。 dp[ u ][ 0 / 阅读全文
posted @ 2018-10-22 21:10 LiGuanlin 阅读(171) 评论(6) 推荐(0)
摘要:题目大意: 一共有n个人,他们开始互不认识,而每天早上不认识的两个人会变成朋友。一共有m天,每天晚上有的人要去旅行,去旅行的人必须满足ta有至少k个朋友也去旅行 求每天去旅行的最大人数 题解:正向处理比较麻烦,倒不如反向处理。 先假设所有人都去,然后逐个删去不了的人。 代码: 阅读全文
posted @ 2018-10-22 20:04 LiGuanlin 阅读(168) 评论(0) 推荐(0)
摘要:题目大意:给出n对括号,并给出每对括号距离的范围。问能否找到这样一个序列。 题解:好多人都用贪心。这么好的题为什么不搜一发呢? 注意:千万不要在dfs里面更新答案。 代码: 阅读全文
posted @ 2018-10-22 18:48 LiGuanlin 阅读(244) 评论(0) 推荐(0)
摘要:题目大意:给出一棵n个结点的树以及常数k。将树的所有叶节点(度为1)分组,使得组内每个叶节点距离<=k,求最小组数。 题解:贪心搜索,找一个度不为一的树根,然后对于每个节点按最远的合法叶节点距离排序,然后合并。时间复杂度O(nlogn)。 代码: 阅读全文
posted @ 2018-10-22 07:04 LiGuanlin 阅读(143) 评论(0) 推荐(0)
摘要:题目描述 永无乡包含 n 座岛,编号从 1 到 n ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以 到达岛 b ,则称岛 a 和岛 b 是连通 阅读全文
posted @ 2018-10-21 11:54 LiGuanlin 阅读(218) 评论(11) 推荐(0)
摘要:题目大意:给出n个点和m条边,其中n<=1e5,m-n<=20,q次询问,询问两点最短路。 题解:由于m-n<=20,所以可以当树上套环来做。先用最小生成树开一棵树,然后对于每个删掉的边的节点跑dij。 代码: 阅读全文
posted @ 2018-10-17 14:31 LiGuanlin 阅读(153) 评论(0) 推荐(0)
摘要:题目描述 小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不 过小T的记忆力是非常好的,所以每 阅读全文
posted @ 2018-10-16 15:47 LiGuanlin 阅读(136) 评论(0) 推荐(0)
摘要:题目描述 轮状病毒有很多变种。许多轮状病毒都是由一个轮状基产生。一个n轮状基由圆环上n个不同的基原子和圆心的一个核原子构成。2个原子之间的边表示这2个原子之间的信息通道,如图1。 n轮状病毒的产生规律是在n轮状基中删除若干边,使各原子之间有唯一一条信息通道。例如,共有16个不同的3轮状病毒,入图2所 阅读全文
posted @ 2018-10-16 13:45 LiGuanlin 阅读(230) 评论(3) 推荐(0)
摘要:题目大意:给定一个有向图,其中边有边权。求点数最少的正环的点数。 题解:建立矩阵,处理其二进制上每一位的状态。时间O(n^3*log(n))。 代码: 阅读全文
posted @ 2018-10-12 00:00 LiGuanlin 阅读(310) 评论(0) 推荐(0)
摘要:题目大意:有n个人,每个人有x,y两个值。x代表干掉他得到的分数,分数和不超过m;y代表干掉他后你能额外干掉多少个,且不计入总分。 求干掉人数最多为多少,以及最小的分。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 考试最后40分钟想出正解贪心,思路太 阅读全文
posted @ 2018-10-07 08:52 LiGuanlin 阅读(205) 评论(0) 推荐(0)
摘要:题目大意:给出一个二分图,求它的最大匹配。 匈牙利算法板子题。。 代码:(写的比较烂) 阅读全文
posted @ 2018-10-06 13:28 LiGuanlin 阅读(150) 评论(0) 推荐(0)
摘要:题目背景 你跳过华尔兹吗?当音乐响起,当你随着旋律滑动舞步,是不是有一种漫步仙境的惬意? 众所周知,跳华尔兹时,最重要的是有好的音乐。但是很少有几个人知道,世界上最伟大的钢琴家一生都漂泊在大海上,他的名字叫丹尼·布德曼·T.D.·柠檬·1900,朋友们都叫他1900。 1900 在20 世纪的第一年 阅读全文
posted @ 2018-10-05 22:50 LiGuanlin 阅读(171) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1850 noip中比较难的期望dp。首先要求出两两最短路,由于300个点90000条边直接选用floyd; 然后就是dp了: dp[ i ][ j ][ 0/1 ]表示”第i天已经提出j次申请,其中第i天不换/换教 阅读全文
posted @ 2018-10-05 10:56 LiGuanlin 阅读(124) 评论(0) 推荐(0)
摘要:题目大意:给出n*m的矩阵以及r,c。求最小路径覆盖。 本来是匈牙利算法裸题,网络流也可以跑一跑。 但是我先粘一个骗分大错解: 这是我考试时写的(因为没好好听匈牙利算法和网络流),但是无脑骗了60? 放到某谷上面测70? 恕我直言在座的数据都很强 接下来是正解: 阅读全文
posted @ 2018-10-04 22:51 LiGuanlin 阅读(151) 评论(0) 推荐(0)
摘要:题目大意:有小a和小b,其中一个人到处乱走,每次走一步;另一个人抄近路逼近,每次1-2步。求期望路程。 整解:跑1000遍最短路/bfs,求两两距离,然后找从x逼近y第一步去哪,最后期望dp收场。 dp方程很简单,关键在于实现。 代码: 阅读全文
posted @ 2018-10-04 22:44 LiGuanlin 阅读(171) 评论(0) 推荐(0)
摘要:题目大意:给出n个‘1’,m个‘0’,求用这些组成的串中,满足“前k个字符中1数不小于0数”的串的个数。(对20100403取模) 同学互测题出了原题,当时蒙蔽。除了一眼看出的dp:dp[ i ][ j ] = dp[ i-1 ][ j ] + dp[ i ][ j-1 ]; 然后就是持续蒙蔽。。。 阅读全文
posted @ 2018-10-04 22:38 LiGuanlin 阅读(128) 评论(0) 推荐(0)
摘要:题目大意就不说了,反正水水就过了。 主要在于找01关系。 代码: 阅读全文
posted @ 2018-10-04 22:25 LiGuanlin 阅读(128) 评论(0) 推荐(0)
摘要:题目描述 策策同学特别喜欢逛公园。公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从1号点进去,从N号点出来。 策策喜欢新鲜的事物,它不希望有两天逛公园的路 阅读全文
posted @ 2018-10-04 22:23 LiGuanlin 阅读(173) 评论(0) 推荐(0)
摘要:题目大意:将n个数分解成若干组,如4 = 2+2, 7 = 2+2+3,保证所有组中数字之差<=1。 首先我们能想到找一个最小值x,然后从x+1到1枚举并check,找到了就输出。这是40分做法。 能不能优化?我们发现,若k合法,那么x%k==0或x%(k+1)==0或x%(k-1)==0。 所以枚 阅读全文
posted @ 2018-10-03 09:01 LiGuanlin 阅读(1155) 评论(1) 推荐(0)
摘要:题目大意:给出n个数的数列,其中保证1<=ai<=n,使其分成m份,使得每一段字符集大小相加最大,求最大值。 考场上跪了,回来一想发现是线段树维护dp: 原dp:dp[ i ][ j ] = max ( dp[ j ][ k-1 ] + num[ j+1 ][ i ]); 然后发现线段树可以维护,即 阅读全文
posted @ 2018-10-02 11:17 LiGuanlin 阅读(141) 评论(0) 推荐(0)
摘要:题目描述 小D 最近在网上发现了一款小游戏。游戏的规则如下: 游戏的目标是按照编号1→n1 \rightarrow n1→n 顺序杀掉nnn 条巨龙,每条巨龙拥有一个初始的生命值aia_iai​ 。同时每条巨龙拥有恢复能力,当其使用恢复能力时,它的生命值就会每次增加 pip_ipi​ ,直至生命值非 阅读全文
posted @ 2018-10-01 08:13 LiGuanlin 阅读(363) 评论(0) 推荐(0)