摘要:
题意:给定一个初始集合和目标集合,有两种操作:1.合并集合中的两个元素,新元素为两个元素之和 2.分裂集合中的一个元素,得到的两个新元素之和等于原先的元素。要求用最小步数使初始集合变为目标集合,求最小步数。 记集合S的元素之和为sum(S) 首先,如果初始集合的子集S1和目标集合的子集S2满足sum 阅读全文
摘要:
其实只是把别人的题解强行扩写了 写这篇题解之前我不会的预备知识: 欧拉通路:从图中一个点出发不重复地遍历所有边的路径(可以停在另一个点) 欧拉回路:从图中一个点出发不重复地遍历所有边的回路(必须回到出发点) 欧拉图:存在欧拉回路的图。判断无向图为欧拉图的充要条件是所有点的度数均为偶数。 半欧拉图:存 阅读全文
摘要:
此题解无病呻吟,啰里啰嗦,现已加入零分作文全家桶 这题......坑死我了...... 不妨记原串长为i的前缀为prefix(i),next[i]表示prefix(i)的最长公共前后缀长度(不等于prefix(i)自身)(就是MP的next[]) 首先,一个前缀必须同时也是原串的后缀才有可能成为答案 阅读全文
摘要:
题意:给你一个初始没有边,点权均为0的无向图,三种操作:加边,删边,选择一个点将当前与之相邻的点(不包括自身)的点权+1,询问最后所有点的点权。 据说正解是set维护每个人的朋友,然后考虑每次加边、删边对答案的贡献......但作为脑子有坑的选手,我搞出了一个动态开点线段树....首先离线,分别考虑 阅读全文
摘要:
题意:给定一棵树,有点权,不带修改,询问路径点权第K大,强制在线。 这道题建主席树的方法好机智。按照BFS/DFS序建树,对于每个点,建出“这个点到根节点的路径上的点”组成的权值线段树,某个节点的树由父节点的树更改一条链得来。查询时用路径两个端点到根的线段树减去lca到根节点的线段树的2倍就得到了这 阅读全文
摘要:
题意:给定一棵带点权的树,每次询问用一条路径上的点玩Nim游戏先手是否必胜,支持单点修改。 Nim游戏:所有堆的数目异或起来不为0时先手必胜,否则必败. 所以就是单点修改+路径异或和查询. 树剖一发,因为异或满足区间减法所以可以树剖套树状数组。(还有人说可以套zkw线段树?) Dzy大爷说了一种df 阅读全文
摘要:
题意:在棋盘上放一些炮使得它们不互相攻击。其实就是一行/一列最多放两个。 50分的数据中n,m至少有一个不超过8,比较直接的想法是对n/m中较小的一维做状态压缩,状态f[i][S1][S2]表示在前i行/列中,S1集合中的列/行放了1炮,S2集合中的列/行放了2炮。转移的时候,需要枚举第i行/列怎么 阅读全文
摘要:
题意:铁人双项比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点。参赛选手有的擅长长跑,有的擅长骑车。 如果总赛程s=k+r一定,那么K越大,对擅长长跑的选手越有利;k越小,对擅长骑车的选手越有利。 现在给定总赛程s,以及每个选手长跑和骑车的平均速度,请你求 阅读全文
摘要:
题意:给你一张n*m(n,m<=1000)的网格图,问有多少个顶点在格点上的三角形(共线不算). 首先补集转化,不考虑共线的方案是C(n*m,3),减去共线方案数即可. 对于共线方案数的统计,首先可以考虑O(n^4)暴力枚举两个端点(x1,y1)(x2,y2),中间的点有gcd(x2-x1,y2-y 阅读全文
摘要:
题目里给的范围是k<=4,但是官方数据并没有k==4的情况,导致一些奇奇怪怪的DP写法也能过。听说标程在k==4的时候有反例,掀桌….. 难怪COGS上k==4的数据答案是错的。 还是好好写个搜索吧:网上写法很多.我是每次沿着一条平行于坐标轴的直线将点集分割成两部分,并枚举k个矩形如何在两边分配。边 阅读全文