首页 > 其他分享 >8.12 2014 年 JOI 圆满结束

8.12 2014 年 JOI 圆满结束

时间:2023-08-13 09:02:10浏览次数:56  
标签:容量 长度 变为 正方形 同色 JOI 2014 树上 8.12

稻草人

按 \(x\) 排序,可以将问题转化为寻找点对 \((i,j)\),使得 \(y[i]<y[j]\) 且对于所有 \(i <k <j\),都不满足 \(y[i]<y[k]<y[j]\)。

点对问题,考虑 \(CDQ\) 分治。容易发现最终对点 \(i\) 产生贡献的 \(j\) 的 \(y[j]\) 单调递减,可以使用单调栈维护。单调栈内即是右边所有可以满足限制的点。

考虑如何满足 \(y[i]<y[k]<y[j]\) 的限制。我们寻找到左边每一个点右边最近的,满足 \(h[j]>h[i]\) 的点,任何满足 \(h[k] > h[j]\) 的点应该会在 \(j\) 处被统计一次,因此 \(i\) 处不能被统计。二分得到 \(k\) 的分界点,用单调栈总点数减去分界点点数就是当前能被统计进答案的点数。

最后一个问题,对于小于 \(y[i]\) 的 \(y[j]\),不应在单调栈中统计。因此我们要先把两边按 \(y\) 排序,然后枚举左边时依次加入右边的点。

电压

给你一 \(n\) 个点,\(m\) 条边的图,你需要给每个点黑白染色,要求有且仅有一条边两端点颜色相同。问方案数。

部分分提示性很强。

对于一棵树,每一条边都可以作为颜色相同的两端点。原因是我们一黑一白染色这棵树,然后思考改变边上一端点颜色的本质,不妨令我们改变的是深度深的点 \(u\),那么实际上改变的是 \(u\) 及其子树内所有点的颜色。直接改即可。

看到第三个部分分,树上加一条边 \((u,v)\)。我们把树变为 dfs 树,那么多加的边必定是返祖边。不妨分类讨论:

  1. \(u,v\) 树上颜色不同,那么这条边必定不可变成同色。因为这样会有树上 \(u\) 到 \(v\) 路径上一条边也变为同色。同时,树上 \(u\) 到 \(v\) 路径上的所有边都不可变为同色,因为这样会使 \((u,v)\) 变为同色。
  2. \(u,v\) 树上颜色相同,那么这条边可以变为同色。同时,如果这条边不变为同色,树上 \(u\) 到 \(v\) 路径上的所有边必须有一条变为同色。否则 \((u,v)\) 就会变为同色。

对于多条边的情况,发现也可以归纳出上文中的限制条件,于是搞一个数据结构维护一下限制,然后枚举每条边可不可以被选即可。我用的是差分,但是常数很大。

挂饰

需要容量在 \([-n,1]\),初始容量为 \(1\),价值有正负的 \(01\) 背包。
\(n \le 2000\)

物品分四种

  1. 容量小于 \(1\),价值为正,直接放。
  2. 容量为 \(1\),价值为正,放到一个数组里从大到小排序然后做前缀和,\(pre_i\) 就是拥有 \(i\) 个钩子可以获得的最大价值
  3. 容量为负,价值为负,这一类物品用处是产生容量。做一个 \(01\) 背包,\(f_i\) 为产生 \(i\) 个钩子所需的最大价值。
  4. 容量非负,价值为负,没用,直接扔掉。

然后直接做就可以了,注意初始有容量 \(1\)。

Parking Lot

n∗m的矩阵,有一些点不能选。k次操作,每次都让一个点变成不可选,每次都问当前可选的最大正方形。
\(n,m,k \le 2000\)

蓝题?难题!

经典套路是转删为加,然后发现如果答案变大,则正方形一定包含新增的点。

我们暴力求出新增点左右两边不包含 X 的最左端和最右端,然后二分正方形的长度。判断条件为竖列上的长度不小于正方形的长度。

