首页 > 其他分享 >JOISC 2014 题解

JOISC 2014 题解

时间:2024-02-12 10:00:09浏览次数:33  
标签:log 记录 题解 复杂度 JOISC 括号 提交 2014 答案

JOISC 2014

loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。

D1T1

想到了最短路的做法,不过可能还需要整体二分,复杂度至少有 2 log。

有复杂度更优秀的贪心做法。把边按时间倒序加边,然后从终点开始 dfs 来更新每个点可以的最晚出发时间,每条边走之后肯定就不会再让答案变优了,可以删掉,然后把询问离线下来,顺次 dfs,因为每条边只会被遍历一次,于是复杂度除开排序是线性的了。

提交记录

D1T2

很新奇的贪心题。

从小到大考虑每个数,此时一个数左右两边比他大的数肯定是连续一段,那么直接将这个数移动到较短的那一段的端点即可,这样不仅单次是最优的,而且不会影响后面的数,所以是正确的。

复杂度 \(O(n\log n)\)。

提交记录

D1T3

回滚莫队模板题。

首先考虑用莫队,但是我们发现在删除时不好维护最大值,那就想办法不删除,这就是回滚莫队。具体地,对于莫队指针的左右端点,右端点还是和普通莫队一样,每次往右移,然后记录下当前值。左端点就不太一样了,每处理完一次询问就回到左端点所在的段的末尾,然后令答案回到之前记录的值,这样就可以保证在不删除的情况下答案正确。

提交记录

D1T4

交互题。

首先很容易做到 \(2n-2\) 次,考虑优化。我们先两两分组,把每组中大的分为一组,小的分为一组,在这两组中分别找最大最小,就只需比较 \(3\left\lfloor\dfrac{n}{2}\right\rfloor-2\) 次。

其实可以直接用 STL 的 minmax_element,实现方法和上面说的一样。

提交记录

D2T1

有点硬的题目。

可以先类似多源 bfs 一样求出哪些建筑是可能对答案产生贡献的,然后就剩求两点间最大值最小的路径,直接上 Kruskal 重构树即可。复杂度 \(O(HW\log(HW)+n\log^2n)\)。

提交记录

D2T2

很抽象的题目。

容易发现,如果一个点的出度大于 1,那么它能到的所有点最后都会被连成完全图,于是每次暴力合并即可,复杂度 \(O(n\log n)\)。

ps:我也不知道为啥这样做时间复杂度是对的。

提交记录

D2T3

很神仙的 DP。

我们最优的做法肯定是会绕圈,但是根据贪心思想,绕圈的点是会贪心匹配的,就是说如果把下行到上行看成左括号,上行到下行看成右括号,那么最终一定是一组合法括号序,于是就可以用括号序上 DP 的常见套路,记 \(f[i][j]\) 表示考虑到前 \(i\) 个车站,已经有 \(j\) 个左括号还未匹配的最小代价,转移分为直接盖邮戳,从下行经过时盖邮戳,作为左括号和作为右括号 4 种,分类转移即可。

提交记录

D3T1

简单题。

给每个字符赋随机权值,保证随机权值之和是 0,那么一个区间合法当且仅当这个区间的和是 0,于是用 map 维护即可。

提交记录

D3T2

感觉不是很好想。

考虑 CDQ 分治,那么此时我们要统计的就是左下角在 \([l,mid]\),右上角在 \([mid+1,r]\) 的矩形个数,考虑按 \(y\) 从大到小加入左侧点,维护 \(x\) 递减的单调栈,这样可以求出以这个点为左下角的矩形的纵坐标上界,然后右边再维护横坐标递增的单调栈,就可以求出答案了。

提交记录

D3T3

首先容易看出充要条件:一条边合法当且仅当在所有奇环的交里,且不在任意一个偶环里。

然后考虑建出 dfs 树,计算每一条边在几个奇环和偶环中出现。

具体地,对于一条非树边,如果只有一个奇环,那么这条非树边就合法,否则如果两个奇环相交就会构成一个大偶环导致非树边不合法,不相交就会直接无解。于是求出树上合法的边数,再判断是否只有一个奇环即可。

提交记录

D4T1

有点硬的计算几何题。

首先,两个三角形不交当且仅当存在公切线,那么我们可以枚举公切线来计算答案。

具体地,我们枚举一个点,然后把剩下的点按极角排序,然后顺次枚举与另一个点的连线作为公切线,这时满足条件的三角形一定是一个在公切线下方,另一个在公切线上方,于是就可以直接统计答案了。

注意每一对三角形会被统计 4 遍,最终把答案除以 4 即可。

提交记录

D4T2

传送门

题意

通信题。

一个带边权的有向图,Alice 知道完整的图,但是 Bob 不知道其中 \(k\) 条边的边权,保证这些边的起点是同一个点,现在有 \(q\) 次询问,每次要求出两点间的任意一条最短路,Alice 可以向 Bob 传不超过 64 位的 01 串,从而让 Bob 回答询问。

思路

很厉害的通信题。

先考虑 90bit 的做法。

如果我们知道了在一次询问中走哪条 -1 的边比另外的一条边更优,我们就可以知道这次的路径。

记两次询问中起点到 A 的距离分别为 \(a,b\),那么对于两条边 \(u,v\),可以求出一个阈值 \(w\),满足 \(a-b<w\) 时走 \(u\) 更近,于是就可以求出在所有询问中有多少次是走 \(u\) 更近的,总共最多是 \(\log(Q+1)\times 5\times (5-1)/2=90\) 位。

