[JOISC2014]ストラップ】的更多相关文章

[JOISC2014]スタンプラリー 题目大意: 有\(n(n\le3000)\)个车站,另有一个起点站和终点站,所有车站排成一条链,相邻两个车站之间的距离为\(t\).每个车站都有一个上行站台.一个下行站台.除起点站和终点站外,每个站点都有一个超市,超市在上行站台和下行站台之间.对于站点\(i\),从上行站台到超市的时间为\(u_i\),从超市到上行站台的时间为\(v_i\),从下行站台到超市的距离为\(d_i\),从超市到下行站台的距离为\(e_i\).问从起点站出发,经过所有超市到达终点站…
[JOISC2014]友だちをつくろう 题目大意: 一个\(n(n\le10^5)\)个点,\(m(m\le2\times10^5)\)条边的有向图.对于两个点\(i,j\),如果存在一个点\(k\)使得存在边\(k\to i\)和边\(k\to j\),那么就新增边\(i\to j\)和\(j\to i\).不断进行上述操作,直至无边可加为止.问最终能有几条边. 思路: 用并查集维护所有的完全图.BFS将剩下能连的边连上. 源代码: #include<queue> #include<c…
[JOISC2014]ストラップ 题目大意: 有\(n(n\le2000)\)个挂饰,每个挂饰有一个喜悦值\(b_i(|b_i|\le10^6)\),下面有\(b_i(b_i\le10^6)\)个挂钩,可以用来挂别的挂饰.一开始只有一个挂钩,问喜悦值总和的最大值. 思路: \(f[i][j]\)表示考虑前\(i\)个挂饰,还多\(j\)个钩子时,喜悦值总和的最大值. 考虑同样的一堆挂件,先挂\(a_i\)大的可以尽可能避免钩子不够用的情况.因此需要先将所有挂件按\(a_i\)从大到小排序. 时间…
[JOISC2014]電圧 题目大意: 一个\(n(n\le10^5)\)个点,\(m(m\le2\times10^5)\)条边的无向图.要在图中找到一条边,满足去掉这条边后,剩下的图是一个二分图,且若再将这条边接上,两端一定在二分图的同一侧.问有多少这样的边. 思路: 这样的边一定满足在所有奇环的交上,并且不属于任何一个偶环. 随便求出原图的一棵生成树,枚举每一个非树边,若构成奇环,则将对应环上边权+1,否则-1.最后统计边权=奇环个数的边的数量.树链剖分+线段树维护即可. 对于包含多条非树边…
[JOISC2014]バス通学 题目大意: 有\(n(n\le10^5)\)个点和\(m(m\le3\times10^5)\)条交通线路.第\(i\)条交通线路可以让你在时间\(x_i\)从\(a_i\)出发,并在\(y_i\)时到达\(b_i\).\(q(q\le10^5)\)次询问,每次询问若要在时间\(l_i\)到达\(n\)点,最晚什么时候要从\(1\)点出发. 思路: 将每条交通线路拆成两种操作:出发和到达. 用\(f_i\)表示乘上第\(i\)辆车最晚几点出发,\(g_i\)表示到达…
[JOISC2014]たのしい家庭菜園 题目大意: 给定一个长度为\(n(n\le3\times10^5)\)的序列\(A(A_i\le10^9)\).只能交换相邻两个数,问最少需要几步可以将它变成一个单峰序列. 思路: 对于每个元素,看它两边哪边比他大的数少,就把它移到哪边.用树状数组维护即可,时间复杂度\(\mathcal O(n\log n)\). 源代码: #include<cstdio> #include<cctype> #include<climits> #…
[JOISC2014]歴史の研究/[BZOJ4241]历史研究 题目大意: 一个长度为\(n(n\le10^5)\)的数列\(A(A_i\le10^9)\),定义一个元素对一个区间\([l,r]\)的贡献为\(A_i\times cnt(A_i)\),其中\(cnt(A_i)\)表示\(A_i\)在区间内的出现次数.\(q(q\le10^5)\)次询问,每次询问一个区间内贡献最大的元素的贡献. 思路: 分块. \(cnt[i][j]\)表示前\(i\)块内\(j\)的出现次数,\(sum[i][…
[BZOJ4237]稻草人/[JOISC2014]かかし 题目大意: 平面上\(n(n\le2\times10^5)\)个点,若一个矩形各边与坐标轴平行,左下角和右上角都在\(n\)个点之中,且内部不包含其它的点,则这个矩形是合法的.问给定的点中包含多少合法的矩形? 思路: 将点按照\(x\)排序,使用CDQ分治.分治的两边分别按照\(y\)排序,左右两遍分别维护一个单调栈.左边的单调栈按照\(x\)单调递减,右边的单调栈按照\(x\)单调递增.右边的栈中的点作为右上角,用树状数组维护左边的单调…
P4138 [JOISC2014]挂饰 ◦          N个装在手机上的挂饰.挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上.直接挂在手机上的挂件最多有1个.此外,每个挂件有一个安装时会获得的喜悦值,用一个整数来表示,可能为负. ◦          想要选出一些挂饰挂在一起,最大化所有挂饰的喜悦值之和. ◦          1<=N<=2000           0<=Ai<=N(1<=i<=N)表示挂勾的数量     …
嘟嘟嘟 这题其实还是比较好想的,就是有一个小坑点. 首先钩子多的排在前面,然后就是dp了. dp方程就是\(dp[i][j]\)表示到了第\(i\)建物品,还剩\(j\)个挂钩的最大喜悦值.转移就很显然了:\(dp[i][j] = max \{dp[i - 1][j + 1 - a[i]] + b[i] \}\). 然后坑点在于每一件物品的钩子数量都可能有2000个,因此枚举\(j\)的时候讲道理应该到\(sum[i]\),\(sum[i]\)表示1到\(i\)件物品共有多少个钩子.我因为这个在…
传送门 题意:给出平面上$N$个点,求满足以下两个条件的矩形:①左下角与右上角各有一个点:②矩形内部没有点.$N \leq 2 \times 10^5$,所有数字大于等于$0$,保证坐标两两不同 最开始想到的是类似于楼房重建的算法,然后打炸了qwq 在多维问题上考虑分治可以降低一维限制,很多时候都会用到(比如三维偏序). 我们先对$y$值从小到大排序,在分治内部对$x$值从小到大排序,然后考虑左边一半对右边的贡献. 可以知道对于左边一半的两个点$a,b(a<b)$,如果$y_a<y_b$,那么…
OJ题号: BZOJ4242.AtCoder-JOISC2014E 题目大意: 给你一个h*w的网格图,每个格子可能是空地.障碍物和建筑物. 你只可以从空地上走过或者从建筑物中穿过. 建筑物总共有p个,现在有q组询问,求从建筑物A到建筑物B的过程中在空地上连续走过的最长一段路最短能是多少. 思路: 为了保证走过的最长路最短,我们可以对所有的建筑物及其路径构造最小生成树. 正确性显然:为了保证最长路最短,我们要使所有能走的边尽量小,这实际上就是一个贪心,也就是我们所熟知的Kruskal算法. 题目…
题目大意: 给你一串仅包含'J''O''I'的字符串,问满足三种字符出现次数相等的最大字串是多少? 思路: 用map存一下出现次数前缀和两两之差出现的最早位置,每次看一下当前的两两之差最早的出现位置是多少. #include<map> #include<cstdio> #include<cctype> inline int getint() { register char ch; while(!isdigit(ch=getchar())); register '; )+…
传送门 看到出现次数自然地考虑莫队. 但是发现如果需要删除并动态维护答案的话,则要用一个堆来维护答案,增加了一个\(log\).但是加入操作却没有这个\(log\),所以我们考虑避免删除操作. 分块,设\(l_i,r_i\)表示第\(i\)个块的左右端点,设\(f_{i,j}\)表示区间\([l_i,r_j]\)的答案,可以枚举\(i\)然后枚举\(j\)做到\(O(n\sqrt{n})\): 接下来将询问离线,对于每一组询问如果左右端点距离\(\leq 2\sqrt{n}\)则暴力计算答案,否…
传送门 一件值得注意的事情是:平面上两个不相交的三角形一定会存在两条公切线 那么我们可以枚举三角形的公切线,计算有多少个三角形的公切线之一为该线,所有的答案除以2就是我们要求的答案. 考虑如何去计算有多少个三角形的公切线之一是给定直线的公切线.首先这条直线上一定会有两个给出的点,这条直线把平面分成了两个部分,那么两个三角形需要分别包含直线上的两个点中的一个,并且两个三角形的另外两个点所在的平面区域必须在直线的两侧,这样这两个三角形的公切线就是给定的直线. 那么我们现在的问题就是如何计算给定直线两…
传送门: [1]:洛谷 [2]:BZOJ 参考资料: [1]:追忆:往昔 •题解 上述参考资料的讲解清晰易懂,下面谈谈我的理解: 关键语句: 将此题转化为 "01背包" 类问题,关键就是上述语句: 据此,定义 dp[ i ][ j ] 表示前 i 个物品在钩子剩余 j 个的状态下所获得的最大喜悦值: 细节处理: 为了应对负数的情况,让 dp[ i ][ j ] 的下标 j 全部增加 2000 ,这样就可以表示在负数范围内的值了. 状态转移: 首先,初始化 dp[][] 数组为 -INF…
传送门 题目描述 你是活跃在历史幕后的一名特工,为了世界和平而夜以继日地努力着. 这个世界有N个国家,编号为1..N; 你的目的是在这N个国家之间建立尽可能多的友好关系. 你为了制定一个特工工作的计划,作出了一张当今国际关系的示意图. 你准备了一张非常大的画纸,先画下了代表每个国家的N个点. 接下来,为了表示现在的国际关系,画下了M个连接两个国家的有向边; 其中从国家u连向国家v的有向边,表示国家u向国家v派遣了大使,下文称作边(u,v). 这样就做出了N个点M条边的当今国际关系示意图. 作为两…