如何求出竖列上的长度?我们预处理出每个点向上向下不经过 X 最长能走多远,这个可以每次新增点时暴力维护。然后我们滑动窗口,窗口长度为正方形长度,找出窗口上向上走的最小值和向下走的最小值,相加即为竖列上的长度。

如何求出开始状态的正方形最大值是一个简单的动态规划,这里不再赘述。如果想看可以去最大正方形

标签:容量,长度,变为,正方形,同色,JOI,2014,树上,8.12
From: https://www.cnblogs.com/closureshop/p/17626091.html

相关文章

  • 2023.8.12
    又是一周的结束,浅浅做个总结,这周主要有三天没有在家,没带电脑,出去玩了几天,也就没学多少,主要是有时间的时候在手机上做一下pta的题目,简单看了一下那个考试题目,感觉有点困难,看来还没完全学会,下周找一些资源视频什么的看一看,这周总结大概就是这样,下周继续努力。......
  • 2023.8.12 普及月赛记录
    比赛传送门按照往常的经验,A和B应该都问题不大,而且我不注重抢什么首杀,于是这次改变策略:C\(\rightarrow\)D\(\rightarrow\)B\(\rightarrow\)A。先看C。题目:queue。嗯~不错,原来是大模拟,出题人非常的CCF。看完感觉就是简单的维护几个队列的模拟,感觉难度不大。然后感觉自......
  • 闲话8.12
    今天打了一场模拟赛,很爽啊(赞赏......
  • 2023.8.12-假期周进度报告
    本周,主要进行继续电视剧天道的观看,下周准备开始进行暑期社会调查报告的相关内容编写。本周日,观看电视剧天道的第十五集和第十六集,完成了电视剧天道第十五集和第十六集的观看,遇到了该准备观看博客的时候了的问题,解决方法是先再拖几天,过几天再准备。本周一,观看电视剧天道的第十七......
  • 8.12
    #include<stdlib.h>#include<string.h>#include<stdio.h>typedefstructNode{intdata;//存储数据intpre;//存储前一个节点的地址intnext;//存储下一个节点的地址}node;intmain(){nodestr[100005];inti,n,ID,temp;scanf("%d%d......
  • 8.12-晚上阵列总结
    第一种情况:物体的长是19.5宽是32.72x方向间距为15y方向间距为30  第二种情况 第三种情况 ......
  • 8.12第六周总结
    //验证手机号方法functionvailPhone(){varphone=\(("#phone").val();varmyreg=/^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})\)/;if(phone==''){$('#tip').text('手机号码不......
  • 8.12日
    今天看到一句话“海压竹枝低复举,风吹山脚晦还明”这句话真的好棒。它的意思是“乌云终将消散,黑暗终将过去,光明终会重现,人生在世没有事事如意,能屈能伸黑暗过后自有万丈光芒在等你”瑾以此句,送给我也送给你们。所有的经历都可化为成长,我希望大家都不要再因为任何人任何事而否......
  • 2023.8.12
    lgj放水场。job在\(T\)个单位时间内,每个单位时间\(t\)可以选择一个未选过的\(i\)且满足\(b_i\get\),获得\(a_i\)的贡献。求最大贡献。\(n\le2\times10^6\),\(a_i,b_i\leT\le10^9\).考虑把\(a\)大的\(i\)放到前面,开一个set,弄出来可行的最后一个单位时间,令这......
  • 2023.8.12测试
    \[\text{暑假NOIP模拟赛-6}\]终于没挂分了T1打工有\(n\)个工作,做一个工作要消耗一个时间单位,可以获得价值\(a_i\),截止日期\(b_i\),求\(T\)单位时间内最多获得多少价值\(1\leqn\leq10^6\),\(1\leqa_i,b_i\leqT\leq10^9\)先按照时间从小到大排序,然后倒序枚举,将两个时......