摘要:
题目传送门 开始就想直接正向跑一遍Dij把到各点的最短路加起来即可,后来发现与样例少了些,于是再读题发现需要也求出学生们回来的最短路。 但是注意到本题是有向图,如果是无向图就好说。 那么我们怎么解决?可以建一个反图。于是本题就解决了== Code 1 #include<cstdio> 2 #incl 阅读全文
摘要:
第一次CF祭== 由于太菜了只做了前两题== 因为在第一题上耗费时间太多了,我还是太菜了==。 A. Benches time limit per test 1 second memory limit per test 256 megabytes A. Benches time limit per 阅读全文
摘要:
上午noi.ac崩崩崩了,栽在组合数学上,虽说最后在辰哥&Chemist的指导下A掉了此题,也发现自己组合数学太弱了qwq。 在luogu上找题,结果找到了一个第二类斯特林数的题(还是双倍经验,逃。) 一、什么是第二类Stirling数 第二类斯特林数 S(n,k):把 n 个元素划分成 k 个集合 阅读全文
摘要:
会一直慢慢写的... 一、一些技巧(位运算) 取出整数n在二进制表示下的第k位,检验是否为1 (n>>k)&1 求最后完备状态(假设都是1),有n个待枚举状态,结果是(1<<n)-1 要只取i这一位是1,其他都是0,那么(1<<(i-1)) 1<<n=2^n n<<1=2n 之前的状态(异或的使用) 阅读全文
摘要:
题目传送门 Hamilton路径的定义:从0(起点)到n-1(终点)不重不漏地经过每个点恰好一次。 由于数据范围非常小,考虑状压。如NOIP2017宝藏一题,把状态压缩设为n个点是否已到达的二进制数。1表示到达过,0表示没到达过。 设计状态$f[i][j]$表示当前状态为i,目前处于点j的最短路径。 阅读全文
摘要:
题目传送门 这个问题是来源于lydrainbowcat老师书上讲排序的一个扩展。当时讲的是奇数码问题,其实这种问题有两种问法:一种局面能否到另一种局面、到达目标局面的最小步数。 本文部分内容引用于lydrainbowcat《算法竞赛进阶指南》。 一、判定问题是否有解 我们可以由简至难看这样几个问题: 阅读全文
摘要:
题目传送门 开始看到本题完全认为就是个彻头彻尾的并查集,只要把实力相当的人都并到一个集合中,最后再找一共有多少联通块即可。 后来发现这是大错特错的qwq。因为选了一个集合中的某人,那这个集合中所有人就要都选。 理解题意并不透彻:这个集合中的所有人,要么都不选,要么都得选。其实到这里就可以看出,它其实 阅读全文
摘要:
题目传送门 政府审批的规则如下: (1)如果两个或以上城市申请修建同一条公路,则让它们共同修建; (2)如果三个或以上的城市申请修建的公路成环。如下图,A申请修建公路AB,B申请修建公路BC,C申请修建公路CA。则政府将否决其中最短的一条公路的修建申请; (3)其他情况的申请一律同意。 题目说了一大 阅读全文
摘要:
题目传送门 放在14年Day1T3的dp题目...应该比较看出来是dp算法吧,因为在本蒟蒻看来求最值的算法不清晰时就是dp了==。 状态还是比较好设计的,考虑到每个情况需要记录下的量:f[i][j]表示横坐标到达i,纵坐标到达j的最小点击次数。 转移的话,也不难想,当前有两种转移方法:不点,小鸟会掉 阅读全文
摘要:
一、基本算法 拓扑序列:对于一张有向图,求一个序列ai若对于每一条边(u,v),都满足au<=av ,则称这个序列为这张有向图的拓扑序列,一张图可能有多个拓扑序列。 求拓扑序列:找到入度为0的点,加入队列中,每次取出队列顶端的点加入拓扑序列的最后,将它到达的点的入度-1,然后再重复做,直到没有点的入 阅读全文
摘要:
Floyd大家可能第一时间想到的是他求多源最短路的n³算法。其实它还有另外两种算法的嘛qwq。写一发总结好了qwq。 一、多源最短路 放段代码跑,注意枚举顺序,用邻接矩阵存图。本质是一种动规。 复杂度O(n³)。 1 for(int k=1;k<=n;k++) 2 for(int i=1;i<=n; 阅读全文
摘要:
题目传送门 考虑dp,设f[i]表示到第i时间,能到达的最远距离。因为题目涉及了三种操作:1,补血消耗魔法值;2, 等待增加魔法值;3,直接向前走。而1,3和2,3的操作是可以同时进行没有冲突的,所以我们可以分开处理。 先预处理出使用魔法的情况,再跑一遍朴素走的情况即可。 Code 1 #inclu 阅读全文
摘要:
首先我们需要注意一下的是,差分比较适用于修改比较多而查询比较少的情况。 一、序列上差分 借教室 这是一道二分答案,在check函数中用到差分技巧的一道题,譬如说我们要把一个序列中[l,r]区间都加上一个权值,我们可以把在 l 处加上这个值,在r+1处减去这个值,再对记录权值的数组求前缀和,那么我们就 阅读全文
摘要:
果然我还是最菜的==不接受反驳== Day1 T1:神奇的幻方 思路:直接模拟即可,由于当前放法只与上一放法有关系,用两个变量记录一下即可。10分钟内切掉== 预计得分:100分 实际得分:100分 1 #include<cstdio> 2 #include<algorithm> 3 4 using 阅读全文
摘要:
题目传送门 首先这道题是在树上进行的,然后求最小的不方便程度,比较符合dp的性质,那么我们就可以搞一搞树形dp。 设计状态:f[i]表示以i作为聚集地的最小不方便程度。那么我们还需要各点间的距离,但是由于本题数据加强到1e5,开二维数组显然是不现实的,我们可以换一种思路,求d[i]表示其他所有奶牛到 阅读全文