摘要: :again make_data.exe cppa.exe cppb.exe fc a.out b.out if not errorlevel 1 goto again pause 在txt环境下完成后改为.bat文件后把exe放入同一个文件夹即可使用。简单粗暴 阅读全文
posted @ 2021-07-12 21:10 lei_yu 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 首先考虑结论:u和 v 必须在同一个联通分量里面,然后从 u 沿任意路径走到 v ,设剩下的时间为t,若t 是当前联通分量中所有环的长度的 gcd 的倍数,那么答案是 1 ,否则是 0 。 对于其正确性:若存在满足条件的路径,必定是通过一条链,并路过几个环。由于边正反走的权值互为相反数,那么可以做到 阅读全文
posted @ 2021-07-12 21:06 lei_yu 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 我们可以发现这个题和树上差分差不多,只是我们在计算前缀和和差分的时候需要改一下更新方式。 用f[u][time] 去更新 f[father][time+1] 然后我们发现一个小问题,这条链的另外一半的时间是倒过来的,于是我们开两个前缀和数组一个存往前更新一个存往后更新就可以了。 那么我们需要注意的是 阅读全文
posted @ 2021-07-12 21:04 lei_yu 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 很有意思?的一个题目 考虑对于一个最小生成树,它的边权集合S一定是一个确定的集合,不会变化。正确性显然。那么不同的MST只能是 选出的作为最小生成树的一组相同权值的边 不同。 那么我们只需要先把权值更小的最小生成树边先链接起来,再暴力枚举这组边是什么。满足其构成最小生成树的条件即为每一条边都连接了两 阅读全文
posted @ 2021-07-12 21:03 lei_yu 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 非常有意思的一个题目 首先我们要发现对于一种跳棋的状态,只有三种改变这种状态的方式:对于三元组(X,Y,Z) O O O-- X Y Z X往右边移动:新三元组为(Y,2Y-X,Z) Y往左边移动,新三元组为(2X-Y,X,Z) Y往右边移动,新三元组为(X,2Y-Z,Y) 如果我们设两个相邻棋子之 阅读全文
posted @ 2021-07-12 21:01 lei_yu 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 图的遍历 太菜了完全不会啊点的染色 EASY 可以发现任意找一个点染成一种颜色就行了。至于方案数可以发现在确定一个点的染色方案下只能有一种染色情况。于是答案为2的连通分量的个数次方。 边的染色 离谱的题目。 欧拉路和欧拉回路 欧拉路需要图联通并有0或2个度数为奇数的点, 欧拉回路则需要图联通并没有度 阅读全文
posted @ 2021-07-12 20:58 lei_yu 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 最大矩形 考虑每一列矩形找到向左和向右扩展的最长距离。即左边最近哪一个比他小,右边最近哪一个比他小。于是维护一个单调递增的栈即可。这个元素加入栈时的下一个元素便是比他小的第一个,被某个元素弹出时便是这个元素的右边比他小的数被找到了(当前数比要加入的大) 很多面积问题可以用单调栈来解决。 最大01子矩 阅读全文
posted @ 2021-07-12 20:57 lei_yu 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 用s表示所有木条的总长度,用w表示墙的对边的长度。根据均值不等式,在w∈[0,s]的范围内,面积w(s-w)/2是关于 w 的单峰函数,且最值在 w = s时取得 这个题比较难。 两个极为重要的性质: 不论如何锯木头,矩形总有一条边是原木棍拼成的。 对于总长度为n的一堆木棍,使用一次锯木头的机会的条 阅读全文
posted @ 2021-07-12 20:54 lei_yu 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 用于优化dp,(时间复杂度花在转移上的),二次差分也可以解决一些问题,分开离线的区间加和以及询问可以通过他们解决。二维前缀和和差分可以解决任意矩形的修改和求和。 二维版本,前缀和求一个矩形方块的面积,差分解决二维区间加和。 等差区间 对于每一次加和,原区间的差分数组是一组相同的数字,对差分数组进行差 阅读全文
posted @ 2021-07-12 20:52 lei_yu 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 排序 (1)基数排序 从最小的优先级开始排序即可。有些题?可能会用 具体方法是第一遍开一堆桶统计某一关键字的数的数量,确定每个关键字在排序后位置从哪里开始。第二遍扫描直接放入相应位置即可。 (有点鸡肋不过还是可以了解) 基数排序2需要使用离谱到爆的位运算和卡常。 (2)快速排序 Sort 手写:每一 阅读全文
posted @ 2021-07-12 20:51 lei_yu 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 直接暴力搞树形DP是会爆的,时间复杂度在$O(n^2m)$左右,据说也可以通过某些方法把树形dp优化到$O(nm)$ 这里提供另外一种 离 奇 的方法: 首先考虑一棵树的情况,当某一个节点不选时,我们可以将其直接转移到同根的下一个子树,如果某一个节点选择时,那么就可以将其转移到它的所有儿子。 预处理 阅读全文
posted @ 2021-07-12 20:06 lei_yu 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 首先一看,我们可以发现a的范围太大,只能写高精度或者取模。 显然,如果我们有 $ f(x) \equiv0 (mod p)$ ,当p为一个大质数时,有很大可能$f(x)=0$,我们可以注意到这也算是一个哈希的思想。 写高精度肯定是会超时的,只有从取模数这个方向考虑。 一、暴力 显然,我们可以得到一种 阅读全文
posted @ 2021-07-12 18:42 lei_yu 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 淦,异或的性质必须要熟悉啊!!!不看题解就想不到,一看题解就啥都会了) 一个完美的性质:$a\oplus b\oplus b=a$ 于是,对于一个路径$d(x,y)$,必然有$d(x,y)=d(x,root)\oplus d(root,y)$,其中$d(x,y)$表示x到y路径的异或和 接着正解就呼 阅读全文
posted @ 2021-07-12 14:52 lei_yu 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 那就是最小表示法 最小表示法就是给你的一个可以循环的字符串,找到以某一个字符为开头时字符串的字典序最小。 例如cbad的最小表示法即为adcb 一、暴力 很简单的思想,以每一个字符为开头进行扫描,得到最小表示 具体地,我们可以设置两个指针$i,j$,用$i$表示当前最小表示的开头,$j$作为循环指针 阅读全文
posted @ 2021-07-12 09:18 lei_yu 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 这个有什么好看的啊,为什么你们都看这个 1.可行性剪枝。在不符合条件时立刻跳出。 (1)在进行组合型搜索时若后面的个数小于要选的个数直接跳了。 (2)金银岛3。在搜索到一个状态时可以考虑后面如果全部最优决策是否满足条件,若已经不满足直接返回。本题即判断全部选最贵的还能不能达到条件。 2.调整搜索顺序 阅读全文
posted @ 2021-07-12 08:45 lei_yu 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 冲浪 倒序考虑(消除后效性 最后一分钟可以选择的浪花中肯定选最大收益的,以此类推即可。 每分钟加入在当前时间消散的浪花即可。 可用堆优化。 注意开long long 1.最大乘积 通过手推来发现一个贪心策略。 把数字拆的尽量小更好,但是不能够拆出1 多余的拆出的数从最大的往后一个一个加上去。 2.最 阅读全文
posted @ 2021-07-12 08:43 lei_yu 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 首先依然观察到$N=16$,肯定是状压奶牛。 为了避免后效性,我们发现对于一个奶牛是否能在某个位置只和它前一个奶牛和后一个奶牛有关 因此我们可以设$f(i,state)$表示奶牛状态为$state$(1为在序列中0为不在),当前以后排好队的奶牛的最后一个为$i$的方案数 那么$f(i,state)= 阅读全文
posted @ 2021-07-12 08:26 lei_yu 阅读(21) 评论(0) 推荐(0) 编辑