摘要:
原题链接 题解 1.如果前 \(7\) 头牛能全部能拿到礼物,但是这前 \(7\) 头牛里有 \(4\) 头牛更新在前 \(4\) 的位置,请问第 \(8\) 头牛能否得到礼物? 答案是不行,因为前 \(4\) 头牛会在前 \(4\) 的位置形成循环 2.假如恰好第 \(x\) 头牛没有礼物,那么牛 阅读全文
摘要:
原题链接 题解 看到使最不开心的一天尽可能的开心,这是要使最小值尽可能的不小,二分思路由此而来,剩余的就是贪心模拟 最坏时间复杂度约为 $ O(d·sum(H)) ≈ 5·10^4 · log2(5·10^{10}) ≈ 1777060.45$ 坑点:剩下的巧克力要在最后一天全部吃完 \(Code\ 阅读全文
摘要:
原题链接 题解 本题用形象一点的话来说就是对某个区间内所有的值进行修改, 并且 修改与查询的关系 是 多次修改加最后一次查询 由于 区间内修改的值的斜率一定 所以我们可以这样设 \(k[i]\) 的含义是点 \(i\) 比点 \(i-1\) 多了多少 对 \(k[i]\) 进行加减操作的含义是 代表 阅读全文
摘要:
原题链接 核心 设 \(p[i]\) 代表离 \(a[i]\) 左边最近的不同元素的位置 如果 \(p[i]\) 小于 \(l\) 代表区间内元素皆相同 传递规则: 如果 \(a[i-1]!=a[i]\) 那么 \(p[i]=i-1\) 否则 \(a[i]\) 的 \(p\) 就等于 \(a[i-1 阅读全文
摘要:
原题链接 差分 分为传递和作用两部分 本题而言,k的传递是线性的 k的作用是前一个点到这个点的斜率 code #include<bits/stdc++.h> using namespace std; int height=0;//每个点的水高/水深 int k[1070000]={0};//会对x点 阅读全文
摘要:
原题链接 反思 前缀和处理区间和问题 观察到男女数相同以及输入数据01,有一种互斥相消的感觉,我们可以令0为-1,当某个区间段的和为零,即某两个前缀和相同时,记录其最长距离 code #include<bits/stdc++.h> using namespace std; int main() { 阅读全文
摘要:
原题链接 题解 很简单想到暴力,但是 \(O(n^2)\) 显然不行 所以要减少计算量,如何利用已经计算过的值而不是重新算一遍呢? 这道题最好看成有中心点的网状图,而不是树状图 随便取一个点 \(A\) 作为根节点,很容易计算其答案,如何计算以其他点为根节点的答案呢? 对于以根节点的邻边节点 \(B 阅读全文
摘要:
原题链接 请直接看code #include<bits/stdc++.h> using namespace std; int n,m; struct edge { int to; int val; }; vector<edge> G[3005]; int son[3005]={0}; int dp[ 阅读全文
摘要:
原题链接 总结 1.要学会动态规划这种思维方式,即定义状态和状态之间的转移 2.本题的难点在于如何将抽象的输入数据转换成树状结构处理和定义状态,这个定义状态让我想到了初中添加几何线,可能要多做题才能有感觉吧 3.有一定模拟的部分,这一部分要细心 \(Code\) #include<bits/stdc 阅读全文
摘要:
原题链接 悟道 树形图看成线性结构? 抽象的说就是在图里选节点的问题,也是在树里选节点的问题 怎么想到这个方法的? 对于任意一棵树,其根节点要么选,要么不选,当根节点选的时候,其子节点可以选也可以不选,当根节点不选的时候,其子节点必须选 选子节点其实就是以子节点为根节点的树且选子节点的最小值 不选子 阅读全文
