【xsy1120】 支援(assist) dp+卡常】的更多相关文章

妙啊算错时间复杂度了 题目大意:给你一棵$n$个节点的二叉树,每个节点要么是叶子节点,要么拥有恰好两个儿子. 令$m$为叶子节点个数,你需要在这棵二叉树中选择$i$个叶子节点染色,叶节点染色需要一定的代价,非叶子节点代价为两孩子的染色节点数量的异或和乘上一常数.请最小化代价. 数据范围:$n≤4000$. 显然这是一道$dp$题. 令$f[u][i]$表示在以$u$号点为根的子树中,选择$i$个叶子节点染色的最小代价. 若u为叶子节点,不难得出$f[u][0]=0$,$f[u][1]=c[u]$…
http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%BE%8B%E9%A2%98/5102%20Mobile%20Service 终于会做一道了.. $f[i][j][k]$表示第$i$个命令后一个人在$j$,另一个在$k$,还有一个在哪你懂得.(其实这里是一个状态精简,第三个人的状态没必要留,因为可以知道) 于是每个操作枚举上一次两个人分布位置,排除…
卡了一晚上,经历了被卡空间,被卡T,被卡数组等一堆惨惨的事情之后,终于在各位大爹的帮助下过了这个题qwqqq (全网都没有用矩阵转移的动态dp,让我很慌张) 首先,我们先考虑一个比较基础的\(dp\) 我们令\(dp1[i]\)表示必须选\(i\)的最大连通块的权值是多少. 然后令\(ans1[i]\)表示\(i\)的子树中的\(dp1\)的最大值. 那么该怎么计算这两个数组呢. 首先$$dp1[i] = dp1[i]+max(0,dp1[p])$$ 其中\(p\)是\(i\)的儿子. \[an…
Iahub wants to meet his girlfriend Iahubina. They both live in Ox axis (the horizontal axis). Iahub lives at point 0 and Iahubina at point d. Iahub has n positive integers a1, a2, ..., an. The sum of those numbers is d. Suppose p1, p2, ..., pn is a p…
题目描述 $ρ$有一个二分连通无向图,$X$方点.$Y$方点均为$n$个(编号为$1\sim n$).这个二分图比较特殊,每一个$Y$方点的度为$2$,一条黑色边,一条白色边.所有黑色边权值均为$a$,所有白色边权值均为$b$.选择一个$X$方点,代价为连接的所有边的权值之和.激活一个$Y$方点,需要选择至少一个与之相邻的$X$方点.现在,$ρ$想激活每个$Y$方点,他想知道最小的总代价.不过$ρ$很善良,他给你开了$O2$优化.这样你就不会被卡常了.当然,除非你真的连读入优化都不想写,或者常数…
LINK:Typewriter 好久没写SAM了 什么都给忘了. 写了大概2h.感觉被卡常还看了题解. 考虑dp 然后容易想到维护前面的一个j决策 尽可能小. 然后每次考虑向后加一个字符 不过不行就跳父亲. 我的做法是先建立SAM 然后每个点维护right集中最小的就可以维护决策了. 常数大的很. 考虑不这样做 边建SAM边做dp. 然后每次维护指针j 如果now接不上下个字符 j就向后移动. 注意跳父亲 值得注意的是跳父亲需要写while 大概是因为可能会分裂的缘故. 这个点在没分裂之前是可以…
[luogu T71973]卡常者π酱 题意 给定一个长度为 \(n\) 的字符串, 要求将字符串分割为若干段, 每一段要么是一个字符要么是前面几段的并的子串. 如果某一段是一个单独字符, 则产生 \(a\) 的开销. 如果是前几段的并的子串, 则产生 \(b\) 的开销. 如果满足两个条件, 则可以在 \(a,b\) 中任选一个开销. 求划分的最小开销. \(n\le 5\times 10^6\), 字符集大小 \(\Sigma\le 7\). 题解 冷静分析一下发现是沙雕题 然而题目说不卡常…
题面:https://www.cnblogs.com/Juve/articles/11484209.html 工业: 推一个式子,AC 没有用组合数....推了2个多小时 我sbsbsbsbsbsbsbsbsbsbsbsbsbsbsb #include<iostream> #include<cstdio> #include<cstring> #define int long long using namespace std; const int MAXN=3e5+5;…
工业题 题解 抱歉,题解没时间写了 代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define A 6666666 #define mod 998244353 ll jie[A],ni[A],acnt[A],bcnt[A]; ll fheng[A],fshu[A]; ll n,m,a,b; ll meng(ll x,ll k){ ll ans=1; for(;k;k>>=1,x=x*x%m…
题目大意 静态区间查询不同数的个数. 分析 好了,成功被这道题目拉低了AC率... 打了莫队T飞掉了,真的是飞掉了QwQ. 蒟蒻想不出主席树的做法,就换成了莫队... 很多人都不知道莫队是什么... 一句话概括莫队:离线询问分块排序,玄学降低复杂度 那么这道题目就是简单的莫队模板套一下就好了,每一次看看更新的点是不是会对答案造成贡献就可以过掉了. 但是复杂度很明显是\(Q(\sqrt{n}m)\),成功T掉,加上玄学卡常,破罐子破摔了100+终于过掉了. #include <bits/stdc+…