首页 > 其他分享 >2 ~ 3 月学习总结

2 ~ 3 月学习总结

时间:2023-07-02 15:25:43浏览次数:52  
标签:总结 ch return lc xorv int 学习 rc

  • Grouping

随便 DP.

  • [PKUSC2018]最大前缀和

考虑加入某一个数会产生什么变化和前缀和的性质。

显然后缀和必须是一个负数。

f, g.

如果是一个负数,显然可以塞在 g 的后面

如果前缀 f 前面是正的,可以塞在 g 的前面。

是正的就塞在 f 的后面,然后这两种可以合并。

  • lgj

[l, r] +1 -1 -> 0

考虑差分数组,最后面补一个 0, 那么如果差分全是 0 这个原数组也差不多如此。

那么每次可以配对的选一对 [l, r] 就是差分数组绝对值和除以 2

  • 九省联考 2018] 一双木棋 chess

考虑到这个是一个下降的图形。直接搜索似乎就可以过了哥们。

P9145 [THUPC 2023 初赛] 世界杯

绝世好题,我是贺的。

P3523 [POI2011] DYN-Dynamite

二分一下 \(k\).

然后记录一下两个相关 \(f, g\) 就是最远和最近的那个。

然后有几种情况。

  • 可以救火 \(f \to -inf\)

  • \(f \to lim\) 表明放在 \(u\) 就是优秀的。 \(g \to 0\)

  • \(g > lim\) 表明救不了自己,要父亲来救。 \(f \tomax(f, 0)\)

