Bubble Cup 8 finals C. Party (575C)】的更多相关文章

题意: 给定n个人,分两天晚上去夜总会开派对,要求每天恰好有n/2个人去,且每人去的夜总会各不相同. 每个人对不同的晚上不同的夜总会有不同的满意度,求一个方案使得所有人的满意度之和最大. 夜总会数量=人的数量=n,2<=n<=20,且n是偶数. 0<=每一项满意度<=10^6. 时间限制2s,空间限制4MB. 题解: 在这题上卡了很久… 初看这题觉得是费用流…写完发现图建错了… 然后改成暴力枚举哪些人在第一天晚上去再跑费用流… 每个人只和对应晚上的夜总会连边,然后两天晚上的夜总会再…
Bubble Cup 12 - Finals Online Mirror, unrated, Div. 1 C. Jumping Transformers 我会状压 DP! 用 \(dp[x][y][mask]\) 记录到达 \((x,y)\),之前清楚的排骨龙集合为 \(mask\) 的最小耗费. 如果到达 \((x,y)\) 时,本应遭遇的排骨龙没了,那么想想:这只排骨龙是何时遭到放逐? 很自然地设计出状态:\(dp[x][y][len][0/1]\) 表示当前在 \(x\) 行, \(y\…
Bubble Cup 11 - Finals [Online Mirror, Div. 1] 一场很好玩的题啊! I. Palindrome Pairs 枚举哪种字符出现奇数次. G. AI robots 对\(r\)从大到小排序,然后cdq分治. 注意要对\(q-k,q+k,q\)进行离散化 B. Space Isaac 对原序列做差分,b[i]=a[i]-a[i-1] 如果我们要凑出\(x\),那么集合A中小于\(x\)的数字,要关于\(x/2\)对称,大于\(x\)的数字要关于\((x+m…
题意: 有一个正方形区域, 要求支持两个操作: 1.放置三角形,给定放置方向(有4个方向,直角边与坐标轴平行),直角顶点坐标,边长 2.查询一个点被覆盖了多少次 1<=正方形区域边长n<=5000 1<=询问数<=10^5 保证输入合法,三角形被正方形区域完全包含. 题解: 嗯这是一道数据结构题… 一开始我想起来之前做过但没做出来的一道三角形修改三角形查询的分块题… 然后…GEOTCBRL说,是k-d tree呀,CF上面有标程代码长度限制的… 然而我并不会用k-d tree做这个…
题意: 简单来说就是生成一棵树,要求根到每个叶子节点上的路径颜色排列不同, 且每条根到叶子的路径恰有n条蓝边和n条红边. 求生成的树的节点个数. 1<=n<=10^6 题解: 简单计数. 显然,前n层的边的颜色是任意的,所以第i层就是2^i个点. 对于后n层,可以直接由上一层转移. 因为已经知道上一层合法的个数,那么如果现在每个点扩展两条边, 那么上一层的状态中,某种颜色的个数已经达到n的情况就有一条边不可扩展, 所以要减去2*C(i-1,n). 1 2 3 4 5 6 7 8 9 10 11…
题意: 给定一个带权无向图,每条边的代价为边权/当前速度,每次到达一个新节点,速度都会除以10. 求0号点到n-1号点的最小代价,如果多解输出点数最少的解,输出代价.路径点数.路径经过的点. 1<=边数<=10^5, 1<=点数<=10^5, 0<=边权<=9 题解: 比较有趣的一道题…难度不算太高,但一些地方比较容易想错… 这题的边代价可变本身并不是什么大问题,因为是图中所有边一起变大, 但是一开始就会遇到一个问题,就是总代价数字过大,没有办法直接存储和比较. 观察到…
题意: 给定初始位置,查询n次区间,每次查询前可以花费移动距离的代价来移动, 查询时需要花费当前位置到区间内最近的点的距离,求最小代价. 1<=n<=5000,1<=所有位置<=10^9 题解: 可以用O(n^2)的暴力DP碾过去… 不过实际上可以O(n)贪心. 贪心的想法是比较明显的,就是每次找最近的,需要考虑的就是移动不移动. 比如有多个连续的在当前位置左边的区间, 这时往左会让这些区间的答案都减小,而增大的代价至多是移动距离*2. 不过这样子考虑会比较麻烦,观察到这题的特点,…
题意: 一个长宽是100000单位的球场上有很多暴动的观众,每个观众都有一个速度v, 在一秒内,观众会等概率地移动到与原位置的曼哈顿距离<=v的地方(不会移动到界外). 你需要选取三个位置,这三个位置要求满足在一秒之后可能会出现观众. (这里不需要考虑概率大小,只要概率不为0就是满足的) 然后过这三点作圆,请选取在初始状态一秒后圆内观众数的期望值最大的方案输出. 如果有多种,输出半径最大的方案. 题解: 第一眼看起来非常可怕… 什么每秒移动速度呀…什么期望呀…先被吓死就做不了了… 其实是假装要扯…
题意: (无输入,纯输出题) 一个城市用1000列2行的格子表示,一个小偷藏在城市的某一处. 在每一小时的开始, 在(X, Y)位置的小偷可以移动到 (X - 1, Y), (X + 1, Y),(X - 1, Y - 1), (X - 1, Y + 1), (X + 1, Y - 1), (X + 1, Y + 1)中的任意一个位置. 在每一小时中,警察可以控制搜索两个格子,如果小偷藏在这个格子就会被发现. 请输出一种方案, 使得在2015小时内,对于小偷的初始位置和移动方法的所有可能情况都能…
题意: 给定一棵n个点和有向边构成的树,其中一些边是合法边,一些边是非法边, 经过非法边需要1的费用,并且经过之后费用翻倍. 给定一个长为m的序列,问从点1开始按顺序移动到序列中对应点的总费用. 1<=n<=10^5, 1<=m<=10^6 题解: 还是比较水的… 正解是各种方法求LCA,在点上打标记,最后DFS一遍就可以得到答案. 用tarjan求LCA可以做到总复杂度O(n*α)… 我傻傻地见树就剖,强行O(n log n log n)碾过去了… 每次把起点终点之间的路径的经过…