AT 下分记录

ABC342G Retroactive Range Chmax

线段树分治写了 20min。。。

标记永久化,multiset

ARC172

+5=1781

A 知道关键是边长是 2 的幂次的正方形,但没想法。写了个不知道对不对的贪心过了
B 显然要构造重复的一定是选前 i 个和后 k1i 个,中间有两个同色的。然后一直试图按顺序确定前 k1 个并顺便把后 k1 个也填出来,玩了很久才会顿悟正解。How to come up with the solution
C 一开始拐到三叉树上了

A - Chocolate

对于每个 i,如果边长 2i 的正方形面积和大于 H2iW2i22i 则无解(把边长大于 2i 的都拆成 2i,还放不下),否则有解(从大到小每个边长的正方形都能放下)

C - Election

考虑把 c1 往后调的过程,从 i1 后调到 i 后时只有第 i1 个结果可能会变化

D - Distance Ranking

确实有随机调整的做法,不过没太懂。nhh

ABC338

+156=1776

ABC 没有 Ex 还是没什么意思
C “个数”应该从 0 开始枚举,WA
F 写了个假的分层图 TLE

F - Negative Traveling Salesman

赛时做法:设 dis[s,u] 为走过集合 s 中的点,当前在点 u 的最短路,按 s 分层,层内跑 spfa。时间复杂度应该是 O(2nn3) 不满

标算:设答案路径中点 pi 是第 i 个 第一次被访问到的 点,则 pipi+1 的路径一定是最短路。排列 p 确定了就能算最优路径。全源最短路+状压 dp,时间复杂度 O(n3+2nn2)

G - evall

赛时做法:线段树优化暴力
For(l,1,n) if( isdigit(s[l]) ) For(r,l,n) if( isdigit(s[r]) ) {
	mint sum = 0, f = 1, g = 0;
	For(i,l,r)
		if( isdigit(s[i]) ) g = g * 10 + s[i]-'0';
		else {
			f *= g, g = 0;
			if( s[i] == '+' ) sum += f, f = 1;
		}
	ans += sum + f * g;
}

标算是线性的

AGC063

+30=1620

B 做法假 WA 了三次,为啥总是吃了罚时才能发现问题啊

心态还是需要解决的问题。过完 B 啥都想不出来又自闭了

posted @   ft61  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示