![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小白学算法
我的故事用酒换
这个作者很懒,什么都没留下…
展开
-
第284场周赛 得到要求路径的最小带权子图
求两个点到同一个点的权值最小。到目标点相同的路径需要排除掉,所以可以找三个点到同一个点的权值最小,使用目标点计算时只需将边反过来就可以了。这样就相当于把中间点当成跳板,两个点到中间点,然后再从中间点到目标点,目的就是消除相同路径的影响。class Solution {public: typedef long long ll; struct node{ int to,v; }; const ll INF = 1e18; vector<ll&原创 2022-03-13 12:30:54 · 370 阅读 · 0 评论 -
2021CCSP最近数合并
【题目背景】在西西艾弗岛上,生活着快乐的小 C、小 S 和小 P。最近,三位小朋友在学校里学到了“两个数之间的距离”这一重要的概念。为了巩固知识,小 P 玩起了“合并最近数”的游戏。【题目描述】A = {a1, a2, · · · ,an} 是一个包含 n 个自然数(非负整数)的集合(根据集合的定义,这 n 个数两两不同),且其中的最大值小于一个给定的正整数 k。小 P 需要对集合 A 中的数进行若干轮合并操作,到 A 中仅剩一个数为止。每轮合并操作的流程如下:选取数对 (x, y):从原创 2022-01-13 15:30:11 · 676 阅读 · 2 评论 -
2019CCPC江西补题
A - Cotree题意:给两颗树,分别在两颗树中找一个点,将两个点相连使得形成的树两两结点距离和最小,求出这个最小的距离和。思路:重心就是一棵树中这个点到其他点的距离和最小,所以两个相连的点两棵树各自的重心,然后将两个重心相连形成的树就是两两结点距离相加最小,然后再跑一遍dfs即可求出所有点的两两的距离。(很裸的求重心的题)#include <iostream>#include <algorithm>#include <cstring>#includ原创 2021-11-04 10:55:16 · 71 阅读 · 0 评论 -
The 2021 ICPC Asia Regionals Online Contest (II)
G#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define mod 998244353#define ll long longusing namespace std;const int N=1e5+5;int n,t,a[N],x,y,z,b;void solve(){ cin>>n>>t; b=t; for(int i=1;i<=n;i++){ cin>>x>>原创 2021-09-30 13:39:09 · 88 阅读 · 0 评论 -
2021icpc网络赛
A#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;int n,k;const int N=1e5+5;int tr[N<<3],cnt[N<<1];void push_up(int rt){ tr[rt]=min(tr[rt<<1],tr[rt<<1|1]);}void build(int l,int r,int rt){ if(l==原创 2021-09-20 17:04:17 · 297 阅读 · 0 评论 -
倍增“找信号”
题目:Supposethatyouarestrandedonadesertisland.Youhavearadioandabatterywithyou,andtheradioiscapableoftransmittingatdifferentintegerpowerlevels(e.g.1W,2W,3W,4W,…).Assoonasyoutransmitadistresssignalwithenoughpower...原创 2021-09-09 15:37:51 · 76 阅读 · 0 评论 -
Time-division Multiplexing(双指针)
#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long longusing namespace std;const int N=1e2+5;int n,len[N],vis[N],now[N];string s[N];bool check(int x){ if(x)return true; for(int i=1;i<=n;i++){ if(now[i])return tr.原创 2021-08-31 12:09:26 · 143 阅读 · 0 评论 -
树的重心、点分治
大佬讲的树的重心很详细的点分治,基本看完就懂了计算以无根树每个点为根节点时的最大子树大小,这个值最小的点称为无根树的重心。性质1:某个点是树的重心等价于它最大子树大小不大于整棵树大小的一半。性质2:树至多有两个重心。如果树有两个重心,那么它们相邻。此时树一定有偶数个节点,且可以被划分为两个大小相等的分支,每个分支各自包含一个重心。性质3:树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。反过来,距离和最小的点一定是重心。性质4:往树上增加或原创 2021-08-19 23:25:50 · 245 阅读 · 0 评论