Magic_Sheep的博客

博主实力平平,而且最近有点捞...... 不过自认为在慢慢成长

POJ 2411 Mondriaan's Dream 状态压缩DP

题目很好理解 就是有一些1X2的小矩形 问将其填充到 NxM的大矩形 一共有多少种方案。 比较明显的状压DP,最关键的是状态的选择。我们可以吧竖着的 1x2 矩形的上半部分 当作1 吧其他状况当作0 压缩状态 然后 我们只需要保证 每一行与前一行与状态为0 按位与的结果中不存在连续奇数个0 之后...

2019-07-12 16:55:51

阅读数 1

评论数 0

POJ 3171 Cleaning Shifts 线段树优化DP

题面大意: 有N个线段,每个线段可以覆盖一段区间T1-T2 花费为S,求选出几个线段使得其完全覆盖M 到E 这一区间 并要求花费最少。 复杂度要求 nlog(E)。 这道题数据比较水,不要求离散化。考虑DP f[T2] = min(f[x]) +c {T1-1<=x&l...

2019-07-12 16:41:29

阅读数 1

评论数 0

HihoCoder 1952 运算数

给出一棵2n-1个点的二叉树,所有节点从1到2n-1编号,根节点编号为1。每个非叶子节点都有两个孩子,共有n-1个非叶子节点和n个叶子节点。每一个非叶子节点被标记了+或者×。 给出n个正整数a1…an,这n个数被随机打乱填入了n个叶子节点中,一共有n!种填法。接着按照如下规则把数字填入非叶子节点i...

2019-04-18 15:35:30

阅读数 30

评论数 0

hihocoder 编程练习赛98 部分解题报告与题解

A - 推断上下级 HihoCoder - 1947 H公司包括CEO在内,一共有N名员工,编号1~N,其中CEO的编号是1。除了CEO之外,其他员工都有唯一一名直接上司,形成了一种树形的上下级关系。 现在小Hi知道H公司所有的上下级关系,一共M对。换句话说,只要两名员工A和B之间存在上下级关系(...

2019-04-17 18:57:18

阅读数 59

评论数 0

BZOJ 4551: [Tjoi2016&Heoi2016]树 并查集

这年的HEOI 是在数据有点水,据说一堆写BFS都100了。正解使用并查集反向维护,感觉是不是很难,毕竟DAY1 T1。 树链剖分接线段树是可做的,但是吧…代码量瞬间就上来了。 主体思想,把正向加点改为反向删点。 每个并查集的代表元素为被标记的点 ,集合存的是答案。删点时直接将并查集合并即可。 #...

2018-12-17 20:18:32

阅读数 25

评论数 0

BZOJ 1131: [POI2008]Sta 树形DP

题目本身并不难,POI的题真是又经典又好。 本题卡vector 不开快读的vector存图很容易被卡 本人就被卡了人傻自带大常数 题目本身要求在无根树中选一个节点作根,使形成的有根树所有结点深度和最大。 考虑到 对于相邻的两个结点 转移是O(1)的,假设结点u的答案是H[u],其子节点v从H[u]...

2018-12-17 20:07:20

阅读数 25

评论数 0

树链剖分讲解与应用 && BZOJ 1036 [ZJOI2008]树的统计Count

树链剖分算是一个应用比较广泛而且比较好实现的一种方法,其大体思想主要是把树链分成轻链和重链,这样既可以套用数据结构也可以求LCA。 首先定义 重儿子和轻儿子,对于一个非叶子节点,它的所有儿子中子树大小最大的即为重儿子,其余的为轻儿子。 我们可以用一次dfs来求出所有的重儿子,重儿子连成...

2018-12-16 12:42:01

阅读数 27

评论数 0

Dev c++ 5.11 调试方法入门 初学者适用

Dev c++ 虽然功能上和美观度上比不上 CodeBlocks 和 sublime,但这个IDE调试还是比较简单的,在OI 或 ACM 上 用到的可能性 还是有的。 许多人的Dev 有 一调试 就闪退 GDB 报 error 的情况 本人开始也遇到了 解决方案如下 打开编译选项 把产生调试信息打...

2018-12-09 22:21:54

阅读数 1770

评论数 3

Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) 划水题解

由于博主水平较低,只有A到E题的题解。 A 题面大意是,给出三条边长度,每分钟能够使其中一条边的长度加一。求最短多长时间能使三条边组成三角形。 题解: 考虑贪心,由于比较简单,就直接放代码了。 #include<cstdio> ...

2018-11-30 11:22:24

阅读数 20

评论数 0

BZOJ 1050 [HAOI2006]旅行comf

动点spfa,并不知道复杂度多少。#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<...

2017-04-20 09:58:57

阅读数 240

评论数 0

BZOJ 4129 Haruna’s Breakfast

同糖果公园,直接树分块套带修莫队即可。#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<vector> #include&...

2017-04-20 09:54:56

阅读数 256

评论数 0

BZOJ 2780 后缀自动机

由于是英文题,简要解释一下题目。开始给出n个子串,和m个询问,对于每个询问读入一个子串,询问n个子串中,有多少个子串包含所询问的子串。实在看不懂的可以从样例中意会一下。#include <cstdio> #include <iostream> #include <al...

2017-03-28 15:29:50

阅读数 285

评论数 0

BZOJ 3262 陌上花开 三维偏序 树状数组套Treap

一共三维,第一维排序,第二维树状数组,第三维Treap#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<queue> #i...

2017-03-28 15:23:33

阅读数 445

评论数 0

BZOJ 3172 [Tjoi2013]单词 后缀自动机

其实这显然是一道AC自动机裸题,这里补上后缀自动机做法。#include <bits/stdc++.h> using namespace std; #define maxn 1100000 int n,len; string s[500]; struct SAM { int a...

2017-03-28 15:18:45

阅读数 280

评论数 0

BZOJ 3166 [Heoi2013]Alo

明显可以用可持久化01Trie树来搞,Tire树可持久化方式同主席树。用set判断可行区间具体见代码。#include<cstdio> #include<iostream> #include<set> #include<algorithm> usin...

2017-03-25 21:20:33

阅读数 237

评论数 1

BZOJ 1797 [Ahoi2009]Mincut 最小割

最小割的必须边 一定在最小割中的边、扩大容量后能增大最大流的边,Poj3204: ① 满流;② 残余网络中S能到入点、出点能到T。 从S开始DFS、T开始反向DFS,标记到达的点,然后枚举满流边即可。最小割的可行边 被某一种最小割的方案包含的边,AHOI2009: ① 满流;② 删掉之后...

2017-03-25 21:14:09

阅读数 236

评论数 0

BZOJ 1822 [JSOI2010]Frozen Nova 冷冻波

很明显的一道最大流,利用计算几何判断是否被攻击的关系。二分时间以判断攻击次数,每次重新建图。#include<cstdio> #include<iostream> #include<cstring> #include<vector> #include...

2017-03-25 20:28:26

阅读数 302

评论数 0

BZOJ 3277&&3473 广义后缀自动机

两道题一模一样,不说什么了。对于所有串建立广义后缀自动机,用set维护每个状态出现在哪些串里,构建出parent树结构,进行一遍dfs 逆序启发式合并set即可。统计答案只要在自动机上跑一遍如果k#include<cstdio> #include<iostream> #in...

2017-03-21 11:53:20

阅读数 263

评论数 0

BZOJ 1180: [CROATIAN2009]OTOCI

动态树裸题,维护sum时注意一下splay和access的对象即可。还有 rev[x]^1。。。rev[x]^=1;#include<cstdio> #include<iostream> #include<algorithm> using namespace s...

2017-03-21 11:38:47

阅读数 224

评论数 0

BZOJ 3224 普通平衡树 Trie树

本文介绍一个简短好写的数据结构,01trie树,它可以支持普通平衡树所要求所有操作,而且简单易懂。代码是在网上看的,作者不详,希望原作者注明来源。对于每个数进行二进制拆分,把拆成的01串插进Trie树中。 由于负数的二进制处理比较麻烦,所以我们不如把其补成正整数,询问时再减去即可。 其余的见代...

2017-03-18 21:20:33

阅读数 413

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