CE玩家

人生最大的快乐,就是做别人说你做不到的事。

[主席树维护HASH] Codechef. Cloning

传送门直接用主席树维护HASH比较就可以了吧…#include <cstdio> #include <algorithm> #include <iostream>using namespace std;typedef unsigned long long ll;...

2017-08-29 11:23:51

阅读数:181

评论数:0

[主席树维护HASH && SET维护DFS序] Codechef. Walks on the binary tree

传送门每次加一个串 x 会增加 n-max{LCP(x,i)},因为是树上,max{LCP(x,i)}就肯定是dfs序中跟它相邻的点,也就是它们的lca深度最深。 那么就用set维护一下dfs序,比较的话,用主席树维护hash#include <cstdio> #include &l...

2017-08-29 11:22:11

阅读数:216

评论数:0

[最短路 && 主席树维护HASH]Codeforces 464E. The Classic Problem

传送门 老套路 跟51nod1863一样。 就是多了进位#include <cstdio> #include <iostream> #include <algorithm> #include <set> #include <cstring...

2017-08-29 11:16:46

阅读数:176

评论数:0

[最短路 && 主席树维护HASH] 51nod1863 Travel

把一条路径上的点值按排名顺序排序,那么路径的优劣就是字典序。相当于是求一条字典序最大的路径。 最长路然后就是老套路,用主席树来维护hash,就可以在O(log)的时间里比较两个串的字典序,然后就套最短路就可以了用对优化的DIJ复杂度就是O((N+M)lognlogn)O((N+M)\log n\l...

2017-08-29 11:13:14

阅读数:320

评论数:0

[字符串HASH && 阈值]Codeforces 741E.Arpa’s abnormal DNA and Mehrdad’s deep interest

传送门 这题写的心态都崩了…被卡常被卡HASH首先可以把每个位置插入T后的字典序排序出来。 发现两个不同的位置i,j中插入T,两个字符串有一段前缀一段后缀是相同的,中间可以按T的端点分成3部分,只要比较这3部分的字典序就可以了。我被卡常就是因为用了字符串hash来比较字典序…那么写一个比较函数...

2017-08-28 13:21:55

阅读数:196

评论数:0

[树上启发式合并 && 哈希] Codeforces 741D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

日常VP翻车学一发树上启发式合并,%%%gjghfd 树上启发式合并可以截这里每次递归做轻儿子,做完后清空轻儿子信息(注意是做完一个轻儿子后发现清空这个),然后做重儿子,再dfs所有轻儿子并跟新当前点的答案,然后把轻儿子信息加进去……说起来很绕,其实挺好理解的… 每个节点的哈希值就是它到根路径...

2017-08-27 20:43:21

阅读数:284

评论数:0

[DP] Codeforces 840C .On the Bench

%%%Vectorxj#include <cstdio> #include <iostream> #include <algorithm> #include <map> #include <vector>using namespace s...

2017-08-22 19:06:09

阅读数:409

评论数:0

[前缀和 乱搞]BZOJ4972 .小Q的方格纸

发现询问是个等腰直角三角形,那么我们对于每条斜线作为斜边的等腰直角三角形,斜线上处理一下前缀和就可以了#include <cstdio> #include <iostream> #include <algorithm> #include <vector&g...

2017-08-21 18:52:36

阅读数:515

评论数:0

[主席树] Codeforces 840D .Destiny

%%%Vectorxj 设答案为p=r−l+1kp={r-l+1\over k },如果把区间元素排序,那么答案一定是第p个、第2p个…第kp个元素中的一个。 因为答案出现次数大于p,一定会跨越一个边界,所以以上结论成立 那么就在主席树上二分出这些数,找出最小的满足条件的就可以了#inclu...

2017-08-20 17:18:33

阅读数:820

评论数:0

[DP] Codechef .Chef And Fibonacci Array

chuansongmen 首先有一个O(m5)O(m^5)的DP,其中m为变换后可取到的最大值。然后猜猜猜发现每个数,最多加前两个数中的最小值,那么就猜不存在一种变换,使其中一个数大于100,写完DP后assert了一下,发现RE了…那么就猜不大于150,就过了… 转移的时候去掉无效的转移常数...

2017-08-18 21:11:15

阅读数:249

评论数:0

[猜结论][乱搞][博弈]Codechef . Palindromic Game

传送门猜猜结论就很水了… 如果A的字符串中不存在B的字符串中没有的字符,那么B肯定赢 如果A的字符串中存在B中没有的,且个数大于等于2,那么A赢 A放一个B中没有的,如果B中没有A中不存在的字符,那么A赢 否则的话,要不B赢,要不构不成回文串,后者也算B赢#include <cstd...

2017-08-18 21:03:37

阅读数:170

评论数:0

[计数 补集转换][阈值] Codechef SEAARC.Sereja and Arcs

传送门 %%%度神 很强的计数题 题目就是求形如ABAB的个数,发现这个很难求,补集转换一下,答案就是总数减去AABB和ABBA的个数 求总数很简单,就是∏i=1n(ai2)\prod_{i=1}^n{a_i\choose 2}aia_i是第i中颜色个数 AABB的个数可以枚举p,然后用...

2017-08-15 15:45:22

阅读数:281

评论数:0

[插头DP] poj3133 Manhattan Wiring

还是一道插头DP 不过我的代码跑的好慢啊啊,要卡卡常才能过#include <cstdio> #include <iostream> #include <algorithm> #include <string> #include <cstri...

2017-08-10 16:18:01

阅读数:195

评论数:0

[插头DP] BZOJ2331 && SCOI2011 地板

插头DP裸题#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <string>using namespace st...

2017-08-10 16:16:14

阅读数:196

评论数:0

[容斥][排列组合] BZOJ4710 && Jsoi2011.分特产

把M个物品分给N个人的方案数,可以用插板法得到,为(M+N−1N−1)M+N-1\choose N-1 不考虑每个人至少分到一个,这些特产的总方案数为∏(Ai+N−1N−1)\prod {A_i+N-1\choose N-1} 发现每个人至少分到一个这个限制很麻烦,反过来的话就比较好做,容斥就...

2017-08-10 16:14:44

阅读数:172

评论数:0

[DP] Codeforces 55D. Coloring Brackets

传送门 考虑合法括号序列的定义。 如果A合法,那么(A)合法 如果A,B合法,那么AB合法 这样的话我们可以每次找一对匹配的括号,括号内的序列递归做就行了。#include <cstdio> #include <iostream> #include <algorit...

2017-08-05 00:13:08

阅读数:118

评论数:0

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