P6419 [COCI2014-2015#1] Kamp

手绘好题!

可以画个图,发现不走最长链。

那么考虑换根时维护,这个要记录次长链,然后自己做一做找一找感觉。

  • P3588 [POI2015] PUS

17 mins 感觉不错。

学习了很多。

比如说那 \(k\) 个点,我们可以建立超级点 \(s'\) 代表,连剩下的。

然后 \(u_{k} \to (s', -1)\), \(s' \to (segment, 0)\).

然后这个是一个 \(0 / 1\) 图, 可以考虑直接 拓扑排序。

线段树优化建图即可。

  • P2627 [USACO11OPEN]Mowing the Lawn G

双倍经验。

  • P1848 [USACO12OPEN]Bookshelf G

考虑单调栈预处理 \(h_i\) 产生贡献的位置。

把 dp 数组可以考虑拍到线段树上,然后动态维护 \(f,f +h\) 这两个的最小值,随便打打 tag 就好了。

  • P6623 [省选联考 2020 A 卷] 树

不会做,进行了学习。

全局加一就是找到连续的 1 然后将其变为 0 就好了,这个很神奇。

附上一个打包的模板。

#define lc ch[u][0]
#define rc ch[u][1]

namespace trie {
	const int maxd = 21, M = N * (maxd + 1);
	int cnt = 0, ch[M][2], w[M], xorv[M];
	inline int node () { int u = ++ cnt; lc = rc = w[u] = xorv[u] = 0; return u;}
	inline void maintain (int u) {
		w[u] = xorv[u] = 0;
		if (lc) { w[u] += w[lc], xorv[u] ^= xorv[lc] << 1;}
		if (rc) { w[u] += w[rc], xorv[u] ^= xorv[rc] << 1 | (w[rc] & 1);}
		w[u] = w[u] & 1;
 	}
 	inline void insert (int & u, int k, int dep) {
 		if (! u) u = node();
 		if (dep > maxd) { w[u] ++; return ; }
 		insert(ch[u][k & 1], k >> 1, dep + 1), maintain(u);
	}
	inline int merge (int u, int v) {
		if (! u || ! v) return u | v;
		w[u] = w[u] + w[v], xorv[u] ^= xorv[v];
		lc = merge(lc, ch[v][0]), rc = merge(rc, ch[v][1]);
		return u;
	}
	inline void addone (int u) {
		swap(lc, rc);
		if (lc) addone(lc);
		maintain(u);
	}
} 
  • P3178

今日份弱智。

\(dis_v \times k - dis_u \times k\) 单点修改,区间修改,两颗线段树,我是小丑。

别又降智了哥们。

  • P7527

容易弱智。

考虑枚举 l, 然后转化为一个数点问题:

\[[pre_r < l, suf_l > r] \]

这样的形式显然很简单,用主席树即可维护 (

CF / AT 的做题

标签:总结,ch,return,lc,xorv,int,学习,rc
From: https://www.cnblogs.com/Custlo/p/17520816.html

相关文章

  • dotnet-微服务学习-dotnet集成SkyWaking链路追踪
    关于链路追踪的原来我们单独开一篇文章讲解这里我们来讲解SkyWaking的安装和集成 首先进入SkyWaking官网下载最新的包网址如下: https://skywalking.apache.org/downloads/ 1.1windows安装下载后Winwos直接运行双击bin目录下的startup.bat即可 注意 SkyWalk......
  • C# 学习笔记 - 异常
    异常概述C#的异常捕获系统允许开发者将正常代码与异常处理逻辑进行分离。异常可以表示在软件执行期间出现的各种异常情况,包括内部的和外部的。外部条件导致的异常:网络故障、权限不足、内存不足、Web服务引发的异常,这些异常通常由操作系统、.NET运行时或外部应用程序引发;内......
  • 7.2总结
    今天有点倒霉,把手机内屏摔碎了,给我干emo了,然后手机拿去修了,上午下午刷pta,现在是10分的一定能坐下来,15分得思考思考,会需要一段时间进行调试各种,有时候测试点过了,但是提交并不是满分,这就头疼了,然后搜答案,看看自己哪点没想到,最后才成功AC。中午自己随便吃了点泡面。今天也开始学java......
  • C# 学习笔记 - 控制流
    控制流条件语句、迭代语句、跳转语句和异常处理语句控制程序的执行流。条件语句使用关键字if,switch来决定执行某些语句迭代语句使用关键字do,while,for,foreach和in创建一个循环跳转语句使用关键字break,continue,return和yield转移程序控制条件语句(Condi......
  • Java学习——数组
    数组一、数组的定义Java语言中提供的数组是用来存储固定大小的同类型元素。二、数组声明和创建1.声明数组变量首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[]arrayRefVar;//首选的方法或dataTypearrayRefVar[];//效果相同,......
  • atx-agent学习(3)-安装uiautomator apk
    源码如下:def_install_uiautomator_apks(self):"""useuiautomator2.0torunuiautomatortest通常在连接USB数据线的情况下调用"""self.shell("pm","uninstall","com.github.uiautomator&q......
  • SpringCloud学习(四)
    参考:https://blog.csdn.net/qq_25928447/article/details/124340264?spm=1001.2014.3001.5501消息队列之前如果需要进行远程调用,一般可以通过发送HTTP请求来完成,现在,可以使用第二种方式,就是消息队列,它能够将发送方发送的信息放入队列中,当新的消息入队时,会通知接收方进行处理......
  • 验证码生成技术的学习总结(C#)
    作者:光脚丫思考 一、概述一直以来对于验证码这玩意都是使用了别人编写好的代码,最多也就是稍微的做点修改罢了。虽然别人做的东西并不是非常的适合自己使用,但还是给将就将就了一番。这几天呢?不知道是哪里高兴了,终于是好好的把一些别人早就已经使用过的验证码技术给好好的拿来学习学......
  • GeoServer入门学习:05-多层级MBTiles规范数据发布
    一、开篇本篇演示如何在GeoServer中发布多层级的MBTiles数据,在发布之前,需要配置MBTiles扩展包,如果没有配置WPS扩展包的话,还需要配置一并进行配置。如上图所示,默认情况下GeoServer并未包含MBTiles扩展包,因此,在《新建数据源》的时候是没有发布MBTiles数据的入口。 二、下载WPS扩展包......
  • GeoServer入门学习:02-安装部署
    一、系统环境本系列博文相关演示环境采用如下操作系统环境:这是在虚拟机中安装的WindowsServer2012R2的操作系统,其他系统环境大家自行尝试。二、安装JDKJDK版本:JDK13,如下图所示:GeoServer是基于Java的软件,运行的时候需要JDK的支持,如果你的系统中没有安装配置好JDK,请按照下面的这......