考虑优化。我们依次考虑每条边,只维护当前状态向多一条边的状态下,每条边和新的边相比会有多少次询问是更近的,这样我们维护的信息在每一次的和不超过 \(Q\),而我们维护的信息个数分别是 \(1,2,3,4,5\) 个,最劣情况下是维护的信息都相等,那么我们需要 \(\log((60+1)\times (30+1)^2\times (20+1)^3\times (15+1)^4\times (12+1)^5)=64\) 位,可以满足限制。

提交记录

D4T3

简单题。

根据 A,B 的正负性分类。

  1. A>0,B>0,选择这些挂饰不仅会让答案变优,而且挂钩的数量也不会减少。
  2. A=0,B>0,这些挂上后就不能再挂东西了,可以放在最后处理。
  3. A>0,B<0,这些就是用来增加挂钩的数量的,那么对于每种挂钩的数量,我们只需知道挂饰最大的代价。

总结一下,就是先求出第一类贡献,然后用背包求出第三类挂饰的贡献,然后对于每种数量的挂钩,我们按贡献从大到小取第二类挂饰即可。复杂度 \(O(n^2)\)。

提交记录

标签:log,记录,题解,复杂度,JOISC,括号,提交,2014,答案
From: https://www.cnblogs.com/Xttttr/p/18013707

相关文章

  • CF1628E Groceries in Meteor Town 题解
    题目链接点击打开链接题目解法感觉就是很多个套路组合出来,但我有些套路都不会/ll套路1看到从一点出发,到其他点的路径上的最大权,可以想到\(kruskal\)生成树(这提示我不仅是图可以用\(kruskal\)生成树,树也可以捏)我们建大根的\(kruskal\)生成树,那么将问题转化成了找一个......
  • 图上的游戏 题解
    「2020集训队论文」图上的游戏。算法\(1\):给定点集\(S\),\(|S|=n\),其中有\(m\)个好点。每次可以询问指定点集中是否存在好点,求所有好点。询问次数\(O(\min\{m\logn,n\})\)。对\(S\)分治,若当前不存在好点则退出。每个好点被询问\(\lceil\logn\rceil\)次,分治次......
  • CF1715E Long Way Home题解
    题解注意到\(k\)是一个很小的数,我们考虑分层图是否可做,这时航线有\(n^2\)条,我们可能会建出\((k+1)m+kn^2\)条边,空间会炸掉,然而单单从分层图的角度来优化,是困难的。对于\(m=0\)的情况。考虑\(\text{dp}\),定义\(dp_{i,j}\)表示乘坐不超过\(i\)次航班到达\(j\)的最......
  • CF1928E 题解
    \(\textbf{ProblemStatement}\)给定\(n,x,y,s\),构造长度为\(n\)的序列\(a\),满足:\(a_1=x\)。\(\foralli\in[2,n],a_i=a_{i-1}+y\)或者\(a_i=a_{i-1}\bmody\)。\(\sum\limits_{i=1}^na_i=s\)。给出构造或报告无解。\(\sumn,\sums\le......
  • 题解 AT_mujin_pc_2016_c【オレンジグラフ】
    本文中点的编号从\(0\)开始。显然,题目中要求橙色的边构成极大的二分图。枚举二分图左右部分别有哪些点。特别地,钦定\(0\)号点是左部点。将所有跨左右部的边染为橙色,如果所有点通过橙色的边连通,就得到了一组合法的解;如果不连通,显然可以将更多的边染成橙色,使得所有点连通。//......
  • 题解 ABC336G【16 Integers】
    萌萌BEST定理练习题。赛时几乎做出来了,但写挂了,现在在火车上没事干就给补了。考虑建图,图中共有\(8\)个节点,节点的编号是\((\mathbb{Z}/2\mathbb{Z})^3\)的每个元素。对于每个四元组\((i,j,k,l)\in(\mathbb{Z}/2\mathbb{Z})^4\),在图中连\(X_{i,j,k,l}\)条\((i,j,k)\to(j......
  • 洛谷 P1795 无穷的序列 题解
    题目传送门题目大意:给定整数\(a\),判断\(a\)是否属于数列\(1,2,4,7,11\cdots\)。多测。1.暴力枚举(90pts)不难发现,该数列除第一项外第\(n\)项比第\(n-1\)项多\(n-1\)。故暴力枚举\(n\),计算数列的每一项,判断是否与\(a\)相等,大于\(a\)就break。多测加记忆化,用mx......
  • P5524 [Ynoi2012] NOIP2015 充满了希望 题解
    题目链接:充满了希望一开始以为是传统老题,结果看到有个交换单修操作,ODT这题试了下,应该\(fake\)了,毕竟有单修,很难保证之前的\(log\)级复杂度。有些较为智慧的解法确实不好思考,说个很简单的做法,这里没有问颜色数,而是问的颜色具体情况,那就比之前的很多题简单太多了。颜色的具体......
  • AtCoder-abc340_f题解
    题意简述给定整数\(x,y\),询问是否存在整数\(a,b\),满足:\(-10^{18}\lea,b\le10^{18}\)。由\((0,0),(x,y),(a,b)\)三点构成的三角形面积为\(1\)。如果存在,输出任意一组;否则输出-1。思路先假设\(x,y,a,b\)都是正数。那么图大概是这样:此时红色三角形的面积就......
  • P4183 [USACO18JAN] Cow at Large P 题解
    Description贝茜被农民们逼进了一个偏僻的农场。农场可视为一棵有\(N\)个结点的树,结点分别编号为\(1,2,\ldots,N\)。每个叶子结点都是出入口。开始时,每个出入口都可以放一个农民(也可以不放)。每个时刻,贝茜和农民都可以移动到相邻的一个结点。如果某一时刻农民与贝茜相遇了......