• avatar 鬼怪留在从极渊 2021-01-24 22:05:49

    兔子问题-斐波那契数列

    斐波那契数列问题采用递归,m>2 每个月的兔子总数等于前两个月兔子总数之和。while True: try: def f(m)->int: if m==1 or m==2: return 1 e

  • avatar 回归梦想 2021-01-24 22:40:22

    Tree Constructer

    题目: 题意: 如果点x和y有连边,当且仅当a[x] or a[y] = 2^60^ - 1 (两者是充分必要)现在给你边的关系,问你每个点的值应该是多少?(给出一种情况即可) 题解: 构造题,思路非常巧妙2^60^就是(1<<60),减去1也就是从第一位到第59位都是1(第六十位是0

    来自 回归梦想
    00
  • avatar 回归梦想 2021-01-24 22:54:33

    Stone Game

    题意: 有n堆石头,每堆石头最多只有三个石头(最少1个),每两堆石头(这两堆各含石头x个和y个)合一起的费用为(x mod 3) * (y mod 3),现在把所有堆合成一堆,问最小费用题目第一行给出三个数,第i个数表示有i个石头的堆有多少个 题解: 费用是(x mod 3) * (y mod 3)

    来自 回归梦想
    00
  • avatar 回归梦想 2021-01-24 23:09:18

    Fight against involution

    题目: 对抗内卷(大佬经常说别再卷了)有一门课程n个学生选,期末要写一篇论文每个同学写的字数有一个下限和一个上限,课程的成绩是按学生字数的排名来给分的,排名越高分数越高,每个同学都想得到更高的成绩,而且他们都想写最少字数,那么在满足每个同学不能比原计划分数低的情况下求出所有同学总共要写的最少字数。

    来自 回归梦想
    00
  • avatar 鹰格儿 2021-01-24 23:11:51

    弹性布局——Flexible Box

    设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。任何一个容器都可以指定为Flex布局。 .box{   display: flex; } 行内元素也可以使用Flex布局。

    来自 鹰格儿
    00
  • avatar 哪里要我去哪里 2021-01-24 23:28:37

    题解

    while True:     try:         input_ = input()      

  • avatar 回归梦想 2021-01-24 23:31:08

    Xor Transformation

    题目: 给定一个X和Y,对于X每次可以选择一个A(0<=A<X),使得X = X xor A,现在要求在5步内将X变为Y,请输出操作数目,以及每步的A 题解: 我一开始被题目给的样例个迷惑了,以为将Y分解开,然后再加一步X就可以了,但发现想复杂了对于W = (X ^ Y),也就是W,X,

    来自 回归梦想
    00
  • avatar _mew_ 2021-01-24 23:55:31

    算24点 python

    提供一个思路吧排列 + 逆波兰表达式 # 建立一个逆波兰表达式, # A B OP C OP D OP 为合法的逆波兰表达式 # A B OP C D OP OP 也是合法的 """ def calc(ex):

    来自 _mew_
    20
  • avatar 笑江湖2100 2021-01-25 00:09:43

    Java数据结构与算法--运用泛型编程实现自定义可动态伸缩的数组类

    使用java,运用泛型编程,实现一个自定义数组类,此类可以做到动态扩展数组长度和动态释放数组空间,同时可以支持各种数据类型(泛型)自定义类的一个好处是可以根据需求任意去扩充方法,这里开发了一些数组中常见的操作方法 public class Array<E> { private E

    来自 笑江湖2100
    00
  • avatar 新月的光辉 2021-01-25 00:31:28

    在idea实现

    package medium;import com.sun.source.tree.Tree; import java.util.*; class Interval { int start; int end;}public class TreeOfDiam { public static

    来自 新月的光辉
    00
  • avatar Bernard5 2021-01-25 01:07:53

    cpp 优先队列 大顶堆 小顶堆 自定义排序规则 匿名函数 仿函数

    int main() { //大顶堆 std::priority_queue<int >q; // 等同于 std::priority_queue<int,std::vector<int> , std::less<int> >q;

    来自 Bernard5
    00
  • avatar zzqwtc 2021-01-25 01:26:16

    CodeForces - 1463D. Pairs (二分)

    CodeForces - 1463D. Pairs 题意 将 个数,分成 对。其中 对进行取小操作,剩下的数进行取大操作。给你一个 个元素的序列 。问你 可以为多少种数,能得到 数组。 思路 将出现过的数字放在 数组 未出现过的数放在 数组 设 为 最多可以取多少次小 二分求

    来自 zzqwtc
    10
  • avatar CooKing 2021-01-25 01:27:33

    六大排序算法-Python版

    前言 本文记录了我在学习《图解LeetCode初级算法(Python版)》中的六大排序.若有不足,请多指教.由于很多小伙伴在大学学到排序算法是用C语言写的,对我个人而言Python版本会更容易理解排序的思想。本文适合对于各个排序算法有一定基础概念的同学阅读,对于不太熟悉基本排序算法的同学建议可以找一

    来自 CooKing
    22
  • avatar zzqwtc 2021-01-25 01:29:00

    AcWing244. 谜一样的牛 (树状数组+二分)

    AcWing 244. 谜一样的牛(二分) 思路 初始化所有数为1 代表没有用过 从后往前计算 找到还未用过的前k小的数是几 使得sum(x) == k成立的最小x即为答案 然后将这个数置为0 表示已经用过 有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:29:21

    AcWing 243. 一个简单的整数问题2(树状数组实现区间修改+区间查询)

    AcWing243. 一个简单的整数问题2(树状数组实现区间修改+区间查询) a 1 + a 2 + a 3 + a … a x a_{1}+a_{2}+a_{3}+a\dots a_{x} a1​+a2​+a3​+a…ax​ = = == == ∑ i = 1 x ∑ j = 1 i b

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:29:41

    AcWing242. 一个简单的整数问题 (树状数组+差分)

    AcWing242. 一个简单的整数问题() 给定长度为N的数列A,然后输入M行操作指令。 第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。 第二类指令形如“Q X”,表示询问数列中第x个数的值。 对于每个询问,输出一个整数表示答案。 输入格式 第一行包含两个整数N和M

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:30:02

    AcWing241. 楼兰图腾 (树状数组)

    AcWing241. 楼兰图腾 在完成了分配任务之后,西部314来到了楼兰古城的西部。 相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。 西部314在楼兰古城的下面发现了一幅巨大的壁画,

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:30:22

    树状数组原理

    功能: ①快速求前缀和 O ( l o g n ) O(logn) O(logn) ②修改某一个数 O ( l o g n ) O(logn) O(logn) 操作: ①:建树 void add(int x, int c) { //树状数组的插入操作 for (int i =

    来自 zzqwtc
    10
  • avatar zzqwtc 2021-01-25 01:30:43

    树形dp原理

    树形DP 没有上司的舞会 状态表示 f [ u ] [ 0 ] f[u][0] f[u][0] : 所有从以u为根的子树中选择,并且不选择这个点的方案 f [ u ] [ 1 ] f[u][1] f[u][1]: 所有从以u为根的子树中选择,并且选择这个点的方案 状态计算 u u

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:31:04

    状压dp原理

    状压DP 蒙德里安的梦想 求把 N ∗ M N*M N∗M的棋盘分割成若干个1*2的的长方形,有多少种方案。 先考虑横着放的情况 竖着放的自然唯一确定 状态表示 f [ i ] [ j ] f[i][j] f[i][j]表示第 i i i列的每一行小方格被占用的情况 j j j为二进制

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:31:24

    数位dp

    数位统计DP 给定两个整数 a 和 b,求 a 和 b 之间的所有数字中0 ~ 9的出现次数。 假设 n = a b c d e f g n = abcdefg n=abcdefg 计算 d d d位上 x x x出现的次数 r e s res res记录答案 1、 ( 001 — — a

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:31:44

    计数dp原理

    计数DP 整数划分 一个正整数 n n n可以表示成若干个正整数之和 我们将这样的一种表示称为正整数n的一种划分。 现在给定一个正整数n,请你求出n共有多少种不同的划分方法。 完全背包写法 状态表示 类似完全背包 1 ~ i 1~i 1~i分为 i i i个物品 每个物品的体积为 i

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:32:05

    区间dp原理

    区间DP 石子合并 设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:32:25

    线性dp原理

    线性DP 数字三角形 给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 4 4

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:32:45

    分组背包原理

    分组背包 类似多重背包,只是将每件物品选几个变成每组物品选哪一个 状态转移方程 f [ i ] [ j ] = M a x ( f [ i − 1 ] [ j ] , f [ i − 1 ] [ j − v [ i ] [ k ] ] + w [ i ] [ k ] ) f[i][j] = Ma

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:33:06

    多重背包原理

    多重背包 每件物品的个数有限制 朴素算法 与完全背包的朴素算法类似 时间复杂度 O ( N ∗ V ∗ S ) O(N*V*S) O(N∗V∗S) 状态转移方程 f [ i ] [ j ] = m a x ( f [ i ] [ j ] , f [ i − 1 ] [ j − k ∗ v [

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:33:26

    01背包原理

    01背包 每件物品只有一个 朴素算法 分为两种情况:①不选第i个物品 f [ i − 1 ] [ j ] f[i-1][j] f[i−1][j] ​ ②选第i个物品 状态方程可以由 f [ i − 1 ] [ j − v ] + w f[i-1][j-v] + w f[i−1][j−v]+w

    来自 zzqwtc
    01
  • avatar zzqwtc 2021-01-25 01:33:46

    AcWing239. 奇偶游戏

    AcWing239. 奇偶游戏 思路 s i = a 1 + a 2 + ⋯ + a i s_{i} = a_{1} + a_{2} +\dots +a_{i} si​=a1​+a2​+⋯+ai​ 前i个数中1的个数 s [ l − r ] s[l-r] s[l−r]中有奇数个1   

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:34:07

    AcWing238. 银河英雄传说

    AcWing238. 银河英雄传说 有一个划分为N列的星际战场,各列依次编号为1,2,…,N。 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。 有T条指令,每条指令格式为以下两种之一: 1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:34:27

    AcWing237. 程序自动分析

    AcWing237. 程序自动分析 思路 先把相等的合并 再判断不相等是否与已知条件矛盾 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设 x 1 , x 2 , x 3 x_{1},x_{2},x_{3} x1​,x2​,x3

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:34:47

    AcWing1252. 搭配购买 (并查集+01背包)

    AcWing1252. 搭配购买 思路 先分组 再做01背包 Joe觉得云朵很美,决定去山上的商店买一些云朵。 商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。 但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。 但是Joe

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:35:08

    AcWing1250. 格子游戏

    AcWing1250. 格子游戏 Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3)。 接着,他们两个轮流在相邻的点之间画上红边和蓝边: 直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了! 他

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:35:28

    并查集原理

    功能 ①:合并两个集合 void merge(int a, int b) { f[Find(a)] = Find(b); } ②:查询某个元素的祖宗节点 int Find(int x) { return x == f[x] ? x : f[x] = Find(f[x])

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:35:49

    Codeforces Round #689 Div. 2 (A-E)

    A. String Generation 题意 构造一个只包含’a’ ‘b’ 'c’的字符串 此字符串中最大回文子串的长度不超过k 思路 'abcabcabc…'这样输出 可以保证最大的回文子串的长度为1 代码 #include<bits/stdc++.h> using na

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:36:09

    单源最短路的综合应用

    Acwing 1135 新年好 重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。 在一条路径上花费的时间等于路径上所有公路需要的时间之和。 佳佳的家在车

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:36:30

    单源最短路的建图方式

    最短路算法及其时间复杂度 单源最短路 D i j k s t r a Dijkstra Dijkstra O ( n 2 ) O(n^2) O(n2) 堆优化版的 D i j k s t r a Dijkstra Dijkstra O ( m l o g n ) O(mlogn) O(m

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:36:50

    迭代加深-双向DFS-IDAstar

    迭代加深 避免搜索过深 但答案在较浅的位置这种情况的发生 AcWing170. 加成序列 满足如下条件的序列X(序列中元素被标号为1、2、3…m)被称为“加成序列”: 1、 X [ 1 ] = 1 X[1]=1 X[1]=1 2、 X [ m ] = n X[m]=n X[m]=n 3、

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:37:11

    DFS之剪枝

    常用的几种剪枝策略 1.优化搜索顺序 大部分情况下 我们应该优先搜索分支较少的节点 例如 分组问题 可以先从花费较大的元素搜索 可以减少状态分支 2.排除等效冗余 如果不考虑顺序的话 尽量用组合的方式搜索 即与组内元素顺序无关 3.可行性剪枝 在搜索过程中已经检测到不合法 可以提前退出

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:37:31

    DFS之连通性和搜索顺序

    连通性 Acwing 1112. 迷宫 一天 E x t e n s e Extense Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n∗n 的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。 同时当 E x t e n s e Exten

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:37:52

    双向广搜和A-star

    两种算法解决从起点到终点状态过多的问题(BFS剪枝) 双向广搜 双向广搜实际是 B F S BFS BFS的一种剪枝形式 实现方式是 <mark>同时从起点和终点搜索到相遇为止</mark> AcWing190. 字串变换 已知有两个字串 A A A, B B B

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:38:12

    多源BFS-双端队列广搜

    多源BFS AcWing173. 矩阵距离 给定一个N行M列的01矩阵A, A [ i ] [ j ] A[i][j] A[i][j] 与 A [ k ] [ l ] A[k][l] A[k][l] 之间的曼哈顿距离定义为: d i s t ( A [ i ] [ j ] , A [ k

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:38:35

    FloodFill和最短路

    FloodFill AcWing1097. 池塘计数 农夫约翰有一片 N ∗ M N∗M N∗M 的矩形土地。 最近,由于降雨的原因,部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。 现在,约翰想知道他

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:38:56

    组合数部分

    组合数定义 C a b = a ! b ! ( a − b ) ! C^{b}_{a} = \frac{a!}{b!(a-b)!} Cab​=b!(a−b)!a!​ 带模数 数据范围(a 、b较小) 1 ≤ n ≤ 10000 1≤n≤10000 1≤n≤10000, 1 ≤ b ≤

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:39:17

    线段树部分

    线段树基本操作 query() int query(int u, int l, int r) { //查询操作 if (tr[u].l >= l && tr[u].r <= r)return tr[u].v; //树中节点已经被完全包含在[l,r]中 i

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:39:58

    离散化部分

    离散化 ①:要求保序 排序、判重、二分 vector<int>alls; int find(int x){ //二分 int l = 0, r = alls.size(); while(l < r){ int mid = l+

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:40:18

    Codeforces - 1463C. Busy Robot (思维)

    Busy Robot 题意 机器人初始在一数轴上的原点 某时刻接受命令 并朝命令方向前进 每秒前进1距离 在未到达当前命令的终点时 忽略当前时刻的其他命令 若机器人在 [ t i , t i + 1 ] [t_i,t_{i+1}] [ti​,ti+1​] 时间内移动到 x i x_i xi​

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:40:39

    贪心问题选做

    区间问题 区间选点 给定 N N N个闭区间 [ a i , b i ] [ai,bi] [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数N,表示区间数。 接下来 N

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:40:59

    Codeforces Round #644(Div. 3) A-H

    A - Minimal Square 题意 给两个完全一样的矩形(平行且不重叠) 求能覆盖两个矩形的最小正方形的面积 思路 只有两种摆放方式 将两个矩形上下并列或者左右并列 得到的新图形 长或者宽是之前的二倍 判断一下并排之后的图形长和宽的最小值即可 #include<bits/s

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:41:20

    AcWing 846. 树的重心

    AcWing 846. 树的重心 给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 输入格式

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:41:41

    Trie(字典树)

    AcWing 835. Trie字符串统计 #include<iostream> using namespace std; typedef long long ll; typedef pair<int, int> PII; const int N = 1e5 + 10;

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:42:01

    哈希与字符串哈希

    字符串哈希 AcWing841. 字符串哈希 #include<iostream> #include<cstdio> #include<queue> #include<string> #include<map> #include<

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:42:42

    HDU 1166-敌兵布阵

    HDU 1166-敌兵布阵 题意: 给一个数组,有查询、增加、减少三种操作 对于每次询问 输出从i到j所有元素的和 思路:树状数组裸题 特别的 对于减少操作 只需向x位置更新-y即可 #include<iostream> #include<cstdio> #incl

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:43:03

    Codefroces 1033C. Permutation Game

    C. Permutation Game 题意: 一个线性的棋盘,上面有n个格子编号为1-n,当棋子所在位置满足以下情况时,可以移动 1.新格子的数值必须严格大于旧格子 2.移动的距离必须是旧格子中数字的整数倍 谁不能采取行动,谁就输了,即当前棋子位于一个不能移动的位置 求哪些出发格子可以使Ali

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:43:24

    Codeforces Round #636 (Div. 3) A-D

    A. Candies 题意 给定一个整数,判断是否存在 思路 先对公式进行预处理 明显是一个等比数列 化简后得到 因为答案一定存在 所以用快速幂从小到大枚举即可 #include<iostream> #include<cstdio> #include<que

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:43:46

    POJ 1182-食物链

    POJ 1182-食物链 题意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是&q

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:44:06

    POJ 2431-Expedition

    POJ 2431-Expedition 题意: 开车前往一个距离为l的城市,途中有n个加油站,每行驶一个单位的距离就会消耗一个单位的汽油,每到一个加油站都可以加油,问是否能到达目的地,能到达的话,最少需要加多少次油。 思路: 衷心提醒大家仔细看题!!!!!! 输入的距离不是距起点的距离,而是

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:44:27

    Codeforces Round #630(div2) A-C

    这一场div2只A了两题 竟然加了70多分orz(肯定是基础分太低 A.Exercising Walk 题意: 向左走a步,向右走b步,向下走c步,向上走d步,问能否在执行所有操作的过程中始终处于题目给的范围内 思路: 只需判断同方向移动步数的代数和是否满足条件即可,注意特判下x1 ==

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:44:47

    LIS(最长递增子序列)

    算法:动态规划+二分查找 时间复杂度:O(nlogn) #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<map> #inc

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:45:08

    LCS(最长公共子序列)

    给出两个字符串 求其最长公共子序列 #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<map> #include<cs

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:45:29

    SPFA(队列优化的Bellman-Ford算法)

    SPFA(Shortest path faster algorithm) 算法思想基于Bellman-Ford算法 进行优化的方式是 在进行某一次松弛操作中 如果起点到一个点的距离不变 那么以这个点为中转点能到达的点距起点的距离不变 如果这个点的距离发生了变化 就将这个点入队列 以求通过这个点中转

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:45:49

    Bellman-Ford

    Bellman-Ford算法用于求单源最短路包含负权边的问题,还可以检测图中是否有负环 #include<bits/stdc++.h> #define INF 0x3f3f3f3f #define mod 1000000007 #define IOS ios::sync_with_st

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:46:10

    最短路之Dijkstra+堆优化(单源最短路)

    优先队列实现对Dijkstra的优化 求单源最短路 #include<bits/stdc++.h> #define INF 0x3f3f3f3f #define mod 1000000007 #define IOS ios::sync_with_stdio(false) #define

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:46:30

    最短路之Floyd算法

    Floyd算法不能判断负环 算法思路 判断是否可以通过中转点 k 使 i 到 j 的距离减小 如图 设i-j为100 i-k为40 k-j为40 显然通过k的中转 从i到j所耗费的路程变短了 #include<bits/stdc++.h> #define INF 0x3f3f3f3f

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:46:51

    最小生成树之Prim算法+堆优化

    #include<bits/stdc++.h> #define INF 0x3f3f3f3f3f3f3f3f #define mod 1000000007 #define IOS ios::sync_with_stdio(false) #define endl '\n' using n

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:47:12

    最小生成树之Kruskal算法

    具体做法: 首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止。 把所有边按权值从小到大排序 遍历每条边 如果这条边的两个顶点一个在树内一个在树外 则将顶点入树 保证了每条边的权值都是最小的 最终得到的树即为最小生成树

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:47:33

    最小生成树之Prim算法

    #include<bits/stdc++.h> #define INF 0x3f3f3f3f #define mod 1000000007 #define IOS ios::sync_with_stdio(false) #define endl '\n' using namespace

    来自 zzqwtc
    00
  • avatar zzqwtc 2021-01-25 01:47:53

    邻接表

    邻接表的数组实现 #include<bits/stdc++.h> #define INF 0x3f3f3f3f3f3f3f3f #define mod 1000000007 #define IOS ios::sync_with_stdio(false) #define endl '\n

    来自 zzqwtc
    00
  • avatar 熠丶 2021-01-25 04:27:24

    [HAOI2006]均分数据

    做法:随机+贪心 思路: 是个定值,可以先用tmp存下来 只需求即可 我们可以用random_shuffle()用来对原数据进行重新排序,然后利用贪心的思想(每次把数加在最小的组里),即可满足均方差最小。 用while ((double)clock()/CLOCKS_PER_SEC<

    来自 熠丶
    10
  • avatar 摸鱼的Fisher 2021-01-25 04:28:17

    nc16669 明明的随机数 桶排解

    直接桶排。O(n) #include <cstring> using namespace std; int a[1010]; int main() { int n = 0, count = 0; cin >> n; memset(a, 0, sizeo

    来自 摸鱼的Fisher
    00
  • avatar 摸鱼的Fisher 2021-01-25 05:21:56

    nc16438 回文日期 枚举

    穷举月和日,构造回文日期,再判断日期的合法性与是否符合范围要求。 #include <iostream> using namespace std; int md[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 }; bool check(int

    来自 摸鱼的Fisher
    00
  • avatar 摸鱼的Fisher 2021-01-25 05:41:06

    nc16649 校门外的树 差分

    差分,tr[i]为0则说明有树。 #include <iostream> #include <cstring> using namespace std; int tr[10010]; int main() { int l, m; memset(tr, 0, s

    来自 摸鱼的Fisher
    00
  • avatar 潍坊鲨鱼公园儿童大学 2021-01-25 08:30:26

    吃瓜群众

    告诉你西瓜的重量,问你能否将这个西瓜分成两部分,每个部分都是偶数.分成两部分,每部分都是偶数,这两部分不必满足相等的条件,只需满足是偶数的条件即可偶数可以表示成 2n = 2 + 2(n - 1) 的形式,2 是偶数,2(n - 1)也是偶数,所以只要是偶数都可以分解成两个偶数之和。当然,本题中偶数

  • avatar 潍坊鲨鱼公园儿童大学 2021-01-25 08:36:22

    魔法数字变换

    #include <iostream> using namespace std; int main() { int num; cin >> num; int step = 0; while (num != 1) { // 为

  • avatar 潍坊鲨鱼公园儿童大学 2021-01-25 08:40:39

    幸运数字7

    #include <iostream> using namespace std; int main() { int num; cin >> num; int sum = 0; for (int i = 1; i <= num; i++

  • avatar 求求offer快来吧~ 2021-01-25 08:54:17

    剑指美团-21

    算法这是昨天的算法题,只把每日一题做了,然后做了一道剑指offer的题。 1、674 最长连续递增序列 2、剑指offer 44 数字序列中某一位数字 面试知识以下是昨天的面试点知识: 1、进程调度算法那 2、线程切换和进程切换的区别 其他先贴一哈这十来天做的东西吧。算法算法的话,这十

  • avatar WX13823153201 2021-01-25 09:57:17

    智慧公安流动人口信息管理平台开发,重点人员管控系统建设

    智慧公安流动人口信息管理平台开发,重点人员管控系统建设流动人口信息管理平台依托多级广域网络、以大型集中分布式数据库为平台,借助各种通讯技术,实现流出地、流入地的信息完全对称与及时交互,支撑和协同现有的各类流动人口计划生育管理模式,实现人户分离管理同步化,服务现居住地化,外来人口管理与服务本地化。流动

    来自 WX13823153201
    00
  • avatar 馒头2020 2021-01-25 10:02:11

    2021/1/25 求路径

    题目描述 一个机器人在m×n大小的地图的左上角(起点)。机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内 示例1 输入 2,1 返回值 1 示例2 输入 2,2 返回值 2 解题思路 动态规划

    来自 馒头2020
    00
  • avatar 刘旷 2021-01-25 10:36:03

    荣耀再长征

    配图来自Canva可画 脱离母体华为后,荣耀终于在22号有了新动作,发布了包括荣耀V40系列在内的诸多新品。 值得揣摩的是,CEO赵明并没有在发布会上介绍新机所采用的芯片及其参数,只在PPT中放了张MTK天玑1000+的图片,这也引起了外界的诸多猜测。 天玑1000+是2020年5月MTK发布的5G

    来自 刘旷
    02
  • avatar ACoderr 2021-01-25 11:00:32

    题解

    暴力解法 暴力遍历一遍, 比较简单易懂 利用题目条件进行快速搜索方法 每次循环遍历的时候加Math.abs(A[i]-t) 能够加快搜索速度 import java.util.*; public class Solution { /** * 找出给定数据位置 * @p

    来自 ACoderr
    00
  • avatar 回归梦想 2021-01-25 11:22:35

    P3389 【模板】高斯消元法

    P3389 【模板】高斯消元法 题目: 给定一个线性方程组,对其求解 题解: 还没接触高斯消元时以为是什么神仙算法,接触后发现。。。就是把我们手算线性方程组的方法,写成了代码emm。。。比如: x-2y+3z=6 4x-5y+6z=12 7x-8y+10z=21 化为矩阵 1 -2 3 6 4 -5

    来自 回归梦想
    00
  • avatar 张绍帅 2021-01-25 11:27:56

    Java 多线程

    Java 多线程编程 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个

    来自 张绍帅
    00
  • avatar 牛客648711727号 2021-01-25 11:52:28

    K-th Number

    Problem: a 数组中大于等于 k 个元素的区间中取出第 k 大放入到 b 数组中,最后求 b 数组的第 m 大 Solution: 二分答案ans(b 数组中的第 m 大),然后用ans去检验a数组中是否存在大于等于 m 个区间满足第 k 大大于等于ans,存在则表示ans还可以更大一点,

  • avatar 回归梦想 2021-01-25 12:16:19

    Matrix Equation

    题意: 题目给出两个矩阵X,Y,现在有两种操作Z = X × YD = X⊙Y问是否存在一个矩阵C,使得A×C=B⊙C式子成立,问矩阵C能有多少个 题解: 这个式子在模2意义下的加法就等于异或也就相当于那现在有将BC移到左边然后将Ci,j的系数进行合并得到:aik =Aik A i,i = = B

    来自 回归梦想
    20