摘要: 前 树状数组套权值线段树,是众多树套树的一种(下文树套树默认指树状数组套权值线段树),可以在单次查询 / 点修均 \(O(\log^2 n)\) 的时间复杂度内,在线处理二维数点 / 区间第 \(k\) 小等问题。 前置知识: 线段树 树状数组 可持久化线段树 本文代码中 auto [a,b,c]= 阅读全文
posted @ 2025-07-15 17:28 Sinktank 阅读(153) 评论(0) 推荐(1)
摘要: P1983 [NOIP 2013 普及组] 车站分级 对于一趟车次停靠的位置\(p_1,p_2,\dots,p_s\),可以确定的是\([p_1,p_s]\)中除\(p\)以外的位置,优先级一定低于这些\(p\)。 对于\(a,b\)两个点,若\(a\)的优先级低于\(b\),就添加一条\(a\ri 阅读全文
posted @ 2025-07-10 14:34 Sinktank 阅读(53) 评论(0) 推荐(0)
摘要: A - Content Too Large 输出Yes\(\iff \sum a_i\le m\)。 时间复杂度\(O(n)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n,m; signed main(){ cin>>n>> 阅读全文
posted @ 2025-07-06 13:45 Sinktank 阅读(312) 评论(2) 推荐(2)
摘要: 因为要准备考试所以补题会晚些。(#><) A - Required Length 输出Yes\(\iff |s|\ge n\)。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; string s; int n; s 阅读全文
posted @ 2025-06-21 23:25 Sinktank 阅读(307) 评论(1) 推荐(0)
摘要: 线段树合并,就是将两棵线段树对应位置相加,得到一棵新的线段树。 由于实际应用中,通常要对很多棵线段树进行多次合并,所以和主席树类似地,我们使用动态开点线段树来实现。 算法概述 线段树合并的代码实现如下: int merge(int x,int y,int l,int r){//将x,y为根的树都合并 阅读全文
posted @ 2025-06-21 10:51 Sinktank 阅读(222) 评论(4) 推荐(1)
摘要: A - G1 统计有多少个\(a_i\ge k\)即可。 时间复杂度\(O(n)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=1e2+10; int n,a[N],k,ans; signed main(){ c 阅读全文
posted @ 2025-06-14 22:59 Sinktank 阅读(285) 评论(0) 推荐(1)
摘要: A - Conflict 输出Yes\(\iff\)存在\(t[i]\)和\(a[i]\)同时为o。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; string t,a; bool check(){ 阅读全文
posted @ 2025-06-07 23:17 Sinktank 阅读(356) 评论(0) 推荐(0)
摘要: A - Timeout 根据题意,若令\(T[0]=0\),则: 答案为Yes\(\iff\)对于\(i\in [1,n]\),都有\(T[i]-T[i-1]\le S\)。 时间复杂度\(O(n)\)。 点击查看代码 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2025-05-31 23:50 Sinktank 阅读(733) 评论(5) 推荐(3)
摘要: P1250 种树 这里主要补充一个\(O(h\log n)\)的做法(即加强版 P11453 [USACO24DEC] Deforestation S)。 我们将需求看做线段,第\(i\)条线段左右端点分别是\(l_i,r_i\),要种\(cnt_i\)棵树。 那么可以使用贪心的思想求解。将线段按左 阅读全文
posted @ 2025-05-28 16:06 Sinktank 阅读(46) 评论(0) 推荐(1)
摘要: A - Approximation 使用<cmath>中的round()函数实现四舍五入。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b; signed main(){ cin>>a>>b; co 阅读全文
posted @ 2025-05-24 23:52 Sinktank 阅读(531) 评论(2) 推荐(2)
摘要: #6160. 「美团 CodeM 初赛 Round A」二分图染色 转化一下题意: 定义一个\(n\times n\)的棋盘,如果左侧的\(i\)与右侧的\(j\)之间有一条红色的边,那么棋盘的\((i,j)\)处就放一个红色棋子;蓝色同理;绿色相当于不放。 要求每个格子最多放\(1\)个棋子,红色 阅读全文
posted @ 2025-05-24 19:58 Sinktank 阅读(50) 评论(0) 推荐(0)
摘要: 因为上线时间有限所以补题和题解都延误了(^^; 写得很急,如有错误/不清晰的点请在评论区提出。 A - Not Acceptable 见代码。时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b,c,d; 阅读全文
posted @ 2025-05-23 20:32 Sinktank 阅读(87) 评论(0) 推荐(0)
摘要: A - Is it rated? 照题意判定即可。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int r,x; signed main(){ cin>>r>>x; if(r>=1600&&r<=2999&&x 阅读全文
posted @ 2025-05-10 22:57 Sinktank 阅读(308) 评论(0) 推荐(0)
摘要: [ABC404F] Lost and Pound ~ AtCoder 根据题意,玩家所知道的信息,仅有“当前的轮数”和“正确按钮已经被按下多少次”,所以可以设计DP数组: 令\(f[i][j]\)表示“还剩\(i\)轮结束,还要按\(j\)次正确按钮”的获胜概率。 则初始状态为\(f[0\sim T 阅读全文
posted @ 2025-05-09 20:29 Sinktank 阅读(50) 评论(0) 推荐(0)
摘要: A - Status Code 如果\(S\in [200,299]\)则输出Success,否则输出Failure。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; signed main(){ c 阅读全文
posted @ 2025-04-12 23:25 Sinktank 阅读(543) 评论(1) 推荐(1)
摘要: A - exercise 照题意模拟即可,注意每天先增后减。细节见代码。 时间复杂度\(O(m\log m)\)。 点击查看代码 #include<bits/stdc++.h> #define M 514 #define int long long using namespace std; stru 阅读全文
posted @ 2025-04-06 22:50 Sinktank 阅读(70) 评论(0) 推荐(1)
摘要: A - ABC400 Party 如果\(A\)整除\(400\)就输出\(\frac{400}{A}\),否则输出-1。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; signed main(){ 阅读全文
posted @ 2025-04-05 22:56 Sinktank 阅读(272) 评论(0) 推荐(0)
摘要: A - Doors in the Center 如果\(n\)为奇数,就依次输出\(\frac{n-1}{2}\)个-、\(1\)个=、\(\frac{n-1}{2}\)个-。 如果\(n\)为偶数,就依次输出\(\frac{n}{2}-1\)个-、\(2\)个=、\(\frac{n}{2}-1\) 阅读全文
posted @ 2025-03-22 23:35 Sinktank 阅读(703) 评论(1) 推荐(0)
摘要: A - Thermometer 按题意判断并输出即可。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace std; double x; signed main(){ cin>>x; if(x>=38) cout<<"1\n"; 阅读全文
posted @ 2025-03-19 17:40 Sinktank 阅读(233) 评论(0) 推荐(1)
摘要: A - Triple Four 按题意模拟即可。 时间复杂度\(O(n)\)。 点击查看代码 #include<bits/stdc++.h> #define N 110 using namespace std; int n,a[N]; signed main(){ cin>>n; for(int i 阅读全文
posted @ 2025-03-08 23:46 Sinktank 阅读(669) 评论(0) 推荐(0)
摘要: A - Strictly Increasing? 答案为No\(\iff\)存在\(i\in[1,n)\),使得\(a_i\ge a_{i+1}\)。 点击查看代码 #include<bits/stdc++.h> #define N 110 using namespace std; int n,a[ 阅读全文
posted @ 2025-03-01 23:26 Sinktank 阅读(770) 评论(0) 推荐(2)
摘要: A - 22222 遍历字符串\(s\),按题意输出所有2即可。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; string s; signed main(){ cin>>s; for(auto a 阅读全文
posted @ 2025-02-23 00:14 Sinktank 阅读(486) 评论(0) 推荐(0)
摘要: A - Poisonous Oyster 如果两人都肚子疼,就是第\(1\)瓶。 如果只有Takahashi肚子疼,就是第\(2\)瓶。 如果只有Aoki肚子疼,就是第\(3\)瓶。 如果都不肚子疼,就是第\(4\)瓶。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/std 阅读全文
posted @ 2025-02-16 00:32 Sinktank 阅读(445) 评论(0) 推荐(1)
摘要: A - Shuffled Equation 显然只有最大值可能被相乘得到,所以对\(a\)从小到大排序,判断\(a[0]\times a[1]=a[2]\)是否成立即可。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2025-02-08 23:28 Sinktank 阅读(529) 评论(0) 推荐(0)
摘要: 上周六没打,VP了四道,其他再补 A - Happy New Year 2025 Happy New Year 2025! 按题意输出\((a+b)^2\)即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b; signed 阅读全文
posted @ 2025-01-07 17:33 Sinktank 阅读(253) 评论(0) 推荐(0)
摘要: A - Full House 2 容易发现,答案为Yes\(\iff\)输入中恰好出现了\(2\)种不同的数,可以用set等数据结构来计算不同元素的个数。 点击查看代码 #include<bits/stdc++.h> using namespace std; set<int> se; signed 阅读全文
posted @ 2024-12-29 12:49 Sinktank 阅读(408) 评论(0) 推荐(1)
摘要: P1333 瑞瑞的木棍 我们将颜色看作节点,每个木棍左右的两个颜色之间连接无向边。 可以用并查集维护连通性,每添加一条边\((u,v)\)就合并\(u,v\)所在集合,最终所有节点都在一个集合中\(\iff\)该图联通。 在回顾下无向图存在欧拉通路的判定条件,满足其一即可: 无向图是欧拉图\(\if 阅读全文
posted @ 2024-12-27 20:24 Sinktank 阅读(78) 评论(0) 推荐(0)
摘要: UVA10129 单词 Play on Words 将各字母看做节点,单词的首字母向尾字母连一条有向边。最终如果该图存在欧拉通路,则答案合法。 回顾一下欧拉通路的判定: 有向图是欧拉图\(\iff\)非零度节点弱连通,每个节点出入度相等 有向图是半欧拉图\(\iff\)非零度节点弱连通,恰有一个节点 阅读全文
posted @ 2024-12-27 19:49 Sinktank 阅读(34) 评论(0) 推荐(0)
摘要: A - Equally 显然分组情况一定是\(1+1+1\)或\(1+2\),直接判定即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b,c; signed main(){ cin>>a>>b>>c; if((a+b==c) 阅读全文
posted @ 2024-12-21 23:58 Sinktank 阅读(385) 评论(0) 推荐(1)
摘要: A - aaaadaa 按题意模拟即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; char c1,c2; string s; signed main(){ cin>>n>>c1>>c2>>s; for(int i:s){ 阅读全文
posted @ 2024-12-15 22:56 Sinktank 阅读(170) 评论(0) 推荐(0)
★CLICK FOR MORE INFO★ TOP-BOTTOM-THEME
Enable/Disable Transition
Copyright © 2023 ~ 2025 Sinktank - 1328312655@qq.com
Illustration from 稲葉曇『リレイアウター/Relayouter/中继输出者』,by ぬくぬくにぎりめし.