关闭
当前搜索:

[置顶] 最新动态

2017.12.26 UPD: 学习一些省选的算法: 数据结构:可持久化; 数学; 巩固noip提高组一些还不扎实的基础: 各种DP,主要刷cf; 主要oj: 练模板一般在poj、hdu这种; 偶尔刷bzoj; 另外codeforces等; 比赛: 各种比赛都刷,主要cf, arc, 51nod之类。...
阅读(137) 评论(0)

[置顶] 回忆录

来记录一点有些小辉煌的事情~ 2017.12.1 noip2017分数线划定。一等分数线360,我400。得了提高组一等奖。 2018.1.5 2018第一场cf。QAQ终于升紫名了。真·紫名。...
阅读(82) 评论(0)

[置顶] Hello world!

Hi,世界。简介:这里是来自zj的一名蒟蒻oier,喜欢乱写文章的妹子。比赛经历:初中三年noip,历尽艰辛,两年pj全没一等,初三参加了tg让我水到了一等。About me:我的id:atcoder, bzoj, hackerrank, vj上的是姓名全拼;别的大多是bestFy。共勉:作为一蒟蒻女孩,坚持下去很不容易,但是选择了,我从不后悔。我想说的是,千万不要被一些小失败打倒,千万不能选择放...
阅读(120) 评论(0)

Educational Codeforces Round 36

比赛链接 小号打了一场E round,被连hack两道= = A. Garden 题意: 给n个数和一个m,问n个数中能整除m的并且商最小的那个商是多少。 做法: 傻逼题。 代码: #include #include #include #include #include #include #include using namespace std; const...
阅读(7) 评论(0)

codeforces724G - Xor-matic Number of the Graph

题意: 一个无向图,边上有边权。定义一条路的价值为这条路径上边权的异或和,两个点之间的价值为它们所有路径不同价值的和,整个图的价值为所有点对价值的和。 求整个图的价值。 做法: 首先考虑对于树的做法: 记点i到根路径的异或和为f[i],则点对u,v路径的异或和就是f[u]^f[v]. n^2做法就直接枚举任意两点。 考虑“异或”的套路:由于每一位互不干扰,我们可以按位处理。 对...
阅读(11) 评论(0)

poj2774 Long Long Message

