线段459579152 zhuanlan atcoder
AtCoder Beginner Contest 332
C - T-shirts 题意是:给定一个string,字符代表每天有不同的事,做不同的事会穿不同的衣服,问你最少需要准备多少T恤。 思路:贪心,能不用T恤就不要T恤 #include<bits/stdc++.h> using namespace std; void solve(){ int n,k ......
AtCoder Beginner Contest 333
总结 人生第一次掉rating 全tm是降智操作 A 水题 B 逆天操作 WA了3发 第三发交的时候以为过了,等到切完E发现B怎么还没过( #include<bits/stdc++.h> using namespace std; map<string, int> f; int main() { f[ ......
简单线段树
一、什么是线段树? 线段树是怎样的树形结构? 线段树是一种二叉搜索树,每个结点都存储了一个区间,也可以理解成一个线段,你要从这些线段上进行搜索操作得到你想要的答案。 线段树能够解决什么样的问题? 线段树的适用范围很广,可以在线维护修改以及查询区间上的最值,求和。 需要注意的是,线段树只可以维护满足结 ......
AtCoder Beginner Contest 332
坐地铁时口糊了6题,回来写时结果爆long long,0没有逆元,卡了好久 A - Online Shopping (abc332 A) 题目大意 线上购物,买了\(n\)种物品,分别给出它们的单价和数量。 若总价少于\(s\)元,则需要支付 \(k\)元邮费,否则包邮。 问总价多少。 解题思路 求 ......
CF1784C Monsters (hard version) 题解 线段树
题目链接:https://codeforces.com/problemset/problem/1784/C 题目大意: 你面前有 \(n\) 只怪兽,每只怪兽都有一个初始血量,你可以进行两类操作: 操作1:选择任意一个血量大于 \(0\) 的怪兽,并将它的血量降低 \(1\); 操作2:将所有存活的 ......
AtCoder Grand Contest 040 F Two Pieces
洛谷传送门 AtCoder 传送门 第二道问号题。 设 \(A \ge B\)。我们现在将点的坐标刻画到二维平面上。相当于找到一条 \((0, 0) \to (A, B)\) 的路径,要求不能跨过直线 \(y = x\)。有 \(3\) 种移动方式: 向右移动一格。 向上移动一格。 将当前点提到直线 ......
线段树
线段树 什么是线段树 线段树(英语:Segment tree)是一种二叉树形数据结构,1977年由Jon Louis Bentley发明[1],用以存储区间或线段,并且允许快速查询结构内包含某一点的所有区间。 一个包含n个区间的线段树,空间复杂度为O(n),查询的时间复杂度则为O(logn+k)}, ......
刷题 ST表、单调栈、线段树->区间最值
2023.12.13 cf1904D2 解题思路 首先,a[i]大于b[i]时肯定不行,等于就满足了,直接过掉 其次,要想使得a[i]等于b[i],就要在a[i]左右找最近的j使得a[j]=b[i](最近的最优,可证) k是i和j中间的一个数,想要满足题意,要满足以下两个条件(a[j]=b[i]) ......
AtCoder Beginner Contest 332 题解
A - Online Shopping 题目链接 Atcoder Luogu 简要题意 共有 \(n\) 件商品,第 \(i\) 件商品的价格为 \(p_i\) 日元,数量为 \(q_i\) 件。 除了购买商品所需的的钱数,还要支付运费:如果所买商品的总价小于 \(s\) 日元,那么要支付运费 \( ......
AtCoder Beginner Contest 332
AtCoder Beginner Contest 332 A - Online Shopping 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 10; typed ......
AtCoder Grand Contest 001
比赛链接 A - BBQ Easy 从小到大排序以后,答案就是所有奇数位置之和。 B - Mysterious Light 发现去掉前两次反射以后,剩下的是一个在平行四边形内反射的过程,且形式类似于辗转相除。具体地, \[F(n,x)=\begin{cases} -n & x=0\\ 2x\lflo ......
【线段树入门】P3353 在你窗外闪耀的星星(区间求和)
这题正解是前缀和,我用线段树练练手>< 1 1 //笔记-自用 2 2 //#pragma GCC optimize("Ofast") 3 3 //#pragma GCC optimize("unroll-loops") 4 4 #define _CRT_SECURE_NO_WARNINGS 5 5 ......
【线段树入门】 P1198 最大数(区间最大值+无懒标记+末尾插入)
1 //笔记-自用 2 //#pragma GCC optimize("Ofast") 3 //#pragma GCC optimize("unroll-loops") 4 #define _CRT_SECURE_NO_WARNINGS 5 #define All(a) a.begin(),a.en ......
线段树入门】P3870 开关(区间异或和)
1 // 2 //#pragma GCC optimize("Ofast") 3 //#pragma GCC optimize("unroll-loops") 4 #define _CRT_SECURE_NO_WARNINGS 5 #define All(a) a.begin(),a.end() 6 ......
AtCoder Regular Contest 169
A - Please Sign 某个 \(A_i\) 对 \(A_1\) 的贡献是 \(\binom{10^{100}}{\mathrm{dep}_i}\),所以深度为 \(d\) 的节点的 \(A_i\) 之和只要不为 \(0\),其贡献就一定远大于深度 \(<d\) 的所有点的贡献之和。 从大到 ......
【线段树入门】P3373 线段树 2(区间乘加)
//笔记-自用 //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") #define _CRT_SECURE_NO_WARNINGS #define All(a) a.begin(),a.end() #defin ......
AtCoder Beginner Contest 332 (D)
题目链接 思路: 这就是一个二维的全排列问题 代码: #include<bits/stdc++.h> using namespace std; using ll = long long; #define LNF 0x3f3f3f3f3f3f3f3f #define INF 0x3f3f3f3f #d ......
ATCoder 332 A-D
A : Online Shopping (读懂题即可) package AtCoder.begin332; import java.util.Scanner; public class A { public static void main(String[] args) { Scanner sc = ......
【题解】AtCoder abc322_f Random Update Query
传送门:https://atcoder.jp/contests/abc332/tasks/abc332_f 容易发现,对于一个位置 $i$,$A_i$ 的最终值是由对 $i$ 的最后一次赋值操作决定的;因此,将所有操作按时间顺序倒过来考虑,则由第 $j$ 次操作决定 $A_i$ 最终值的概率为"在第 ......
【题解】AtCoder abc332_g Not Too Many Balls
传送门:https://atcoder.jp/contests/abc332/tasks/abc332_g 看完题,第一眼反应为最大流。 建模方式为:以颜色为左部点,盒子为右部点,源点 $S$ 向颜色 $i$ 连一条容量为 $A_i$ 的边,盒子 $j$ 向汇点 $T$ 连一条容量为 $B_j$ 的 ......
AtCoder_abc332
AtCoder_abc332 比赛链接 A - Online Shopping A题链接 题目大意 这里有\(N\)件商品,第\(i\)件商品价格为\(P_i\),你要购买\(Q_i\)件,除了购买的费用外,他还要支付运费。 如果购买的总价大于\(S\),运费为0元,否则他需要支付\(K\)元的运费 ......
AtCoder Regular Contest 169 (ARC169)
怎么有人 ARC A 卡了半天的? A. Please Sign 考虑 \(i\) 位置上的数,下次它被加到 \(P_i\),再下次被加到 \(P_{P_i}\),因为这个序列有性质 \(P_i<i\),这样加若干轮一定会到达 \(1\)。 令所有的 \(i\) 向 \(P_i\) 连边,则这是一棵 ......
AtCoder Beginner Contest 332
AtCoder Beginner Contest 332 A - Online Shopping int main() { IOS; for (_ = 1; _; --_) { cin >> n >> m >> k; ll ans = 0; rep (i, 1, n) { ll a, b; cin ......
Atcoder abc301 复盘(更新中)
跳转比赛链接 A - Overall Winner 简述: 高桥和青木下了 \(N\) 盘棋。给你一个长度为 \(N\) 的字符串 \(S\),表示这两盘棋的结果。如果 \(S\) 的 \(i\) 个字符是 t,那么高桥赢得了 \(i\) 局;如果 \(S\) 的 \(i\) 个字符是 A,那么青木 ......
AtCoder Beginner Contest 331 G - Collect Them All【概率期望+容斥+多项式】
题目链接:ABC331_G 写在前面 将来如果回顾这道题,建议自己看完题意一定先重新推一遍。如果还是不够熟练,多去做一些同类型的题目吧。 题意: 盒子里有 \(N\) 张卡片,每张卡片上写着一个数字,数字的范围是 \(1,...,M\),写着数字 \(i\) 的卡片有 \(C_i\) 张\((C_i ......
2020年初一初二集训队(线段树) 基本操作
其他 线段树详解与实现 - 知乎 (zhihu.com) 线段树 - OI Wiki (oi-wiki.org) 线段树 学习笔记 - xujindong 的博客 - 洛谷博客 (luogu.com.cn) 简介 线段树(segment tree)是一种二叉搜索树,也是平衡二叉树,它的每一个结点对 ......
可持久化线段树(主席树)
给定 n 个整数构成的序列 a,将对于指定的闭区间 [l,r] 查询其区间内的第 k 小值。 题目一开始的离散化复杂度为\(O(n\log n)\),构建基础主席树复杂度为\(O(n\log n)\),统计并插入的复杂度是\(O(n\log n + n\log n)=O(n\log n)\),询问的 ......
线段树模板区间加(含懒标记)
const int N = 1e5 + 10; int n, m; int a[N]; struct Tree{ int l,r; ll sum,add; }tr[4*N]; void build(int u,int l,int r){ // l=tr[u].l;r=tr[u].r; //注释掉的部 ......
AtCoder Beginner Contest 331
C - Sum of Numbers Greater Than Me 题意:给定一个长度为n的数组,分别找出比a[i]大的数组里的数的和 思路:用map记录每个数的个数,然后遍历一遍,后面一个项就是数组之和-前面一项-前面的累加 #define int long long using namespa ......