- 博客(12)
- 收藏
- 关注
原创 [Tyvj1655] 游乐园 二分查找
Problem题意:有n(<=1e10)个人,每个人会坐当前空闲的,编号最小的飞机(<=1000),对于第i个飞机,任意人的乘坐时间为si。Analisisn的数量很惊人,不能模拟,所以第一次我考虑从m下手,又怎么做呢? Dp ? 贪心 ? 似乎无从下手。 正解: 可以发现坐飞机的时间是有规律的,那么这就意味着如果确定了时间,可以在O(m)的时间内求出有多少人坐了飞机。那么就二分找到最后一个人上
2017-08-23 22:52:13
375
原创 [BJOI]2010 严格次小生成树
题意:给出一个无向图,求其严格最小生成树(废话) n <= 100000 分析: 一般的做法:在MST上断一条边,再次求MST,取最小的值,最快的速度应该是堆优化Prim算法 O(n^2 log2n),但是在本题中显然会TLE 题目很裸,只能直接看这个模型。 次小的生成树,一定是MST上加了某一条边,形成了一个环,接着再删去某一条边得来的。加的边肯定没有特殊的决策,只好枚举,但是删去的边有玄
2017-08-23 22:42:42
390
原创 [bzoj2239] 猜谜 迭代深搜 or 动态规划
搜索:迭代深搜即可 dp: +和*是两个不同的状态,如果一边考虑加,一边考虑乘,实在麻烦。 不如分开进行考虑。includeincludeincludeusing namespace std;int T , n , Max_dep; int num[25][25]; bool have_ans , have_zero[25] ; string str;void Dfs(int x , i
2017-08-16 22:46:10
390
原创 [BZOJ2157] 旅游 树链剖分
模板题,没什么好说的#include<vector>#include<cstdio>#include<cstring>#include<climits>#include<iostream>#include<algorithm>using namespace std;const int Lim = 150005;int n , m;vector<int> edge[Lim];str
2017-08-16 22:43:22
292
原创 [CEOI2011] balloons 单调栈
靠图分析:对当前圆扩张大小有影响的圆不止一个,是一个序列,而且这个序列满足x递增,r递减。 x的递增是自然的(否则就排序)r用一种数据结构来维护就可以了 但是,难道每次要遍历整个栈? 不难发现(直觉吧)圆怎么膨胀也不会与比他大的那个圆的后一个圆相切,那么靠这个性质来维护单调栈就可以了,严格证明略过吧,应该都会写。 好像还可以用斜率优化来做,维护一个下凸壳之类的双端队列也可以。#include
2017-08-16 22:40:44
554
原创 [bzoj4300] 绝世好题 动态规划
同O(n log2n)Lis的思想,保存更新二进制每一位的可进行更新的最大值/************************************************************** Problem: 4300 User: Gobegobe Language: C++ Result: Accepted Time:188 ms Mem
2017-08-16 22:34:06
358
原创 [HAOI2011][BZOJ2302] problem C 组合数+动态规划
不难发现(其实还是有点)问题的本质是: 一个序列使编号<=i的元素至少有i个的组合数。 可以用位置为阶段,人数为状态,枚举当前阶段的子人数进行转移/************************************************************** Problem: 2302 User: Gobegobe Language: C++ Res
2017-08-16 22:31:52
233
转载 一篇很棒的可持久化线段树(主席树)的引入
可持久化线段树 201505121、前言 线段树,众所周知,在树中的每一个元素中,保存的是线段中的一段,所维护的内容或是最大最小值,或是和等等。可持久化线段树,属于可持久化数据结构中的一种,对于可持久化数据结构这个大知识,我暂时没有去研究,今天只讲其冰山一角。2、概念 先讲”可持久化“的含义
2017-08-13 20:08:04
308
原创 【HAOI2015】T1树形Dp
题意:一棵树,在里面选出k个黑点,剩下的点是白点,使白点之间两两距离之和和黑点之间两两距离之和的和最大 分析:还是图样..一开始想到了点分治,可是树的分治一般处理的是关于树的路径的问题。 后来发现这道题的k明显是一种“资源”,又想到用树上的背包来搞,可是没做出,一直在想两两之间的距离怎么转移… :( 状态显然,F[i][j]为以i为根的子树,选出j个黑点的最大值,考虑这玩意儿是否能转移 如果
2017-08-11 08:10:35
321
原创 【HAOI2015】T2 树状数组
题意:维护一棵树,要求可以支持1:单点权值加,2:以某点为根的子树中的所有点权值加,3:询问某点到根路径上的点权和 分析: 法1:树链剖分,以后来补吧… 法2:线段树 , 与下面的大相径庭 法3:树状数组维护欧拉序列。 差分的思想与Dfs序结合,i点在Dfs序中的位置(进出等价)的前缀和就是i到根的权值和。 对于第一个操作,在In[i]加,Out[i]+1减即可。 第二个操作怎么办呢,
2017-08-11 08:07:46
256
转载 【bzoj3173】[Tjoi2013]最长上升子序列 Treap
原文链接:http://www.cnblogs.com/GXZlegend/p/6856502.html作者:GXZlegend题目描述给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少?输入第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第
2017-08-10 20:34:50
288
原创 【HNOI2015】菜肴制作 :思想 + 拓扑排序
题意:求一个拓扑序列,保证以1~n的优先级,每个数尽量排在前面分析:显然求字典序最小的拓扑序有问题,字典序列由每个位置的数字决定,可是这里有一个1~n的优先级,就是说尽量要保证1在前,以此类推。如果说一个元素,图中不存在“与它深度相同”的元素的话,那么它在拓扑序列中的位置一定是固定的,那么我们考虑两个深度相同的元素a,b(编号a前面的一句话:字典序列由每个位置的数字决定,这样导致了
2017-08-10 18:53:32
329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人