自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 二分图判定+图染色解决(bfs+dfs)

二分图定义:二分图也称二部图,是图论里的一种特殊模型,也是一种特殊的网络流。其最大的特点在于,可以将图里的顶点分为两个集合,且集合内的点没有直接关联,如下图所示。判断二分图的常见方法是染色法:用两种颜色,对所有顶点逐个染色,且相邻顶点染不同的颜色,如果发现相邻顶点染了同一种颜色,就认为此图不为二分图。 当所有顶点都被染色,且没有发现同色的相邻顶点,就退出。dfs解法:#include <iostream>#include <algorithm>#include &lt

2020-10-29 09:54:15 643

原创 二维差分J.Matrix Subtraction

题目链接题解:#include<bits/stdc++.h>#define ll long longusing namespace std;int dp[1001][1001]; //差分记录int su[1001][1001]; //输入的值int rec[1001][1001]; //记录差分和void inse(int x,int y,int x1,int y1,int z){ dp[x][y]+=z; dp[x1+1][y]-=z; d

2020-10-27 15:30:59 60

原创 【模板】轻重链剖分+线段树

题目链接题解:#include <bits/stdc++.h>#define ll long longusing namespace std;int next[500001];int head[500001];int to[500001];int cnt;int son[500001];//求重儿子int fa[500001];//父亲结点int tol[500001];//子节点个数int dep[500001];//深度int dfn[500001];/

2020-10-07 19:08:02 101

原创 树链剖分求解lca

树链剖分:用于将树分割成若干条链的形式,以维护树上路径的信息。树链剖分都指"重链剖分"重链剖分还能保证划分出的每条链上的节点 DFS 序连续,因此可以方便地用一些维护序列的数据结构(如线段树)来维护树上路径的信息。首先明确概念:重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点;轻儿子:父亲节点中除了重儿子以外的儿子;重边:父亲结点和重儿子连成的边;轻边:父亲节点和轻儿子连成的边;重链:由多条重边连接而成的路径;轻链:由多条轻边连接而成的路径;树中只有重子节点和轻子节

2020-10-06 20:29:41 237

原创 树的重心

重心的定义:一颗无根树,选择某一个结点,该结点相对于其它未被选择的结点来说,拥有的最大子树的节点数是最少的。性质:1.以树的重心为根时,所有子树的大小都不超过整棵树大小的一半。2.树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。3.把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上。4.在一棵树上添加或删除一个叶子,那么它的重心最多只移动一条边的距离。在这里插入代码片#include <bits/stdc+

2020-10-05 18:47:56 89

原创 POJ 1182 食物链(并查集)

**题目描述:**动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1)

2020-08-03 16:02:50 133

原创 hdoj多校 Deliver the Cake(拆点+dijkstra)

题意:有n个点,m条边的无向带权图,每一个点都有一个字母类型,每个点的类型有三种L,R,M。L能转R,R转L,且需要花费x。从L结点到R结点需要多花费x(要转换),L或R结点到M结点,M结点可以为R结点也可以为L结点,所以 在进过M结点时你要选择是变R还是L。所以要进行拆点。注意: 当起点为M时,你需要增加一个0结点,连接到起点拆分之后的两个结点。当终点为M时,同理增加一个2*n+1结点连接终点拆分之后的两个结点。拆分:若u和v结点状态同时为L或R: 在u和v之间连一条权值为w的无向边。若.

2020-08-03 16:02:04 193

原创 2020杭电多校第三场 1004 Tokitsukaze and Multiple

Problem DescriptionTokitsukaze has a sequence of length n, denoted by a.Tokitsukaze can merge two consecutive elements of a as many times as she wants. After each operation, a new element that equals to the sum of the two old elements will replace them,

2020-08-01 11:04:11 166

原创 组合数学 + 并查集 - Little W and Contest - HDU 6795

题意:就是有两类人,第一类人的能量值为1,第二类人的能量值为2,你要从中选择三个人且加起来的能量值不能小于5而且这三个人必须是互不相识的。还需满足的要求:1.开始时他们互不相识,认识是有传递性的 比如A认识B B认识C 那么A也认识C2.每次输入两个整数,输入之后代表这两个人认识了,输入n-1次,使得最后每个人都互相认识。样例输入:152 2 2 1 14 51 42 13 2样例输出:77300分析:把有关系的放在一个集合通过并查集,并且用两个数组分别记录每一个集.

