首页 > 其他分享 >8.12 Day5

8.12 Day5

时间:2024-08-12 22:06:55浏览次数:7  
标签:子树 一个点 Day5 lst 枚举 即可 区间 8.12

推荐歌曲《我是逆蝶》。

A Divide Square

挖掘特殊点:有一个端点在边缘上。

如果我们扫 x 坐标,维护 lst 横 和交叉的 竖,非常不好维护,并且 TLE。

结论:一个交点会至少增加一个区域。证明显然。

当然还有一点 corner case。

B Cow Tennis Tournament

一开始想的是三元环会是怎的,推出的性质是错的,也不好做。(没注意到可以多次反转)

正难则反。对不合法的三元环计数。

发现性质非常好,只要有一个点出度是 2 就好了。

考虑枚举从一个点出发,答案就是 \(\dbinom {deg_x}{2}\)。

这个东西可以维护二维的邻接矩阵,每次求一行的全局和减去单点即可。

又是一个二维的问题了,容易想到扫描线,如何对操作进行差分。发现一次操作就是区间取反,可差分。

一次反转,我们找到对 \(a\) 影响的 \(l,r\),对矩阵 \((l,l)\sim(r,r)\) 反转即可。

C Treasure

自然的思路就是枚举起点和终点。

这个宝藏的限制钥匙,最终应该是从树上一段 dfn 区间开始,到另一段区间,代价是 \(w\)。

考虑终点的这一维用扫描线处理。

经典问题之分类讨论:

  • 满足祖先关系。找到 \(x\) 到 \(y\) 的第一个点 \(u\),那么 \(u\) 子树外的所有点进入子树必然会经过 \(x\)。

  • 没有祖先关系。就是子树走到子树的关系。

  • \(x=y\)。发现简单算很容易算重。

又是正难则反,直接用 \(w\) 来减不经过这个点的方案。

不经过 \(x\) 是树上的经典问题,考虑子树内经过,子树外即可。

子树外面很简单,子树内部要枚举儿子点计算。

如果每次操作都枚举可以被菊花卡爆,所以要打标记最后统一处理一个点。

D k-d-sequence

注意排序后

那么就和区间内的数值域连续差不多了。转化如下:

区间内所有 \(a_i\bmod d\) 相等,但是 \(a_i\) 两两均不相等。

这玩意可以用双指针和 cnt 数组求出。

需要 \(k\) 的数量就是 \(\max(a_i/d)-\min(a_i/d)-(R-l)\)。

然后就是 pudding monsters,单调栈动态更新一下,维护最值即可。

注意有 \(lst\) 的区间限制,为了避免写 sb 的区间线段树二分,我们可以直接把 \([1,lst]\) 前缀设成极大值。

E Colorful square

F 内部白点

做过。

标签:子树,一个点,Day5,lst,枚举,即可,区间,8.12
From: https://www.cnblogs.com/LCat90/p/18355833

相关文章

  • 2024.8.12
    ###2024.8.12【梦最让我费解的地方在于,明明你看不清梦里人们的脸,却清晰地知道他们是谁。】###Monday七月初九---##序理论###最小链覆盖&最长反链长度我们设定一个二元关系符R和一个集合A我们设定<a,r>这样一个类群,那么对于任意$a_i\inA,a_j\inA$,二元关系式$a......
  • 【闲话】08.12.24
    0812闲话头图:今日推歌:《苦若吞沙feat.诗岸》Zeno来吧bababalala旋转着眩晕着拥抱着过去的那一切全都bababalala只剩下空气还哭泣着来吧bababalala奔跑着跌倒了泥泞的用力的把一切全都bababalala只剩下我还在等什么太符合心境了有点不知......
  • 云原生周刊:Score 成为 CNCF 沙箱项目|2024.08.12
    开源项目推荐KubeOneKubermaticKubeOne自动化管理您所有云环境、本地环境、边缘计算和物联网环境中的集群操作。KubeOne可以安装高可用(HA)的主集群,也可以安装单主集群。MayflyMayfly是一个Kubernetesoperator,使您可以使用基于时间的资源。它会在指定时间创建或删除资源。......
  • 8.12信息学集训_摸底
    目录P9955[USACO20DEC]DoYouKnowYourABCs?BP5436【XR-2】缘分P1182数列分段SectionIIP1032[NOIP2002提高组]字串变换P1020[NOIP1999提高组]导弹拦截P1077[NOIP2012普及组]摆花T264125黑暗能量P9955[USACO20DEC]DoYouKnowYourABCs?BP9955[USACO20D......
  • 系统编程 day5 文件4
    函数time(time_t*tloc),返回值为time_t;可以读取秒数函数ctime(consttime_t*timep),返回值为获得时间字符串首地址,char*可以将秒数转化为年月日时分秒函数localtime structtm*tm_info=localtime(&tm);返回本地实时时间命令函数:软链接函数symlink(传参:被链接,新链接);返......
  • DAY5 双指针算法
    题目:acwing799给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n个整数(均在 0∼10^5范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤......
  • Studying-代码随想录训练营day59| dijkstra(堆优化版)精讲、Bellman_ford 算法精讲
    第59天,dijkstra算法的优化版本,以及Bellman_ford算法......
  • 代码随想录Day5
    242.有效的字母异位词给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"输出:false......
  • Java学习-Day5
    一、标识符含义:Java标识符是用来命名类、变量、方法以及其他的编程元素的名字。标识符命名规则:标识符可以由字母,美元符号($)和下划线(_)组成。不能以数字开头。区分大小写:例如myVar 和 myvar 是两个不同的标识符。不能是关键字:例如 int , class,public 等。不能包含空格......
  • 24暑假集训day5下午
    DFS本质:一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。该算法讲解时常常与BFS并列,但两者除了都能遍历图的连通块以外,用途完全不同,很少有能混用两种算法的情况。关键:递归调用自身对其访问过的点打上访问标记,在遍历图时跳过已打过标记的点,以......