该文被密码保护。 阅读全文
摘要:
不用栈也不用map。 考虑预处理。 处理 a 数组,每次走到一个位置 i,往前搜索。 当前位置不等于 i 则通过这个位置继续往前查找。一直到当前位置等于 i,或者到达最前端则停止。 接下来进行第二次处理。 由于已经对 a 进行过预处理,在计算时只需要从有值的点分别往前统计即可。 阅读全文
摘要:
高二了还不会 FFT ? FastFourierTransform(FFT) 在 oi 中的主要作用是用来求“卷积”(多项式乘法)。 可将时间复杂度降为 O(nlog2n) 3步快速求出多项式乘积: 由系数表示法转换成点值表示法。 求两个多项式的乘积。 将点值表示法 阅读全文
摘要:
我们通常采用递归的方式实现树形dp。 对于每个节点,先递归在它的每个子节点上进行dp,在回溯时,从子节点向根节点进行状态转移。 顺序一般为从叶子结点到根节点递推。 以下是写的一些树形dp题目: 一. P1352 没有上司的舞会 以子树的根作为dp状态的第一维。容易发现,每个员工是否参加至于他的上司是 阅读全文
摘要:
"此刻发生的所有事,都是你过去选择的结果。" 最近打模拟赛在状压dp上总是没有一点思路。来重学一遍。 状态压缩:通过一串 01 码来清晰地表示一个集合的状态。同时,在确定了最低位的前提下,一串 01 码与一个二进制数一一对应。 其本质上是进行了两次操作: 给这个集合的每个状态一个编号。 通过这个编号 阅读全文
摘要:
好可恶一道题,怎么没人告诉我输出之间有空行( 思路是先抽象成图,然后跑一边dfs记录边的前后顺序。 对于不能成环的情况,只需要再开个数组记录度数判断奇点即可。 若存在奇点则break掉,剩下的跑dfs、 //produced by miya555 //stupid mistakes:1.多测要清空 阅读全文
摘要:
找点图论练习题写,发现hdu又寄了,那就发到blog里吧。 思路:tarjan缩点判断DAG中点数是否为1。若是,则该图为强连通图。 //produced by miya555 //stupid mistakes:多测记得清空 //ideas:tarjan模板 #include<bits/stdc+ 阅读全文
摘要:
8月集训学了权值线段树,当时没怎么加强训练。 国庆刚好开始有时间,巩固巩固。补上学习笔记。 首先介绍权值树。其本质是一个记录每个数出现次数的线段树,也就是由桶建成的树。 接下来介绍各种操作。 1.插入。 由于统计的是出现次数,从这个数往上依次加1即可。 void insert(int x,int l 阅读全文
摘要:
Part 1.图论 1.分层图最短路 P6100 [USACO19FEB] Painting the Barn G #include<bits/stdc++.h> using namespace std; const int N=1e5+5,M=205,K=1e5+5; int n,m=200,k, 阅读全文