2020-08-01 10:54:56 83

原创 牛牛晾衣服

二分+贪心题目描述牛牛有n件带水的衣服,干燥衣服有两种方式。 一、是用烘干机,可以每分钟烤干衣服的k滴水。 二、是自然烘干,每分钟衣服会自然烘干1滴水。 烘干机比较小,每次只能放进一件衣服。 注意,使用烘干机的时候,其他衣服仍然可以保持自然烘干状态,现在牛牛想知道最少要多少时间可以把衣服全烘干。题目链接思路:二分查找答案,对每一次二分出的时间进行判断是否可以晾干所有衣服。判断x时间内是否可以晾干衣服:如果第i件衣服的雨水小于或等于x 则直接自然烘干对于第i件衣

2020-07-18 18:09:46 153

原创 AtCoder Beginner Contest 172 D - Sum of Divisors

题目链接题目描述:思路:就采用跟素数筛选法差不多的方法,爆力求解,从2开始一直到n,求出每个数乘以1,2,3…直到乘得的结果小于n,以所得到的结果的数组下标加1,用一个数组记录每个数的因子个数.代码#include <bits/stdc++.h>#define ll long longusing namespace std;int a[10000001];int main(){ ios::sync_with_stdio(0);cin.tie(0), cout.t

2020-07-14 22:22:02 159

原创 素数快速筛选法+埃式筛法+欧拉筛

思路:首先先把所有的奇数都假设为素数,偶数都为合数(除2外),剩下的奇数如果是合数的话,那么该奇数一定是某个比它小的奇数的倍数举例:求n以内的素数首先把 1 3 5 7 9 11 13 15 17…假设为素数然后从3开始一直到n 判断某个数是否为素数,如果为素数就将它依次乘以2,3…所得到的结果(不超过n)置为素数,如果该数不是素数,则不需要进行乘2,3… 因为该数的倍数 会由该数的某个素数因数判断其为合数得来。**代码**#include <bits/stdc++.h>

2020-07-14 21:35:14 277

原创 牛客编程巅峰赛S1赛季第1场 - 青铜&白银局

比赛链接**B - 魔法数字**思路就采用bfs。代码class Solution {public: /** * 返回最后要输出的答案 * @param n int整型 表示牛牛的数字 * @param m int整型 表示牛妹的数字 * @return int整型 */ int solve(int n, int m) { int dist[10001];//记录访问到的数字的步数 queue<int&gt

2020-07-11 11:42:17 84

原创 AtCoder Contest 173 E - Multiplication 4

题目链接**大体思路**N个数取K个数的积最大,分为四种情况第一种:全是正数,则取最大的K个数的积第二种:没有正数,则取最大的K个数的积第三种:有正有负,按照绝对值排列,对最大的K个的值进行判断,如果值为正,则直接输出,如果为负则判断前N-K个数中最大的正数于后K个数中的最小负数交换,将前N-K个数中最大的负数于后K个数中最小的正数交换,比较大小即可某篇博客的解法:#include <iostream>#include <stdio.h>#include &lt

2020-07-08 20:06:17 152

原创 div2贪心+建树

C. Linova and KingdomWriting light novels is the most important thing in Linova’s life. Last night, Linova dreamed about a fantastic kingdom. She began to write a light novel for the kingdom as soon ...

2020-04-16 16:04:35 126

原创 牛客算法周练2 D题 树建立 思维

**D. 小H和游戏**链接:(https://ac.nowcoder.com/acm/contest/5203/D)题目描述小H正在玩一个战略类游戏,她可以操纵己方的飞机对敌国的N座城市(编号为1~N)进行轰炸敌国的城市形成了一棵树,小H会依次进行Q次轰炸,每次会选择一个城市A进行轰炸,和这座城市距离不超过2的城市都会受损(这里距离的定义是两点最短路径上的边数),轰炸结束后,小H还想知...

2020-04-15 11:41:34 113

网络英语听力自主学习模式中教师角色的作用_李忠美.caj

网络英语听力自主学习模式中教师角色的作用_李忠美.caj

2023-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除