摘要: bzoj2435[Noi2011]道路修建 题意: 给个n点树,每条边的费用为这条边两端的节点数的差值*这条边的长度,求这个数的总费用。 题解: 水题,dfs求出节点的子树大小sz,对于每一条边,费用为深度大的sz值与n-sz相减的绝对值乘边的长度。 代码: 20160611 阅读全文
posted @ 2016-08-16 23:08 YuanZiming 阅读(190) 评论(0) 推荐(0) 编辑
摘要: bzoj4551[Tjoi2016&Heoi2016]树 题意: 给个根节点为1的n点树,初始时节点1标记,Q个操作,每次可以标记一个点或求一个点最近一个标记了的祖先。 题解: 链剖可以写,当正解应该是并查集。离线读入所有操作,累加每个节点的标记次数,之后所有未被标记的节点向其父亲节点连边,然后倒着 阅读全文
posted @ 2016-08-16 23:06 YuanZiming 阅读(180) 评论(0) 推荐(0) 编辑
摘要: bzoj1821[JSOI2010]Group 部落划分 Group 题意: n个野人,分为k个部落,两个部落之间距离定义为两个部落最近两个野人的距离,要求划分时最近的部落最远。求这种划分下部落间最近距离。n,k≤1000,野人坐标≤10000是整数。 题解: 每次将两个部落连接,则这两个部落之间的 阅读全文
posted @ 2016-08-16 23:04 YuanZiming 阅读(344) 评论(0) 推荐(0) 编辑
摘要: bzoj2761[JLOI2011]不重复数字 题意: 给出N个数,要求把其中重复的去掉,只保留第一次出现的数。n≤50000 题解: 一道令管理员都后悔加入的水题,按大小排序后unique,再按读入顺序排序即可。 代码: 20160610 阅读全文
posted @ 2016-08-16 23:02 YuanZiming 阅读(199) 评论(0) 推荐(0) 编辑
摘要: bzoj3622已经没有什么好害怕的了 题意: 给n个数Ai,n个数Bi,将Ai中的数与Bi中的数配对,求配对Ai比Bi大的比Bi比Ai大的恰好有k组的方案数。n,k≤2000 题解: 蒟蒻太弱了只能引用神犇题解 “ 我们将两个读入的数组排序,令 next[i] 表示最大的 j 满足 A[i]>B[ 阅读全文
posted @ 2016-08-16 23:00 YuanZiming 阅读(310) 评论(0) 推荐(0) 编辑
摘要: bzoj3631[JLOI2014]松鼠的新家 题意: 给个n点树,再给个节点的游览顺序,每经过一个节点(包括上一个游览的点到下一个游览的点路径上的点)就可以从这个节点拿走一个糖,问所有节点一开始要放几个糖。最后到达的节点不用糖。n≤300000 题解: 链剖将树链排成一列,然后用数组区间加的方式( 阅读全文
posted @ 2016-08-16 22:57 YuanZiming 阅读(412) 评论(0) 推荐(0) 编辑
摘要: bzoj3621我想那还真是令人高兴啊 题意: T组数据,每组给出两个三角形各点坐标,要求求出一个点使第一个三角形可以绕这个点放缩和旋转得到另一个三角形。T≤10,坐标为≤10000的实数,数据保证三角形不用平移,答案保留三位小数。 题解: 复数既是一种数,又可以当做一种独特的二维向量,因为其数的特 阅读全文
posted @ 2016-08-16 22:55 YuanZiming 阅读(247) 评论(0) 推荐(0) 编辑
摘要: bzoj3620似乎在梦中见过的样子 题意: 给出一个字符串,要求求出形如A+B+A的子串数量,且lenA≥k,lenB≥1。字符串长度≤15000,k≤100,所以字符长度为小写字母。 题解: 第一次写kmp的题QAQ~这题利用的是fail函数的性质:若字符串s在位置x的fail函数f[x]不为0 阅读全文
posted @ 2016-08-16 22:52 YuanZiming 阅读(665) 评论(0) 推荐(0) 编辑
摘要: bzoj4195[Noi2015]程序自动分析 题意: t组数据,每组n个给出两个变量是相等还是不等的约束条件,要求判断是否能满足。n≤1000000,变量数量≤109 题解: 先离散化,然后只处理相等条件用并查集维护“相等集合”,接着对每个不相等条件判断是否在一个集合,是的话则说明不满足。 代码: 阅读全文
posted @ 2016-08-16 22:50 YuanZiming 阅读(153) 评论(0) 推荐(0) 编辑
摘要: bzoj2733[HNOI2012]永无乡 题意: n个节点,每个节点有个权值,初始时有m次连通两点的操作,接下来有q次操作,每次可以连通两个点或求某个点所在连通块权值第k小的节点编号。n,m≤100000,q≤300000 题解: treap启发式合并,就是暴力将小的树拆了插到大的树里,均摊复杂度 阅读全文
posted @ 2016-08-16 22:48 YuanZiming 阅读(178) 评论(0) 推荐(0) 编辑
摘要: bzoj1103[POI2007]大都市meg 题意: 一个n点树,根节点为1,初始时全部边为土路,共n-m+1次操作,每次可将一条边改为公路或求根节点到某个节点要几个多少土路。n,m≤250000 题解: 先求出DFS序,进入节点在时间点的权值为1,离开节点在时间点的权值为-1,如果把公路转成土路 阅读全文
posted @ 2016-08-16 22:47 YuanZiming 阅读(176) 评论(0) 推荐(1) 编辑
摘要: bzoj1066[SCOI2007]蜥蜴 题意: r行c列网格图上有一些高低不平的柱子,一些柱子上有蜥蜴,一只蜥蜴一次能跳距离为d,每次蜥蜴跳跃时出发柱子高度减一,当柱子高度为0时消失,问最少多少蜥蜴不能跳出网格图。r,c≤20,d≤4 题解: 裸最大流,每个柱子拆成X,Y两点,两点之间连柱子的高度 阅读全文
posted @ 2016-08-16 22:44 YuanZiming 阅读(287) 评论(0) 推荐(0) 编辑
摘要: bzoj3048[Usaco2013 Jan]Cow Lineup 题意: 给你一个序列,你最多可以删去k类数(数列中相同的数字被称为一类数)。求通过删数得到的该序列中的最长完美序列(满足所有的数字相等的连续子序列被叫做完美序列)。序列大小≤100000 题解: 先离散化,然后维护一个单调队列,如果 阅读全文
posted @ 2016-08-16 22:35 YuanZiming 阅读(256) 评论(0) 推荐(0) 编辑
摘要: bzoj1112[POI2008]砖块Klo 题意: N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:丢掉某柱砖的一块砖。给某柱加上一块砖,现在希望用最小次数的动作完成任务。N≤100000 题解: 设一个区间长度为k,其中位数为a,比a小的元素个数为b,和为c;比a大的元素个数 阅读全文
posted @ 2016-08-16 22:30 YuanZiming 阅读(153) 评论(0) 推荐(0) 编辑
摘要: bzoj4517[Sdoi2016]排列计数 题意: 求有多少种长度为n的序列 A,满足1~n在序列中各出现了一次,且序列恰好有m个数是稳定的(若第i个数A[i]的值为i,则称i是稳定的)。共T组数据,方案数模10^9+7。T=500000,n≤1000000,m≤1000000。 题解: 显然结果 阅读全文
posted @ 2016-08-16 22:18 YuanZiming 阅读(230) 评论(0) 推荐(0) 编辑
摘要: bzoj4236JOIOJI 题意: 给一个只由JOI三个字母组成的串,求最长的一个子串使其中JOI三个字母出现次数相等。串长度≤200000 题解: 有点像bzoj4384,因此推算的过程是差不多的,但还是有不同因为本题要求的是出现次数相等,而那题要求的是不等: cnt[1][i]-cnt[1][ 阅读全文
posted @ 2016-08-16 22:07 YuanZiming 阅读(355) 评论(0) 推荐(0) 编辑
摘要: bzoj1002[FJOI2007]轮状病毒 题意: N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示 现给定n,计算有多少个不同的n轮状病毒。N<=100 题解: 公式:f[i]=f[i-1]*3-f[i-2]+2,i≥ 阅读全文
posted @ 2016-08-16 21:56 YuanZiming 阅读(157) 评论(0) 推荐(0) 编辑
摘要: bzoj4563[Haoi2016]放棋子 题意: 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列。要求你放N枚棋子(障碍的位置不能放棋子),也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。N≤200。 题解: 发现在障碍在什么位置和答案 阅读全文
posted @ 2016-08-16 21:50 YuanZiming 阅读(171) 评论(0) 推荐(0) 编辑
摘要: bzoj2251[2010Beijing Wc]外星联络 题意: 找一个01串中出现次数大于1的字串。01串长度≤3000 题解: 有个结论:一个串的所有后缀的所有前缀对应了这个串的字串。所以将这个串的所有后缀插入trie,累计经过trie上每个节点的经过次数,找到大于1的输出即可。 代码: 1 # 阅读全文
posted @ 2016-08-16 21:41 YuanZiming 阅读(162) 评论(0) 推荐(0) 编辑
摘要: bzoj3713[PA2014]Iloczyn 题意: 判断给定的数字能否被表示成两个斐波那契数的乘积。n≤10^9 题解: 开始在想有没有什么根号级算法,后来想知道斐波那契数列10000位有多大,结果爆long long了……实际上斐波那契数列到45位就大于10^9了。所以直接枚举即可。 代码: 阅读全文
posted @ 2016-08-16 21:36 YuanZiming 阅读(339) 评论(0) 推荐(0) 编辑