lambda QAQ

fmap :: (q -> a) -> f q -> f a

Bzoj 4184 shallot

如果只有插入的话,直接维护线性基就好了但是现在有了删除,我们按时间分治,将操作建立成一个线段树。每一个数都有一个存活的区间,我们在线段树上更新这个区间。然后dfs线段树。线段树上每个节点维护的是到当这个节点的线性基。然后就可以免去删除操作了具体见代码#include<vector> #...

2016-11-24 10:35:13

阅读数:303

评论数:0

CodeForces 663E - Binary Table

给出一个n(n≤20)n(n \le 20)行m(m≤105)m(m\le 10^5)列的0101矩阵。每次操作可以将某一行取反或者将某一列取反。要求操作后的矩阵中的11的个数最少,求最小个数。因为行比较少,我们考虑状压。状压每一列的状态,stasta第ii位为11表示第ii行为11,为00表示第...

2016-11-18 20:20:22

阅读数:800

评论数:1

CodeForces Round 718D - Andrew and Chemistry

给出一个每个节点的度小于4的树,问有多少种增加叶子的方式(保持每个节点的度小于4)。增加之后的树同构的算一种第二个树哈希#include<bits/stdc++.h> using namespace std;#define LL long long const int maxn = ...

2016-11-16 11:33:43

阅读数:313

评论数:0

Bzoj 3875 骑士游戏

DP的本质是DAG上的最短路。但是如果不是DAG呢?那些常用的最短路算法,比如spfa或者是Dijkstra就可以了。感觉打开了新世界的大门。对于这个题来说,我们需要维护一个查分。具体的处理过程见代码#include<bits/stdc++.h> using namespace std...

2016-11-16 11:21:05

阅读数:244

评论数:0

Hdu 5732 Subway

给你两个同构的树,找出他们节点间的对应方式树哈希本质上就是一个树dp。考虑以树的唯一的一个节点(比如重心,直径中点)作为树根,然后用一个和子树顺序无关的方式去哈希就好了。具体见代码#include<bits/stdc++.h> using namespace std;const int...

2016-11-14 22:12:19

阅读数:171

评论数:0

Hdu 4804 Campus Design

有一个n×m(n≤100,m≤10)n\times m(n\le 100,m\le10)的棋盘,除了一些不能被覆盖的位置外其他的地方用1×21\times2和1×11\times1的骨牌填满,1×11\times1的骨牌使用次数在[C,D][C,D]之间。问满足条件的方案数(mod109+7)\p...

2016-11-04 16:19:36

阅读数:176

评论数:0

Codeforces 350E - Wrong Floyd

简单的构造,通过AA数组的元素个数我们可以确定可以构造出来的图的边的上界。然后判断即可。#include<bits/stdc++.h> using namespace std;const int maxn = 3123;bool vis[maxn];int getnod(int n){...

2016-11-02 12:20:37

阅读数:368

评论数:0

Codeforces 350D - Looking for Owls

给出一些圆和线段。定义一个“猫头鹰”是满足以下四个条件的一个线段和两个圆的集合。 两个圆半径相等 两个圆没有交点 两个圆关于线段对称 两个圆圆心的连线和线段有交点 圆的个数≤1500\le 1500,线段个数≤3×105\le 3 \times 10^5因为圆比较少,考虑枚举圆对统计符合条件的线段...

2016-11-02 12:15:20

阅读数:218

评论数:0

Codeforces 350C - Bombs

将炸弹按照离原点点的曼哈顿距离排序之后顺序处理即可。#include<bits/stdc++.h> using namespace std;const int maxn = 112345;vector<pair<int,pair<char,int> > &...

2016-11-02 12:10:54

阅读数:271

评论数:0

Codeforces 349E - Subset Sums

有n(n≤105)n(n\le 10^5)个数,有mm个下标的集合(集合的大小之和小于10510^5)维护两个操作询问操作:? k?\ k 将下标在第k个集合内数求和输出更新操作:+ k x+\ k\ x 将下标在第k个集合内的数都+x+x因为集合的大小之和小于10510 ^ 5,不妨记...

2016-11-02 12:01:59

阅读数:245

评论数:0

Codeforces 349D - Apple Tree

有一个有根树,每个叶子节点都有一定量的苹果(可能为0),非叶子节点上没有苹果。一个节点的重量定义为在以这个节点为根的子树内的节点的苹果个数和。对于一个节点称它是平衡的当且仅当这个节点的每个子节点的重量都相等。问最小需要拿走多少个苹果才能令所有节点都平衡。假设我们已经将一个子树拿成了平衡的,这个子树...

2016-11-02 11:32:06

阅读数:316

评论数:0

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