lambda QAQ

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

排序:
默认
按更新时间
按访问量

Codeforces Round 761F - Dasha and Photos

给出一个n×mn\times m 的只包含小写字母的矩阵AA。有kk次独立的操作,每次把原矩阵的某个子矩阵用一个字母覆盖得到一个矩阵AxAx(称之为特殊矩阵)。定义AxAx和AyAy的距离dis(Ax,Ay)=∑1≤i≤n,1≤j≤m|Axi,j−Ayi,j|dis(Ax,Ay) = \sum\l...

2017-02-03 14:00:11

阅读数:372

评论数:0

Bzoj 2049 Cave 洞穴勘测

加边删边维护联通性因为保证中间过程都是一个树,所以可以LCT来做其实也可以按时间分治维护一个可撤销并查集我写的是后者具体见代码#include<bits/stdc++.h> using namespace std;const int maxn = 3123; int arr[maxn]...

2016-12-06 17:10:25

阅读数:278

评论数:1

Hdu 5967 小R与手机

LCT模板题如果某一次加边会成环,我们可以保证这个点一定是某一个根,在根上记录一下后继每一次切断某条边的之后同时查询根的是否有后继,后继是否可以连接具体见代码#include<bits/stdc++.h> using namespace std;const int maxn = 212...

2016-12-04 11:06:22

阅读数:637

评论数:0

Bzoj 2002 弹飞绵羊

学会LCT很久了,今天才会写LCT因为我使用数组而不是指针来保存节点,干脆利用起了根节点的fa这个空间来保存虚边具体的,如果fa为正数,则为splay中的边。如果是0,没有父节点。如果是负数,取反之后表示虚边所指向的父亲。具体见代码#include<bits/stdc++.h> usi...

2016-12-02 16:36:19

阅读数:222

评论数:0

Bzoj 3875 骑士游戏

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

2016-11-16 11:21:05

阅读数:217

评论数:0

Bzoj 4184 shallot

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

2016-11-24 10:35:13

阅读数:257

评论数: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

阅读数:660

评论数:0

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

阅读数:221

评论数:0

Hdu 5732 Subway

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

2016-11-14 22:12:19

阅读数:148

评论数: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

阅读数:157

评论数:0

Hdu 4416 Good Article Good sentence

给出一个的字符串A,|A|≤100,000A,|A| \le 100,000,nn个字符串,分别为Bi,∑i=1n|Bi|≤100,000B_i,\sum\limits_{i=1}^n|B_i| \le 100,000,求AA中没有在任何一个BiB_i中出现的字串的个数。对AA建立SAMSAM,将...

2016-10-25 22:05:24

阅读数:110

评论数: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

阅读数:310

评论数:0

Codeforces 350D - Looking for Owls

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

2016-11-02 12:15:20

阅读数:197

评论数: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

阅读数:252

评论数: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

阅读数:219

评论数:0

Codeforces 349D - Apple Tree

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

2016-11-02 11:32:06

阅读数:268

评论数:0

Codeforces 349C - Mafia

Codeforces 349C - Mafia有nn个小朋友玩游戏。每一次游戏都必须有一个小朋友坐庄,其他的人作为playerplayer参加。对于小朋友ii,他希望至少有aia_i次游戏作为playerplayer参加,问至少需要多少次游戏才能满足所有小朋友的条件。二分游戏的次数,计算每个小朋友...

2016-10-31 13:45:35

阅读数:250

评论数:0

Codeforces 347E - Number Transformation II

给出nn个数字xix_i,两个整数AA,BB(A−B≤106)(A-B \le 10^6)每一步可以做两个操作其中一个1 将AA变成A−1A-12 将AA变成 A−A(modx1)A - A \pmod{x_1}问将AA变成BB的最小步数。每次贪心的找到能减到的最小的大于等于BB的AA即可。如果一...

2016-10-31 13:44:13

阅读数:338

评论数:0

Codeforces 347D - Lucky Common Subsequence

给出两个长100100的字符串aa,bb。再额外给出一个长100100的字符串 virusvirus。询问aa和bb最长的没有字串是virusvirus的公共子序列。输出这个子序列。在经典的LCSLCS的dpdp解法上再加一维,记录当前的最长公共子序列匹配virusvirus的长度。第三维转移可以...

2016-10-31 13:39:36

阅读数:226

评论数:0

Codeforces 347C - Alice and Bob

每一回合挑选集合中的两个数x,yx,y, 满足|x−y||x-y|不在集合中,然后把|x−y||x-y|加到集合里。给出集合最初的nn个数问是否先手必胜。游戏结束的时候最小的数就是这nn个数的gcdgcd,最大的数就是一开始给出的集合的最大的数。游戏结束的时候的集合的大小就是结束时最大的数最小的数...

2016-10-31 13:37:24

阅读数:214

评论数:0

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