题面在这里 题意: 求两个长串的最长公共子串。 做法: 将两个串拼接起来,中间用一个没有出现过的字符连接。 于是两个字符串的最长公共子串就是这个长串两个后缀的lcp,其中这两个后缀的起点分别在两个串里。 所以跑这个长串的SA就可以了。 代码: /*************************************************************...
阅读(9) 评论(0)

poj1743 Musical Theme

题面在这里 题意: 求n个数相邻两数差组成的数列中,两段不重叠的最长相同子串。 做法: 首先二分一个答案x,然后将SA[]分组,每一个height[i]>=x连续区间的SA[i]都分为一组。 对于每一个连续区间,这个区间任意两个后缀的lcp都>=x,所以我们找到最大和最小的SA[i],看是否能符合条件即可。 代码最下面有一个博客链接,讲得挺详细,初学者可以看一看。 另外还有一...
阅读(27) 评论(0)

poj3691 DNA repair

题面在这里 题意: 给你N (1 ≤ N ≤ 50)个只由“A”,“G”,“C”,“T”四个字母组成的病毒串(len 给你一个文本串(len 做法: ac自动机+dp。 将病毒串建立ac自动机,题目要求的即是文本串不能经过任何ac自动机上的单词节点。 f[i][j]表示第i个节点,当前在文本串第j位,最少改变多少个字符。 枚举下一位是什么字母转移。 可以用记搜实现。...
阅读(13) 评论(0)

牛客练习赛10 C-最长回文

题面在这里 题意: 有两个长度均为n的字符串A和B。可以从A中选一个可以为空的子串A[l1..r1],B中选一个可以为空的子串B[l2..r2],满足r1=l2,然后把它们拼起来(A[l1..r1]+B[l2..r2]) 求这样得到的最长回文串长度。 做法: (ps.这题被scx大佬秒了%%%) 首先,一个串中找一个最长回文子串可以用SA来做,你把这个串正反拼接一下,然后枚举中...
阅读(49) 评论(0)

bzoj1050: [HAOI2006]旅行comf

题面在这里 题意: 给一个图,每条边有边权。 给一个s和t,如果s和t之间没有路径输出IMPOSSIBLE,否则输出路径上最大边和最小边的比值的最小值。 做法: 你把边从小到大排序。那么对于一个最小值x,我们从x开始从小到大加边,并查集维护,直到s和t联通,那条最后一条边权比上x就是这个答案。 于是我们暴力枚举最小边是什么,每次更新答案即可。 代码: /**********...
阅读(11) 评论(0)

hdu2896 病毒侵袭

题面在这里 题意: 给n个模式串和m个文本串,问有几个文本串包含任意一个模式串,并且输出每个包含任意模式串的文本串,包含的是哪几个模式串。 做法: ac自动机模板。 整天模板题做做还有什么希望(大雾)模板居然调了一个小时 代码: /************************************************************* Probl...
阅读(18) 评论(0)

SPOJ - SUBST1 New Distinct Substrings

题面在这里 题意: 给一个字符串,统计字符串中不重复的子串个数。 做法: 后缀数组模板题。 观察到每一个子串都是一个后缀的前缀,重复的前缀就是sigma(h[i]),第i小的和第i-1小的后缀的lcp。 于是我们把ans减去sigma(h[i])就好了。 代码: #include #include #include #include #include #includ...
阅读(28) 评论(0)

uva11468 Substring

题面在这里 题意: 给一些模式串。 再给n个字符和它们出现的概率,问用这些字符随机构造一个长为L的字符串,不包含任意一个模式串的概率是多少。 做法: 用模式串建ac自动机。 然后问题相当于从字典树的根开始跑,不经过任意一个单词结尾的节点跑L步的概率。 我们把单词结尾的节点打标记。假如一个点对应的fail节点也打了标记,它也要打上标记,因为以这个节点为结尾的后缀在模式串中出现过...
阅读(82) 评论(0)

luogu3377【模板】左偏树(可并堆)

题面在这里 题意: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆内,则无视此操作) 操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若第x个数已经被删除,则输出-1并无视删除操作) 做法: 左偏树模板。 代码: /***************************************...
阅读(30) 评论(0)

uva10679 I Love Strings!!

题面在这里 题意: 给你一个文本串和若干模式串,问每个模式串是否在文本串中出现过。 做法: AC自动机模板题。对于重复的串的处理,可以在每个节点处挂一个链表记录模式串的编号。 代码: #include #include #include #include #include #include #include #include using namespace std;...
阅读(20) 评论(0)

bzoj3083: 遥远的国度

题面在这里 题意: 给一棵树,每个点上有点权。 三种操作: 1.换根 2.链覆盖 3.以当前的根查询某子树内的最小值 做法: 当然不用真的去换根= = 可以直接令任意一点为根,比如1。 发现一条链是不会发生改变的,于是链覆盖操作可以直接树剖+线段树修改。 对于查询操作,我们分类讨论。 1.假如当前根和x相同,就直接取整棵树的最小值。 2.假如当前根在x的子树(以1...
阅读(32) 评论(0)

codeforces3B - Lorry

题面在这里 题意: 有一些物品,体积为1或2,每个物品有一个价值。 现在总共只能放体积为m的物品,问最大的价值。 做法: 显然是贪心。 先说两个正常一点的策略。 1.你先能取多少2就取多少2,然后再把一些价值大一些的1两个一组和2换。 2.直接枚举取多少个2计算一下。 然后来说我的策略QAQ。 首先按照单位价值排序,即你把体积为1的价值×2,然后按照新的价值排序。 然...
阅读(22) 评论(0)

bzoj1833: [ZJOI2010]count 数字计数

题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 做法: 显然是数位DP,我来写个dfs题解吧 首先区间[a,b]内的数量可转化为[1,b]-[1,a-1]。考虑求一个数码出现的次数,比如1出现的次数。我们首先想爆搜怎么写,然后加一个记忆化即可。 对于一个长度为len的数,从高位到低位枚举它每一位上的数字,然后计算1出现的次数。哪些东西要...
阅读(21) 评论(0)

bzoj4012: [HNOI2015]开店

题面在这里 题意: 给一棵树,每个点上有点权,边上有边权。 每次询问一个u,l,r,输出点权在[l,r]范围内的点到u的距离和。 强制在线。 做法: 考虑一棵树上所有点到一个点的距离和怎么求。 不难发现应该等于所有点的深度和+点数×u的深度-2×所有点与u的lca的深度和。 于是问题就在于求所有点与u的lca的深度和。 对于这个问题,我们可以先把每个点到根的路径都打标记,...
阅读(28) 评论(0)

bzoj3123: [Sdoi2013]森林

题面在这里 题意: 给一个森林,森林有n个节点m条边。 现在有两种操作: 1.Q x y k 表示询问x-y这条链上点权的第k小。保证x,y在同一个连通块里。 2.L x y 表示链接x,y两点。保证x,y在不同的连通块里。 要求强制在线,last表示上一次的答案,每次x,y,k都要异或last.初始为0. 做法: 权值第k小想到主席树。(发现和上一题基本一样除了连接两个点...
阅读(27) 评论(0)

loj#6208. 树上询问

题面在这里 题意: 给一棵树,三种操作: 1.add(x,d),给x到根路径上的点的ki += d 2.mul(x,d),给x到根路径上的点的ti += ki*d 3.询问一个点的ti值 做法: 树链剖分以后就变成一道线段树好题了qaq 我们考虑在线段树里维护一个tag(a,b,c),ti值即为a*b+c。 这里的a相当于ki。 对于2操作,我们直接b+=d就可以。...
阅读(29) 评论(0)

hdu5381 The sum of gcd

题面在这里 题意: 给一个序列,然后m次询问。 每次询问一个区间[l,r]中所有子区间的gcd之和。 做法: 这个题是nowcoder的比赛题,Wannafly挑战赛7的E。 (然后被人找到了原题qaq。。 (一开始不会,从某个大佬口中一点点套出来的= =(果然大佬讲题都讲得飞快啊… 我们考虑把询问离线。 对于每一个右端点,维护它左端点的答案。 于是我们从左往右枚举i,...
阅读(42) 评论(0)

bzoj1012: [JSOI2008]最大数maxnumber

题面在这里 题意: 给一个初始为空的序列,两种操作 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加 上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取 模,将所得答案插入到数列的末尾。 做法: 裸...
阅读(33) 评论(0)
110条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:4388次
    • 积分:1194
    • 等级:
    • 排名:千里之外
    • 原创:110篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    博客专栏
    友链
    文章存档
    最新评论