• avatar YZBPXX; 2019-08-09 20:46:20

    CF Good Substrings

    题目描述:给你一个只包含小写字母的字符串,每个字母有好坏之分 在第二行输入,现在让你选出有多少子串是好串; 分析: 既然是要用hash,那么用朴素的方法是各种T  这里借用分析下字符串hash             对每个字母看成是某进制转换过来的数,那么这个串所对应的十进制数就应该是

    来自 YZBPXX;
    00
  • avatar 糖醋盐明清 2019-05-28 16:18:45

    Hdu-1828~(扫描线 + 周长)

    扫描线扫描周长   扫描线扫描周长比扫描面积要麻烦一些,需要解决的问题有两个   1.如何统计每条横线( 也就是平行于x轴的线段的长度 )   2.如何统计每条竖线( 也就是平行于y轴的线段的长度 ) 如图   我们发现每次扫描线扫描后投影到根节点的总长度与上次扫描所投影的   总长

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-05-27 14:41:26

    扫描线

    扫描线用于求多个不规则多边形相交的问题。 例如给你如下图,让你求该图的总面积 为了解决此类为题,我们引入了 扫描线 的概念.   扫描线是我们脑海中假象的一根线,它能够按照一个方向来扫描图形得到我们想要的信息;   例如具体到本次问题,那么扫描线的作用可以概述为:扫描线从按平行于x轴的方

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-05-27 10:52:02

    README

    2019.5.26 Hdu_6288  此题整体思路就是二分,但是难点不是在二分上  难点是判断a的b次方是否溢出。我们可以先求出a的b次方,再利用快速幂得出  a的b次方模1e9 + 7的结果,然后该值与a的b次方模 1e9 + 7 比较,相同说明  没有溢出,不同说明溢出  需要注意

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-03-24 17:42:51

    第十届蓝桥杯 省赛A组 E RSA 解密

    这个题应该是填空题中最难的一个了。 思路很简单,但是你需要一点python的基础 讲一下本题的思路。 首先我们要对公钥中的n进行质因子分解,得到p,q。然后根据 d * e %((p - 1) * (q - 1) == 1和扩展欧几里得 求出e。 RSA是一种不可逆的加密方法,不可逆的原因

    来自 糖醋盐明清
    00
  • avatar 视觉SLAM 2019-08-09 20:47:22

    找工作必备LINUX基础之进阶

    一、程序创建 二、程序调试 1.GDB常用命令 $gdb programmer  //启动gdb >break main   //设置断点 >run          //运行调试 >next          //单步调试 >print var1   //调试过程中,我们需

    来自 视觉SLAM
    00
  • avatar 糖醋盐明清 2019-03-10 18:54:26

    关于数据对拍

    数据对拍是一种通过找到错误输出数据寻找bug的方法; 首先,我们可以跟据题意通过bfs,暴力等方法写出一份正确的代码,然后写个随机生成数据和验证输入输出的代码 我们可以拿一道题来熟悉这个流程: 路径规划(route) 题意很好理解,就是给出起点,和终点,求出起点到终点的所需的步数,其中上下左

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-02-26 11:57:02

    stl-vector

    #include<vector> #include<algorithm> #include<iostream> #define iter vector<int>::iterator using namespace std; int main() { /

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-02-26 11:55:50

    stl-string

    #include<string> #include<algorithm> #include<iostream> using namespace std; int main() { //一。初始化 string str1("123456",2,

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-02-19 01:44:19
    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-02-15 19:19:39

    算法回顾

    1.   二分  二分简单理解poj3258 2.   快速排序                hdu_1425 3.   搜索 (1)广搜     (2)深搜               深搜(2019CampWinterDay3A,博客链接)    广搜(三个水杯) 4.    std

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-01-24 13:23:08

    关于写算法题的一些收获

    1.在读题思考的过程中,如果有思路(绝对)正确,就把它记录下来。(不管暂时能不能用上)。 2.碰到找不出来的bug,就造出一个比较大的数据,代入代码里面一步一步调试。 3.训练准确读题的能力,从题中提取信息,把这些信息抽象成能用准确语言(如方程式,关系)表达出来 4.用vim写代码

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-01-21 13:06:50

    CCPC-Wannafly Winter Camp Day1 F 爬爬爬山(最短路+思维)

    题目链接 大致思路: 刚开始做的时候怎么也做不对。在寻找最短路的过程中会对如何降低山的高度有影响。一直在想如何找出两者之间的联系。 所以就一直错。后来经过一位学长提醒,我们只需要关注比1号山高k的山。因为我们有可能降低这些山的高度。比1号山低 的山我们其实是不需要关注的,因为虽然下山增加

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-01-12 20:21:20

    关于结构体的构造函数

    为了方便结构体的初始化我们需要在结构体内写构造函数; 如下: #include<stdio.h> struct node { int x,y; node(){}; node(int a,int b) : x(a), y(b) {}; }; int main() { no

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-01-11 18:03:48

    二分简单理解

    在写题中经常遇到一些需要用到二分策略的题。 这些题有些简单有些比较难。但是他们都遵循一些简单的原则。 1.大部分题都是二分答案。 2.将答案带入问题过程,由这个过程产生的信息与题目中给出的已知信息比较,确定下次的二分的区间。 3.确保在这个过程中区间能不断缩小。 例题讲解: POJ-32

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2019-01-11 18:03:01

    POJ-3122~Pie(二分)

    题目链接 题目大意: 有n个蛋糕,每个蛋糕有个半径。我们需要把这些蛋糕分给F + 1个人。F+1个人分得得蛋糕的大小必须 是一样的(形状可以不一样)。分得的蛋糕可以由原来的蛋糕切割下来的,但不能是由几个蛋糕拼凑而成。 求如何切才能使分得的蛋糕大小最大。只用输出最后分得的蛋糕的面积即可

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-30 14:35:05

    HHU暑期第一弹——小小小数论(欧拉函数+埃式筛法+分解质因数+欧几里得算法+扩展欧几里得算法和模线性方程)

    第一弹数论的主要内容有以下几部分:欧拉函数、埃式筛法、分解质因数、欧几里得算法、扩展欧几里得算法和模线性方程。 1、欧拉函数(连续求n个数的欧拉函数) #include<iostream> using namespace std; int main() { int phi[1

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2019-03-24 15:02:16

    第十届蓝桥杯省赛 A组 C最大降雨量(思维)

      注意读题,求的不是七周中位数的和,而是七周中位数的中位数的最大值 如图 a,b,c,x,e,f,g分别是每周的中位数。 而x是a,b,c,x,e,f,g是这七周的每一周的中位数的中位数 题目的要求是让我们最大化这个x; 我们可以假定x已经是我们要求的值,那么为了让x符合题目信

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-30 11:15:16

    HDOJ 2824 The Euler function (欧拉函数)

    The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5502    Accepted Submissi

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2019-01-11 17:15:28

    POJ - 3258~River Hopscotch(二分)

    题目链接 题目大意: 在一条河的起点和终点之间有N块石头,起点和终点上也有石头。农夫可以移走M块石头(不包括起点和终点)使得 移走的每两块石头(包括起点和终点)的最短距离最大。求这个值。 大致思路: 我们可以二分这个最短距离,然后求出如果这个是最短距离,我们需要在原来的基础上去掉几

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-30 10:24:09

    HDOJ 1576 A/B(数论整除)

    题目:A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4259    Accepted Submission(s): 3283

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2019-01-10 18:17:15

    Educational Codeforces Round 44-C. Liebig's Barrels(简单贪心+思维)

    题目链接 题目大意:给你n * k 个木板,让你组成有n个木桶,每个木桶有k个木板。每个木桶的体积 是这个木桶的木板中最短的那个。并且任意两个木桶的体积的差必须<=l。 求如何组装才能使n个木桶的体积和最大。输出体积和。 解题思路: 首先我们先将所有的木板从小到大分成n个块。如果我们

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-29 20:03:12

    ACM常用经典算法

    时间复杂度(渐近时间复杂度的严格定义,NP问题,时间复杂度的分析方法,主定理)  排序算法(平方排序算法的应用,Shell排序,快速排序,归并排序,时间复杂度下界,三种线性时间排  序,外部排序)  数论(整除,集合论,关系,素数,进位制,辗转相除,扩展的辗转相除,同余运算,解线性同余方程,

    来自 Vodkazy
    00
  • avatar Vodkazy 2016-07-29 19:57:36

    ACM中常见错误对应表

    Waiting:你的程序刚刚提交,正在等待OJ评测你的程序。   Compiling:OJ正在编译你的程序。   Accepted:OK!你的程序是正确的 ^_^。   Wrong Answer:你的程

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2019-01-04 00:23:02

    CodeForce Round #484 C - Cut 'em all!s(贪心 + dfs)

    题目链接 题目大意: 给你一个树,你可以通过切割某多条边来制造多个连通块。问你最多到可以切几条边使得偶数大小的连通块最多且剩下 的连通块的大小都为偶数; 解题思路: 用dfs遍历每一颗子树,如果这颗子树大小是偶数,说明可以切这棵子树和它父亲结点相连的那条边。如果是奇数则不切 代码

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-12-26 15:41:46

    CodeForce Round #484 B - Bus of Characters(思维+栈)

    题目链接   题目大意: 公交车有n排座位,每排的座位有两个,且这两个座位的宽度一样。任何两排座位的宽度度都不一样。 首先给你一个n,接下来给你n个数字代表第i排座位的宽度。然后给你一个01字符串代表乘客上车的 顺序。0和1分别代表内向的人和外向的人。内向的人会从没有人坐的那几排选出一

    来自 糖醋盐明清
    00
  • avatar ztranscript 2019-08-09 20:49:35

    NowCoder 广告屏幕

    题意及思路 题意:将长和宽无限接近,找到宽最大能满足总像素的要求即可。 思路:😊第一步,对x开根号,记为k。😉第二步,宽从k开始取,直到总像素n能除尽即可输出。 代码 #include <iostream> #include <cmath>

    来自 ztranscript
    00
  • avatar Vodkazy 2016-07-29 18:23:24

    各算法复杂度大全

    图例 绝佳 不错 一般 不佳 糟糕   数据结构操作 数据结构 时间复杂度 空间复杂度   平均 最差 最差

    来自 Vodkazy
    00
  • avatar Vodkazy 2016-07-29 16:32:38

    二叉树、平衡二叉树、完全二叉树、满二叉树

    基本概念 结点的层次(Level)从根开始定义,根为第一层,根的孩子为第二层。 二叉树的高度:树中结点的最大层次称为树的深度(Depth)或高度。   二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2018-11-14 19:54:25

    2017CCPC秦皇岛A题~ZOJ - 3981~Balloon Robot

    题目链接 大意: 有一个长度为m的圆形桌子,有n支队伍。然后有p次ac。每次ac给出ac的队伍编号和ac的时间。 有一个专门发放气球的机器人,他按照顺时针的方向绕着圆形桌子,一秒移动一个座位。当他移动 到第i个位置的时候,他会给下一个位置发放气球。发放气球的数量是该座位上次放气球的时间到

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-29 16:14:37

    欧几里得算法和扩展欧几里得算法

    欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明:       a可以表示成a = kb + r,则r =

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2018-11-03 21:17:39

    HDU- A Simple Math Problem(数论)

    题目链接 题意就是给你一个a,b。并且有x + y = a 且 lcm(x,y) = b, 让你求x,y; 大致思路就是根据规律推出公式: 设g = gcd(a,b) 那么有g * K1 = x,  g * K2 = y, 且 k1 和 k2 互质; 由K1 和 K2 互质可得  K1 *

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-29 10:10:06

    树状数组 和 归并排序 求逆序数

    树状数组,具体的说是 离散化+树状数组。这也是学习树状数组的第一题. 算法的大体流程就是: 1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的, 2.接着,运用树状数组的标准操作来累计数组的逆序数。 算法详细解释: 1.解释为什么要有离散的这么一个过程?     刚

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2018-10-18 09:45:17

    HDU - 4081(次小生成树 + DFS)

    题意要求a/b的最大值。 其中a是任意两点的点权和,b是除去这两点剩下的最小生成树的值。 我们可以先求出最小生成树,然后不断删边,然后求出删去这条边后的剩下的点的最小生成树的值(联想到次小生成树)。 删边的过程可以用dfs枚举。 代码如下啊: #include<stdio.h>

    来自 糖醋盐明清
    00
  • avatar Vodkazy 2016-07-28 10:52:08

    后来涨了些姿势

    1、printf sacnf 需要导入stdio.h包。 2、while(scanf(“%d”,&n)!=EOF)表示一直处于输入状态,在本机对话框里结束输入的话要先摁Enter再摁Ctrl+Z最后再摁Enter键结束输入。 3、调用system("pause")

    来自 Vodkazy
    00
  • avatar 糖醋盐明清 2018-10-18 08:23:07

    次小生成树模板

    整体思路就是将没有用过的边插入最小生成树中,会形成一个环,我们去掉这个环中最大的那个边,会得到一个新的 生成树,次小生成树就是新的生成树中最小的那个。我们用一个数组maxx来记录最小生成树中两点之间最大的权值。 用connect数组表示边是否加入最小生成树中,代码如下: #include&l

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-10-11 15:21:38

    HDU - 2489(枚举+最小生成树)

    通过dfs枚举所有点集合的情况,然后对这些点进行prim求的最小生成树。 然后将边权和点权的比以及点集合存在到一个结构体数组里面,然后先对边权和点权的比进行排序, 如果相等的话就按点集合的字典序排序即可; 代码如下: #include<stdio.h> #include<

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-10-09 13:46:57

    字典树模板

    #include<stdio.h> #include<string.h> const int INF = 40005; int tire[INF][26], sum[INF], tol = 1; void insert(char* data,int rt); void fin

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-10-05 21:07:19

    HDU - 1811 (并查集 + 拓扑排序)

    读题可以知道当成环的时候会有冲突,当不止有一个拓扑排序的时候信息不完全。 当有相等的时候可以用并查集把他们当成一个节点来处理; 代码如下: #include<stdio.h> #include<string.h> #define mmset(a,b) memset(a

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-09-27 23:27:48

    用循环不定式来证明冒泡排序的正确性

    循环不定式可以用来证明一个算法的正确性: 比如我现在有一个算法A,我要证明它的正确性:步骤如下: 第0步:定义循环不定式; 第1步:证明循环不定式在算法开始的时候是正确的; 第2步:证明循环不定式在算法每次迭代(循环)的时候是正确的; 第3步:证明循环不定式在算法结束时是正确的; 以下是

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-09-13 00:51:19

    学习计划

    如图

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-09-03 23:22:58

    图论-最小生成树

    最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出;   一:kruskal(克鲁斯卡尔) 将图中的每条边按从小到大排个序。然后按这个顺

    来自 糖醋盐明清
    00
  • avatar Reddoge 2019-08-09 20:51:49

    Linux系统MySQL8安装手册

    Linux-Mysql8安装手册: 环境说明: 操作系统:SuSE LinuxMysql:mysql-8.0.11 基本命令: 启动: service mysql start/restart停止: service mysql stop查看状态: service mysql status下载mysql

    来自 Reddoge
    10
  • avatar 糖醋盐明清 2018-08-23 12:10:44

    oj造数据

    关于oj造数据主要用到的就是随机函数和文件流 1.随机函数是rand(),头文件为<cstdlib> 用法: int res = rand()%b + a; res是从a开始(包括a)连续数b个数这个区间中的一个随机数,( res = [a,b) ); 需要注意的是如果不设置随

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-08-09 14:29:02

    线段树 001- 概述

    线段树就是一个能高效维护动态区间的一个数据结构; 他能把一个区间分成多个区间,这些区间根据它们的之间的关系形成一个树形结构。 这个过程可以构建出一颗完全二叉树。 其中线段树的操作有:         1.修改         2.查询 比如我们现在要维护一个长度为n的区间的和,那么当n

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-12-25 14:26:55

    CodeForce Round #483 C.Finite or not?(数论gcd)

    题目链接 题目大意是: 给你三个整数,p,q,b。其中p/q是个分数。该题目要求你给出p/q在b进制下是否是个无限小数。 解题思路: 首先我们需要知道小数转化为二进制。假定有分数a/b(a<b),要将它转化为k进制。我们需要取a * k / b为第 一位。然后让a = a * k

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-09-02 22:20:49

    图论-最短路总结

    一:迪杰斯特拉(Dijkstra)算法        Dijkstra算法是单源最短路算法。他能求出一个点到其他点的最短距离。这个点叫做源点; 他的主要思路就是将所有顶点分为两部分,一部分是点集合是Q,剩下部分点集合是P;其中Q集合的点到源点的最短距离 已经求出来,P集合是待求到源点最短距离的

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-08-31 06:32:58

    ac自动机(字符串的多模式匹配)

    前面已经说过kmp是一种字符串匹配算法。就是给你一个模式串p,和一个主串m。让你找出p在m中的位置; ac自动机与kmp类似,也是一种字符串匹配算法。与kmp不同的是,kmp是单模式的字符串匹配算法。 而ac自动机是多模式的字符串匹配算法。也就是给你n个模式串p1,p2,p3.......pn,

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-08-22 18:25:02

    线段树002-区间修改

    接下来讲解一下区间修改: 在线段树001-概述中讲了单点修改,现在又增加了一种操作将区间x~y的值修改为v; 比如在下面这个图中我要将1~5区间的值全都改为v; 正常人的思维是把1~5这个区间的修改看成对点1,2,3,4,5的单点修改;但这样的复杂度是nlog(n)是比较高的; 我们换

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-21 17:58:11

    浅谈动态规划优化

    动态规划是解决多阶段决策最优化问题的一种思想方法。 有时动态规划的时间复杂度过高,需要我们对动态规划进行优化。 对动态规划进行优化的普遍方法是重新定义阶段,我们用一个例子来加以说明: 鹰蛋问题: 有一堆共 M 个鹰蛋,一位教授想研究这些鹰蛋的坚硬度 E。他是通过不断从一幢 N 层的楼上向下

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-15 16:14:10

    关于精度的问题

    在一些问题中经常会遇到一些关于精度的保留; 1.要求保留小数后n位小数:代码如下 #include<stdio.h> int main() { double num = 1.123456789; int n = 6; printf("%0.*lf\n",n,nu

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-14 17:17:28

    stl-二分找上下界

    下面介绍两个函数用来查找一个有序序列关键字的上下界 upper_bound返回第一个大于的元素的下标;  lower_bound返回第一个大于或等于元素的下标; 代码如下: #include<stdio.h> #include<algorithm> using na

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-13 11:21:12

    位运算及常用的功能

    注:在涉及到位运算时,一定要注意位运算的优先级。该加的括号一定要加 在计算机中,cpu只能接受二进制的数据和指令;接下来就学习一下二进制的运算——位运算 二进制的运算有: 按位与 & 按位或 |   按位异或 ^ 按位取反 ~ 左移<< 右移>>

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-10 10:01:44

    stl-map

    map: map的功能: 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。 快速插入Key -Value 记录。 快速删除

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-06-30 16:30:31

    动态规划专题-背包讲解

    1. 01背包     问题描述:         有n件物品和一个容量为v的背包。放入第i件物品的占的空间为Ci,得到的价值是Wi,求解将哪些物品装入背包可以          使得总价值最大;         首先要明白这个问题不能用贪心来做,因为当前的选择会影响到以后的选择,也就是说当

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-06-28 21:12:52

    动态规划框架讲解

    1.首先要明确动态规划的概念;     1.动态规划是一个思想,而不是一个特定的算法。     2.动态规划作为一种思想通常用来解决最优解的问题; ———————————————————————————————————————————————————— 2.解题框架     可以用动态规划

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-06-28 18:15:45

    c从标准输入流读取一行的的方法

    int main() { char data[1000]; while(gets(data)) { int len = strlen(data) ; printf("%s %d\n",data,len); } return 0; }

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-05-15 17:51:12

    优先队列的实现(基于堆)

    #include<stdio.h> struct PriorityQueue { int data[10000]; int length = 0; //保持以index为结点的堆的最大性质 int heaplfy(int index) { int least = ind

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-05-10 16:59:25

    spfa+多重约束

    普通的spfa只是用来求单源最短路(也就是边权和最小),是通过不断松弛边权来求的。 但是在一些情况需要求点权和最大或最小的情况(或者是其他的约束条件) 我们只需要根据条件加几个约束条件就行 以下是例题: L2-001. 紧急救援 时间限制:200 ms

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-05-01 18:19:01

    快速幂及矩阵快速幂

    快速幂 #include<stdio.h> #define ll long long ll FastPower(ll a,ll b,int mod); int main() { ll a, b , mod; s

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-05-01 17:22:04

    全排列函数

    #include<algorithm> #include<stdio.h> using namespace std; int main() { int a[9] = {9,8,7,6,5,4,3,2,1}; sort(a,a+9);  

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-26 16:24:34

    凸包详解

    首先讲解一下凸包的概念 用比较抽象的说就是: 在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点 (X1,...Xn)的凸组合来构造. 简单来说: 给你一个点集Q,你可以把Q中的每个点想象成一块木板上的铁钉,而点集Q的凸包就是包围了所有

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-25 21:16:54

    凸包模版

    凸包详解:点击打开链接点击打开链接 #include<stdio.h> #include<algorithm> #include<math.h> using namespace std; const int INF = 50005; struct

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-24 20:36:31

    二分图匹配(匈牙利算法及其讲解)

    点击打开链接 #include<stdio.h> #include<string.h> const int INF = 505; int dfs(int u); //搜索以u点为起点的增广路经,如果能搜到返回1,不能返回0; int edge[INF][IN

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-24 20:26:06

    KMP模版(输出多个匹配)

    #include<stdio.h> #include<string.h> const int INF =1000005; /* 3 BAPC BAPC AZA AZAZAZA VERDI AVERDXIVYERDIAN Sample Output 1 3 0 */ int n

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-24 20:13:16

    prim模版(输出边)

    #include<stdio.h> #include<string.h> const int INF = 0x3f3f3f; const int N = 105; /* 简述prim过程 1.初始化最小生成树(最开始只有一个点,这个点可以是任意一个点) 2.维护最小生成树,

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-16 09:05:43

    状态压缩dp(状压dp)

    注:在涉及到位运算时,一定要注意位运算的优先级。该加的括号一定要加 状压dp是一类比较难理解的dp; 在讲状压dp之前,我们应该清楚所有的dp是解决多阶段决策最优化问题的一种思想方法; 请注意多阶段这三个字: 经过前面三种背包的学习,可以发现如何定义状态是解决动态规划最重要的一步; 状态的

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-07-10 21:21:20

    stl-set

    set是一个能储存单键的容器; 它最大的特性就是那个键最多出现一次; 一 set有很多操作 1.构造 2.插入 3.遍历 4.查找和读取 5.删除 #include<stdio.h> #include<string.h> #include<strin

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-05-01 16:24:46

    RMQ的ST解法

    详解请看https://blog.csdn.net/u013377068/article/details/79900343 #include<stdio.h> #include<algorithm> using namespace std; const int INF

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-18 13:35:42

    三种博弈

    首先来说博弈论的具有的共性:奇异局势(必败态),非奇异局势(必胜态); 奇异局势:是指任何一个人面对这种局势,最后都会失败。(只要对手一直是正确操作); 非奇异局势:是指任何一个人面对这种局势,最后都会成功。(只要自己一直都是正确操作); 为了方便理解,我用必败态和必胜态来代替: 1.对必胜态的正确

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-16 14:38:05

    矩阵快速幂

    在讲解矩阵快速幂之前我先来讲解一下快速幂 主要是为了了解快速幂的思想。 快速幂: ———————————————————————————————————————————— 快速幂解决的是求 n ^ k 的值的问题; 需要注意的是这里的k非常大,往往是1e7之上的。(这里假设最后求得的值不会溢出);

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-11 10:48:26

    匈牙利算法

    首先来说明一下匈牙利算法是解决什么问题的 简单来说匈牙利算法是寻找通过增广路,并通过扩展增广路找出二分图的最大匹配数的算法。 从上面一句话我们可以得到几个关键词,二分图,二分图的匹配,二分图的最大匹配数,增广路。 接下来我会一一解释这几个关键词(概念)的具体含义; 二分图:            二

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-11 10:12:44

    poj 2586 Y2K Accounting Bug

    点击打开链接 这道题难在理解题意,只要理解题意,这道题基本上就没什么难点了 题意: 有一家名为MS的公司,他们连续5个月发布一次公司的盈余状况(所以一年应该发布8次),并且在这一年的每一 个月的盈利和亏损是一个特定的值s和d。(意思是每个月盈利状况是特定的,要么盈利s元,要么亏损d元)。并 且知道没

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-11 08:39:52

    poj 2110 Mountain Walking(二分 + 枚举 + bfs)

    点击打开链接 该题的大致题意: 给你一个N * N的海拔分布图, 此时农民John在(1,1)处, 而他的度假小屋在(N,N)处, 现在他想要从(1,1)处 找出一条到达(N,N)处的路径,这条路径应该满足这样的要求:最高海拔和最低海拔的差值最小。并且John只 能向北,向南,向东,向西走。 我们

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-10 23:48:29

    POJ - 1753 Flip Game

    点击打开链接 这道题的大致意思是:         给你一个4*4的方格,上面只有'b'和'w',他们分别代表棋子的正面和反面。现在你对棋盘的操作有翻转 其中的一个棋子,但是同时会使得这个棋子上边,下边,左边,右边的棋子也会翻转。这个操作可以有多次。 问经过N次操作后棋盘上的棋子全为正面或反面(也就

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-07 17:52:54

    带余除法的证明

    首先先说一下整除的概念 整除:设a , b是两个整数,且b!=0 .如果存在整数 c ,使得 a = b * c,则称a被b整除,或 b 整除 a ,记做 b|a             此时,又称 a 是 b 的倍数, b 是 a 的因子。 接下来就是带余除法的定义及其证明: 带余除法:设a

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-04 11:18:21

    sort实现字典序

    可以用stl的sort函数可以对sring数组进行字典序排序。 注意必须是c++中的string类; 代码如下 #include<stdio.h> #include<algorithm> #include<string> #include<iostream

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-03 16:33:48

    第九届蓝桥杯 乘积尾零

    标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329  2758 7949 6113 5659 5245 7432 3051 4434 6704 3594  993

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-01 20:03:50

    快速幂取模(二分法)

    [cpp]  view plain  copy int quick(int a,int b,int c)   时间复杂度为O(log(2)n); 可以将b转化为二进制 b为偶数时 a = a * a % c; b为奇数时 ans = ans * a

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-01 18:45:45

    第九届蓝桥杯 螺旋折线

    标题:螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。   对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。   例如dis(0, 1)=3, dis(-2, -1)=9   给出整点坐标(X, Y),你能计算

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-01 15:37:01

    第九届蓝桥杯 明码

    标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。 把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-01 15:22:32

    藏宝图(BFS+DFS)

    蒜头君得到一张藏宝图。藏宝图是一个 10×10 的方格地图,图上一共有 10 个宝藏。有些方格地形太凶险,不能进入。 整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。 1 1 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-01 13:58:42

    第九届蓝桥杯c语言b组的下载链接

    https://pan.baidu.com/s/1BIaxP0riAzoaYxR5T1ANpw

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-31 17:19:27

    第八届蓝桥杯 包子凑数(动态规划/完全背包+扩展欧几里得)

    标题:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。 每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-29 20:11:36

    解决ax+by=c,不定方程(扩展欧几里得)

    首先有几个定理我们需要知道,在这里我也会一一证明。 —————————————————————————————————————— 定理1:gcd(a,b)==gcd(b,a%b);这个是欧几里得提出并证明的。 (%是取余的意思,在数学中 可用mod表示); 以下是证明过程 —————————————

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-29 10:02:39

    第八届蓝桥杯 最大公共子串(动态规划)

    标题:最大公共子串 最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。 下面的程序是采

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-11 17:44:12

    RMQ问题的ST解法

    RMQ问题: RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A, i , j) (i , j <= n), 返回数列A中最小(大)值,且该值的下标必须在i,j范围中,也就是说,RMQ问题是指求区间最值的问题。 这个问题有好

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-04-07 16:04:56

    求乘法逆元及其作用

    定义: 如果有a * b ≡ 1 (mod p) , 则称b是mod p意义下a的乘法逆元。记b=inv(a)b=inv(a)或b=a−1b=a−1 (定义了剩余系中的除法)

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-31 09:13:41

    整数划分

    假设我们有一个整数n,我们要对它在约束条件不同的情况下进行划分。 1.把n划分成不小于m(且为正整数)的划分数 2.把n划分成为k个正整数的划分数 3.把n划分成k个奇数的划分数 1.把n划分成不小于m(且为正整数)的划分数 ————————————————————————————————————

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-29 09:07:28

    蓝桥杯第八届 方格分割(dfs)

    标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。 请提交该整数,不要填写任何多余的内

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-28 09:58:24

    密码(规律题)

    链接: https://www.nowcoder.com/acm/contest/90/K 来源:牛客网 题目描述 ZiZi登录各种账号的时候,总是会忘记密码,所以他把密码都记录在一个记事本上。其中第一个密码就是牛客网的密码。 牛客网专注于程序员的学

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-28 09:47:13

    强迫序列

    链接: https://www.nowcoder.com/acm/contest/90/J 来源:牛客网 题目描述 牛客网是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-28 08:56:53

    等式(数论/唯一分解定理)

    链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数) 输入描述: 在第一行输入一个正整数T。 接下来有T行,每行输

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-27 16:54:50

    回旋星空

    链接:https://www.nowcoder.com/acm/contest/90/E来源:牛客网 题目描述 曾经有两个来自吉尔尼斯的人(A和C)恋爱了,他们晚上经常在一起看头上的那片名为假的回旋星空, 有一天他们分手了,A想通过回旋星空测量他们之间的复合指数,测量的规则是,

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-27 16:18:29

    psd面试(最长回文子序列+动态规划);

    点击打开链接 链接:https://www.nowcoder.com/acm/contest/90/D来源:牛客网 题目描述 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习。 埃森哲公司注册成立于爱尔兰,是一家全球领先的专业服务公

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2018-03-27 15:17:51

    跳台阶(动态规划/斐波那契变形)

    跳台阶 链接:https://www.nowcoder.com/acm/contest/90/A来源:牛客网 题目描述 小明在坐景驰科技研发的无人车到达了目的地。 景驰科技(JingChi.ai)是一家由人工智能技术驱动、以无人驾驶技术为核心的智能出行公司

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2017-11-08 13:39:35

    mysql乱码问题

    前几天配置mysql环境,但一直出现乱码问题;后来在网上找到了答案,整理一下; 出现乱码一般是字符集有问题 mysql默认的是字符集是latin1 可以用 show variables like ‘char%’来查看当前数据库的字符集 所以我们要修改数据库的字符集,但是只修改数据库字符集还

    来自 糖醋盐明清
    00
  • avatar 糖醋盐明清 2017-11-07 14:23:37

    字符串和数字之间的互相转换

    字符串和数字之间的互相转换 将字符串转换为数字 函数:atof() 头文件:stdlib.h 函数原型:double atof( const char *string ) 因为double可以转换为int ,所以该函数参数也可以是int char str[100];

    来自 糖醋盐明清
    00
  • avatar 郭家兴0624 2019-08-09 21:10:44

    用两个栈实现队列

    题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:栈A用来作入队列栈B用来出队列,当栈B为空时,栈A全部出栈到栈B,栈B再出栈(即出队列) AC代码: def __init__(self): self.stack1=[] self.

    来自 郭家兴0624
    270
  • avatar 糖醋盐明清 2017-10-09 19:47:40

    关于为结构体指针申请内存的问题

    之前在实现单链表的时候出现的一个问题 点击打开链接 比如创建一个结构体 struct List {int data;struct List* link; }; 如果我直接声明一个结构体指针 List* p; 那么对这个指针进行操作的话一种是把一个Lis类型的变量的指针赋值给p; 另一种

    来自 糖醋盐明清
    00