Processing math: 1%

09 2017 档案

摘要:B. Build a Boat 首先求出每块船舱的面积S,然后进行m次二分,得到每个切割线的位置。 为了计算某个切割线形成的区域的面积,需要将多边形整理成上边界和下边界,分别二分出断点位置,中间部分用叉积前缀和O(1)回答。 时间复杂度O(n+m\log^2n)。 C. Compil 阅读全文
posted @ 2017-09-22 02:34 Claris 阅读(387) 评论(0) 推荐(0) 编辑
摘要:若\min(n,m)=1,那么设f[i][j][k]表示考虑前i个格子,改变了j次颜色,i的颜色为k的方案数,直接转移即可。 否则\min(n,m)\geq 2,那么有解当且仅当第一二行重复得到整个图案或者第一二列重复得到整个图案。 假设是第一二行重复: 那么可以设$g[ 阅读全文
posted @ 2017-09-19 03:33 Claris 阅读(339) 评论(0) 推荐(0) 编辑
摘要:通过两遍单调栈求出每个点作为最小值往右延伸到g[i],作为最大值往左延伸到f[i]。 那么一个区间[i,j]可行当且仅当g[i]\geq jf[j]\leq ii-a[i]==j-a[j]。 按i-a[i]分组,从左往右考虑每个点作为j。 维护一个g单调递减的 阅读全文
posted @ 2017-09-19 02:11 Claris 阅读(605) 评论(0) 推荐(0) 编辑
摘要:A. Apple 按题意模拟即可。 B. Bar charts 关于序列的前缀和建立差分约束系统,SPFA判断是否存在负环。 C. Construction sets 二分答案,二进制拆分背包+bitset检验。 D. Dinner party f[i][j]表示面积和为i的矩形,周长和为$ 阅读全文
posted @ 2017-09-15 02:00 Claris 阅读(619) 评论(0) 推荐(0) 编辑
摘要:取一棵原图的DFS生成树,那么因为是仙人掌,所以每条树边最多只会属于一个环。 设f[i][j][k]表示考虑i的子树,i点选择情况为ji到父亲对应的环边底部的点选择情况为k时的最大独立集。 然后直接树形DP即可,在每个环的底部以及顶部的两条边处特殊处理转移。 时间复杂度$O 阅读全文
posted @ 2017-09-14 03:47 Claris 阅读(939) 评论(0) 推荐(0) 编辑
摘要:A. Airport Logistics 根据光路最快原理以及斯涅尔定律,可以得到从定点P进入某条直线的最佳入射角。 求出每个端点到每条线段的最佳点,建图求最短路即可。 时间复杂度O(n^2\log n)。 B. Battle Simulation 按题意模拟即可。 C. Brexit 拓扑 阅读全文
posted @ 2017-09-14 02:01 Claris 阅读(859) 评论(0) 推荐(0) 编辑
摘要:根据光路最快原理以及斯涅尔定律,可以得到从定点P进入某条直线的最佳入射角。 求出每个端点到每条线段的最佳点,建图求最短路即可。 时间复杂度O(n^2\log n)阅读全文
posted @ 2017-09-14 01:48 Claris 阅读(591) 评论(0) 推荐(0) 编辑
摘要:设f[x][y]表示从x和y出发相遇的期望长度,则f[x][x]=0,且f[x][y]对称,共C(n,2)个未知量。 列出方程组G,得到G\times F=B。 高斯消元求出G的逆矩阵G',则F=G'\times B,对于每个询问代入计算即可。 时间复杂度$O(n 阅读全文
posted @ 2017-09-13 04:30 Claris 阅读(368) 评论(0) 推荐(0) 编辑
摘要:A. Centroid Tree 枚举至多两个重心作为根,检查对于每个点是否都满足2size[x]\leq size[father[x]]即可。 B. Completely Multiplicative Function 爆搜每个质数是1还是-1,加上前n项的前缀和的绝对值必须小于$ 阅读全文
posted @ 2017-09-13 00:59 Claris 阅读(1078) 评论(0) 推荐(0) 编辑
摘要:菜鸡队训练实录。 现场赛记录:[名称:奖项/排名] 2017: ICPC Shenyang:Gold/3 CCPC Hangzhou:Gold/3 ICPC Beijing:Gold/13 CCPC Final:Silver/22 ICPC Asia East Continent League Fi 阅读全文
posted @ 2017-09-12 02:39 Claris 阅读(11512) 评论(4) 推荐(4) 编辑
摘要:A. Artifact Guarding 选出的守卫需要满足\max(a+b)\leq \sum a,从小到大枚举每个值作为\max(a+b),在权值线段树上找到最大的若干个a即可。 时间复杂度O(n\log n)。 B. Book Pages 将行中的空格以及#号都去掉,那么某一行 阅读全文
posted @ 2017-09-12 02:19 Claris 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:显然只需要考虑与障碍点相邻的格子,通过旋转坐标系,可以只考虑障碍点在格子上方的情况。 悬线法求出每个点往上的最长延伸距离x,以及往左往右的延伸距离y。 那么当r\geq x时,c至多为y。 特别地,当某个点下方也是障碍点的时候,r不能超过x。 维护出每个r对应的最大的 阅读全文
posted @ 2017-09-08 00:09 Claris 阅读(312) 评论(0) 推荐(0) 编辑
摘要:枚举最后光线射到终点的方向,求出从起点出发以及从终点出发的光路,扫描线+树状数组统计交点个数即可。 注意当光路成环时,对应的两个方向应该只算一次。 时间复杂度O(n\log n)阅读全文
posted @ 2017-09-07 04:02 Claris 阅读(296) 评论(0) 推荐(0) 编辑
摘要:求出平面图的对偶图,那么需要选择一些环,使得这些环可以异或出所有环。 对于两个不同的区域,需要用一个代价最小的环把它们区分开,这对应最小割。 那么求出对偶图的最小割树,所有树边之和就是把所有区域都区分开的最小代价。 阅读全文
posted @ 2017-09-05 02:24 Claris 阅读(379) 评论(0) 推荐(0) 编辑
摘要:设f[x]表示为了保证自己可以取到质数x,第一步在[0,n]中可以选的数是多少。 这个数是唯一的,因为如果存在两个f[x]=a,b(a<b),那么如果先手取了a,后手就能取b来让先手取不到x,矛盾。 如果x与下一个质数之间的差值大于n,那么f[x]就是结果,当 阅读全文
posted @ 2017-09-03 17:00 Claris 阅读(251) 评论(0) 推荐(0) 编辑
摘要:首先将排列和整个序列以及询问都反过来,问题变成给定一个位置x,问它经过若干轮置换后会到达哪个位置。 每次置换之后窗口都会往右滑动一个,因此其实真实置换是p[i]-1。 对于每个询问,求出轮数,倍增找到最终位置,注意当中途走到0时,说明离开了窗口,应及时终止。 时间复杂度$O((m+q)\ 阅读全文
posted @ 2017-09-03 04:07 Claris 阅读(651) 评论(0) 推荐(0) 编辑
摘要:考虑容斥,枚举哪些串必然出现,那么贡献为(-1)^{选中的串数}。 设f[i][j]表示i的子树内,i点往上是j这个串的贡献之和,那么总状态数为O(n+m),用map存储f。 将子树的DP值与父亲合并时,按串长分类讨论: 若子树串比较长,那么暴力枚举它的前缀状态转移即可。 阅读全文
posted @ 2017-09-03 02:56 Claris 阅读(482) 评论(0) 推荐(0) 编辑
摘要:将边按权值从小到大排序。 考虑一条路径,一定是最大的若干条边和最小的相应的没选的边进行交换。 这会导致存在一个分界线L,交换之后恰好选中前L小的边,且只允许>L的边与\leq L的边进行交换。 枚举L,设f[i][j][k]表示从1i,经过了j条前L小的边, 阅读全文
posted @ 2017-09-01 03:24 Claris 阅读(520) 评论(0) 推荐(0) 编辑
摘要:若k\leq 15,那么可以设d[i][S]表示经过了S集合的边,现在位于i点的最短路。 可以用Dijkstra算法在O(n^22^k)时间内求出。 否则若k>15,那么最坏情况下,它们会形成一个团,将这k条边连上后,图中最多剩下7个连通块。 如果知道哪些边要走,哪些 阅读全文
posted @ 2017-09-01 00:11 Claris 阅读(428) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示