线段459579152 zhuanlan atcoder

bzoj3531 [Sdoi2014] 旅行 树链剖分+动态开点线段树

哈哈哈哈没想到居然会是第一道动态开点线段树 之前一直想学,模板还没调过,结果在这里遇到了 题解: 有个很朴素的想法是对每个宗教开一棵线段树 但是这样1e5*1e5,空间会炸 考虑像主席树那样动态开点,需要的时候再开辟新节点,显然新增的节点不会很多 开辟新节点也很简单: if(ql<=mid) { i ......
线段 动态 bzoj 3531 2014

【题解】Atcoder AGC034E Complete Compress

题目分析: 看到数据范围显然考虑先枚举一个集合点,也就是根。 设 $g_u = \sum_{v \in tree_u \and col_u = 1} dis(u,v)$,那么我们一次操作就是让 $g_u$ 减二或者不变,而不变的操作就是在 $u$ 的同一棵子树内的操作是没有影响的。 因为我们可以将 ......
题解 Complete Compress Atcoder 034E

AtCoder Beginner Contest 245

A - Good morning #include <bits/stdc++.h> using namespace std; int32_t main() { int a , b , c , d; int ta , ao; cin >> a >> b >> c >> d; ta = a * 60 * ......
Beginner AtCoder Contest 245

AtCoder Beginner Contest 246

AtCoder Beginner Contest 246 A (思维) A 这个题大意是告诉你一个矩形的三个点,求第四个点,并且已知每条边都是平行于$x$轴或者是$y$轴的,那么我们可以确定,$x$坐标只有两种,并且每一种都有两个,$y$坐标也是 题目输入三个坐标,那么答案就是缺少的那个个(数量为$ ......
Beginner AtCoder Contest 246

AtCoder Beginner Contest 295

A - Probably English #include <bits/stdc++.h> using namespace std; int read() { int x = 0, f = 1, ch = getchar(); while ((ch < '0' || ch > '9') && ch ......
Beginner AtCoder Contest 295

AtCoder Beginner Contest 145

AtCoder Beginner Contest 145 https://atcoder.jp/contests/abc145 D - Knight 乍一看以为是dp,但是数据范围不允许。 仔细一看发现,两种操作的次数是固定的,可以枚举出来每种操作分别进行了多少次,如 $(1,2)$ 走了 $a$ ......
Beginner AtCoder Contest 145

AtCoder Beginner Contest 148

AtCoder Beginner Contest 148 https://atcoder.jp/contests/abc148 这场比较简单 D - Brick Break 二分 or LIS #include <bits/stdc++.h> #define ll long long using n ......
Beginner AtCoder Contest 148

[USACO08FEB]Hotel G 线段树区间合并|维护最长的连续1

这个还是看代码,比讲的清楚 #include<bits/stdc++.h> #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define ls (rt<<1) #define rs (rt<<1|1) u ......
线段 区间 USACO Hotel FEB

【题解】Atcoder ABC295 A-G

A.Probably English 题目分析: 直接每一个单词判一下就好了。 代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; int main(){ int n;scanf("%d",&n); bool flag = false; f ......
题解 Atcoder ABC 295 A-G

浅谈线段树分治

有的时候,我们需要维护删除操作,而有很多操作是不支持删除或无法快速删除,我们就考虑将所有的操作离线,在时间轴上建线段树,将一个操作和他的删除看作是对于时间轴的有一段区间的操作。 这样,我们就可以更加方便地维护某些操作的删除了。 二分图 一个 $n$ 个点的图,有 $m$ 条边,第 $i$ 条边连接 ......
线段

线段树模板,两种实现方式(结构体一维数组模拟满二叉树、结构体+链式存储)

简单总结下线段树值得注意的点,对于什么是线段树,网上有非常多大佬写的非常的详细,我这里只是给大家提供两个不同存储结构实现的线段树模板 线段树 主要是实现区间操作,区间查询,有懒标记的线段树能够实现区间更新(包含单点更新),没有懒标记的则只有单点更新(其实也可以区间更新只不过这样是O(n)的时间没啥意 ......
结构 线段 数组 模板 方式

AtCoder Beginner Contest 147

AtCoder Beginner Contest 147 https://atcoder.jp/contests/abc147 C - HonestOrUnkind2 推理题,爆搜。好那好难,一直不知道怎么下手 #include <bits/stdc++.h> using namespace std ......
Beginner AtCoder Contest 147

bzoj 5361: [Lydsy1805月赛]对称数 可持久化线段树 思路|无代码

2333居然有一天做题会做到找来找去找不到oj有这道题 虽然说HydroOJ保存了不少bzoj的题,但总归仍不是非常完善,bzoj你为什么不争气点—— 题意: 给定一棵树,n个点,每个点有点权 给出m条询问,每次问(u,v)的路径上出现了偶数次的最小数 题解: 出现了偶数次,联想到异或和为0,但是直 ......
线段 思路 代码 Lydsy bzoj

AtCoder Beginner Contest 295 A-D题解

比赛地址 A.Probably English 1 void solve() 2 { 3 int n;cin>>n; 4 set<string>st; 5 st.insert("and"); 6 st.insert("not"); 7 st.insert("that"); 8 st.insert(" ......
题解 Beginner AtCoder Contest 295

AtCoder Beginner Contest 146

AtCoder Beginner Contest 146 https://atcoder.jp/contests/abc146 C - Buy an Integer 这个O(1)推式子的做法不知道为什么WA:https://atcoder.jp/contests/abc146/submissions ......
Beginner AtCoder Contest 146

AtCoder Beginner Contest 248 F(连通性状压dp)

F 连通性状压dp 思路 看了dls的讲解后才明白一点点。 状态$dp[i][j][k]$表示到表示到i列,删除了j条边,点i和n-1+i是否联通,对于下一列点, 若当前i和n-1+i连通,则多出来的三条边连任意两条,使得下一列点i+1和n+i连通,否则下一列点不连通。 若当前点i和n-1+i不连通 ......
性状 Beginner AtCoder Contest 248

AtCoder Educational DP Contest

1.A 没什么难度,直接算就可以了。 点击查看代码 #include<bits/stdc++.h> #define int long long #define Yes printf("Yes\n") #define No printf("No\n") #define YES printf("YES\ ......
Educational AtCoder Contest DP

「线段树」!(简单)的线段树

本题为3月20日23上半学期集训每日一题中B题的题解 题面 题目描述 给你一个序列 $A[1],A[2],...,A[n]$ .( $|A[i]| \leq 15007, 1 \leq N \leq 50,000$ ). M( $1 \leq M \leq 500,000$ ) 次询问,每次询问 $ ......
线段

线段树

#include<cstdio> #pragma warning (disable:4996) using namespace std; int a[10001]; //结构体,存线段树 struct node { int l, r, v; }tree[40001]; //建树 void make_ ......
线段

吉司机线段树

1.对于所有的i∈[l,r],将Ai加上 k(k 可以为负数) 对于k的值,我们分类讨论,讨论其对区间最大值的影响 1)k==0 无影响 2)k<0 正常加上即可 3) k>0,只有这种情况可能会对最大值结果产生影响 我们考虑用 Tag1 来维护,显然当 Tag1 累计到最大后,下传给 son 区间 ......
线段 司机

bzoj 2006 [NOI2010] 超级钢琴 线段树求区间极值+优先队列

挺神奇的一道题,唯一想不通的是为什么放在主席树的题单里.. 首先暴力找出所有的合法区间显然是不可能的。 考虑怎么贪心,假如固定每个L作为左端点,那么合法的区间就是[L+l-1,L+r-1](当然还要跟n取个min) 对于每个L,用线段树求出合法区间内最大的值,以及取得最大值时所对应的点,设为idx ......
极值 线段 队列 区间 钢琴

算法总结--线段树

声明(~~叠甲~~):鄙人水平有限,本文为作者的学习总结,仅供参考。 ##1.线段树介绍 线段树说是算法,更应该算是一种二叉树数据结构的使用。 其每个树的节点表示一个区间,其孩子节点表示该区间二分下来的两个节点,其值可以表示这个区间数据的某种运算,如最值、求和等,以下以数组 [1,2,3,4] 为栗 ......
线段 算法

AtCoder Grand Contest 019 F Yes or No

洛谷传送门 AtCoder 传送门 首先容易发现最优策略是回答剩余多的选项。设 $n$ 为剩余 Yes 的数量,$m$ 为剩余 No 的数量,考虑将 $(n,m)$ 放到平面上,若 $n > m$ 则回答 Yes 并向左走,$n < m$ 则回答 No 并向下走,$n=m$ 则随意。 如果按照这样的 ......
AtCoder Contest Grand 019 Yes

可持久化线段树

“主席树这个名字只不过是 $OIer$ 们在思考政 ($zhe$) 治($xue$)的时候发明的好($du$)听($liu$)的名字” ......
线段

AtCoder Grand Contest 008 F Black Radius

洛谷传送门 AtCoder 传送门 神题!!!!111 考虑如何不重不漏地计数。先考虑全为 1 的情况,令 $f(u,d)$ 为与 $u$ 的距离 $\le d$ 的点集。 首先单独算全集,那么对于不是全集的集合就会有一些比较好的性质。 考虑若有若干个 $f(u,d)$ 同构,那 只在 $d$ 最小 ......
AtCoder Contest Radius Grand Black

线段树和树状数组(1)

Preview: 终于到了喜闻乐见的线段树了,因为其灵活度较高,基本框架固定,深受像我这样喜欢水题的人的喜爱。 而至于为什么文章名叫“线段树和树状数组”呢,实际上我们可以把树状数组看做成没有右儿子的线段树,然后加的时候是直接进行的 pushup,然后这样树状数组是否就清晰多了呢? 板子: 因为本人太 ......
线段 数组

CF1783G. Weighed Tree Radius(树的动态直径,线段树)

一开始想给i只加一条ai的链,然后发现不太对,取中点取到非原树上的点,并且还要特判u=v 然后~~看题解~~发现加两条链就都解决了 然后变成动态直径问题: https://blog.csdn.net/weixin_62887323/article/details/128667759 大概是求出欧拉序 ......
线段 直径 Weighed 动态 Radius

AtCoder Beginner Contest 246

AtCoder Beginner Contest 246 D 题意 求一个$x\geq n$ 使得$x=a^3+a^2b+ab^2+b^3$且$n\leq10^{18}$ 思路 变形 $x=(a+b)(a^2+b^2)$ ,那么a、b的范围在1e6 从大到小枚举每个a,那么每个符合情况的b的最小值一 ......
Beginner AtCoder Contest 246

[AtCoder] B - Counting Grids

The key observation is that there is always at most 1 cell that violates both conditions. Proof: if x violates both conditions, that means all other n ......
Counting AtCoder Grids
共1120篇  :37/38页 首页上一页37下一页尾页