• avatar superzcl 2019-04-09 20:24:27

    icpc河南省赛训练1 gcd&&速筛&&快速幂

    题目链接网址:https://vjudge.net/contest/293897 只选取部分题目的代码  Wolf and Rabbit 如果两者最大公因数不为1,那么一定有安全的点 #include <iostream> #include <algorithm>

    来自 superzcl
    00
  • avatar superzcl 2019-04-08 08:19:30

    Star FZU - 2110 锐角三角形判定

    Overpower often go to the playground with classmates. They play and chat on the playground. One day, there are a lot of stars in the sky. Suddenly, on

    来自 superzcl
    00
  • avatar superzcl 2019-04-06 19:47:55

    Team Formation ZOJ - 3870 二进制运算

                                  Team Formation     ZOJ - 3870  For an upcoming programming contest, Edward, the headmaster of Marjar University, is for

    来自 superzcl
    00
  • avatar superzcl 2019-03-27 21:23:49

    lower_bound 和 upper_bound 的实现

    lower_bound()返回的是要查找的数的最小下标,upper_bound()则返回的是最大下标 两者都是用二分查找,需要先排序。两者相减得到的则是一共有多少个要查找的数的个数减一 #include <cstdio> #include <algorithm> usi

    来自 superzcl
    00
  • avatar superzcl 2019-03-20 11:26:13

    STL string map vector set 的使用方法

    不再详细介绍,直接用代码展示用法。 具体的介绍建议去官方一点的网站看,我在网上搜罗了一大堆,大多都写的不全面,有的还有错误。 建议去这个网站看,虽然是英文的但能看懂:http://www.cplusplus.com/reference/stl/ string code: #include

    来自 superzcl
    00
  • avatar superzcl 2019-03-16 14:10:14

    单源最短路 dijkstra算法及其使用优先队列、邻接矩阵的优化

    传统的dijkstra算法是维护一个集合和一个数组 在算法开始的时候,我们有一个集合X和一个数组dis. 起初将起点s加入集合,然后起点到起点的最短距离是0,dis[s] = 0;  接着我们不断的在剩下的顶点中找到一个离X最近的点v,并将该点加入到X中,然后更新dis。更新dis的原理是,比较原

    来自 superzcl
    00
  • avatar superzcl 2019-03-14 20:21:14

    最小生成树 Kruskal算法

    预备知识:并查集,参考我的博客 https://blog.csdn.net/hpu2022/article/details/81710828 这里再给出一种并查集的写法: const int MAXN = (int) 1e6+7; int pre[MAXN]; void init(int

    来自 superzcl
    00
  • avatar superzcl 2019-03-14 19:15:10

    最小生成树 Prim算法

    Prim算法是从某个顶点出发,然后不断添加边的算法。 首先,我们假设有一颗只包含一个顶点v的树T。然后贪心地选取T和其他顶之间相连的最小权值的边,并把它加到T中。不断进行这个操作,就可以得到一颗生成树了。这样得到的就是最小生成树。 code: #include <cstdio>

    来自 superzcl
    00
  • avatar superzcl 2019-03-11 11:37:47

    二分图判定

    在图论中,把相邻定点染成不同颜色的问题叫做图着色问题。对图进行染色所需要的最小颜色数称为最小着色数。 把最小着色数是2的图称为二分图。 code: #include <cstdio> #include <vector> const int MAX_V = 1000 +

    来自 superzcl
    00
  • avatar superzcl 2019-03-06 09:24:00

    java jdk 安装时关于javac不是内部指令的问题

    jdk配置环境变量时(都在系统变量里) 1:设置JAVA_HOME变量名,然后变量值为  jdk安装路径 2:设置CLASSPATH变量,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 3:在path变量中添加  %JAVA_H

    来自 superzcl
    00
  • avatar superzcl 2019-02-28 19:06:56

    转载 17.C++-string字符串类(详解)

    在C++ 中新增了一个字符串类型 string。比较与C语言只能用字符数组来表达字符串,大大提高了字符串操作的简便性。 而且string也比较常用,但是对于不熟悉的人来说它的很多功能我们都不了解。 我是想写写自己对使用string的一些感悟的,无奈下面这篇博客太优秀。 有一定C++基础更能理解作

    来自 superzcl
    00
  • avatar superzcl 2019-02-27 08:33:20

    Fence Repair(POJ 3253) 贪心,哈夫曼构造法

    问题描述: 农夫约翰逊为了修理栅栏,要将一块很长的木板切割成N块。准备切成的木板的 长度为L1, L2.....Ln, 未切割前木板 的长度恰好为切割后木板长度的总和。每次切断木板时,需要的开销为这块木板的长度。例如长度为21的木板要切 割成长度为5 8 8的三块木板。长度为21的木板切成长度为1

    来自 superzcl
    00
  • avatar superzcl 2019-02-25 10:17:37

    Best Cow Line (POJ 3617 改)

    字典序最小问题: 给定长度为N的字符串S,要构造一个长度为N的字符串T。起初,T是一个空串,随后反复进行下列任意操作。从S的头部删除一个字符,加到T的尾部 从S的尾部删除一个字符,加到T的头部 目标是构造字典序尽可能最小的字符串T。 例如S = "ACDBCB" , T =

    来自 superzcl
    00
  • avatar superzcl 2019-02-24 20:37:14

    C++ STL next_permutation and prev_permutation introduction

    我们经常会遇到这样的问题。 example:我们有三个数 1 2 3,要求输出他们的全排列并按照字典序的顺序。             123             132             213             231             312             32

    来自 superzcl
    00
  • avatar superzcl 2019-01-28 14:54:21

    简单动态规划-数塔问题变形

    寒假前几天有些懈怠,今深刻反思。 协会留的作业之一, 虽然一眼就看出了是一个动态规划问题,但是还是因为格式问题困扰好久,主要原因还是自己有些懈怠了 做题有些不熟练。要好好反思一下了。 问题描述: 有 m 颗质量大小不同的石子,从最下面一层开始堆石子,最下面一层放置 n 颗石子,每层减少一颗石

    来自 superzcl
    00
  • avatar superzcl 2018-12-28 20:03:24

    C++ 学习笔记-10

    在C++里面几乎可以重载所有的运算符 .  .*  ::  ?: sizeof  typeid  static_cast  dynamic_cast  const_cast  reinterpret_cast 这些运算符不能重载 只有已经存在的运算符可以重载,不能自己创造 重载的运算符不能改变其原

    来自 superzcl
    00
  • avatar superzcl 2018-12-28 16:26:39

    二叉排序树(查询、创建、插入、删除)

    临近考试,这里先只发一下代码,关于定义,原理什么的等我有时间了会补充上。 #include <iostream> #include <string> using namespace std; typedef int KeyType; // 关键字类型 typedef

    来自 superzcl
    00
  • avatar superzcl 2018-12-27 18:26:37

    快速排序+二分查找(递归写法)

    关于快速排序参考之前的文章:https://blog.csdn.net/hpu2022/article/details/83069041 关于二分查找的参考之前的文章:https://blog.csdn.net/hpu2022/article/details/79845630 code: #

    来自 superzcl
    00
  • avatar superzcl 2018-12-25 09:45:15

    C++ 学习笔记-9

    static 在C语言里面     1: 如果是静态的全局变量,就意味着这个变量只在这个.c文件里有效     2: 静态的本地变量具有持久存储的作用, static的本地变量就是全局变量,它就是放在全局变量那个地方的     3: 静态的函数意味着只能在这个.c里面访问,在.c以外的是不能访问的在

    来自 superzcl
    00
  • avatar superzcl 2018-12-22 13:47:16

    C++ 学习笔记-8

    分清楚 declaration 和 definition; initializ 和 assignment 在C中可以认为 initalize 和 assignment 是一样的 但是在啊C++中是完全不一样的 在C++, int a(10); 和 int a = 10; 是等价的,两者都是初始化

    来自 superzcl
    00
  • avatar superzcl 2018-12-21 20:33:25

    C++ 学习笔记-7

    所有有 virtual 的类的对象里面最头上就会自动加上一个隐藏的不让你知道的指针, 那个指针叫做 vptr(virtual pointer) 它指向一张表,那张表叫做 vtable, 里面是所有virtual函数的地址 这个 vtable 不是对象的,而是这个类的 如果一个类的函数只要有一个是v

    来自 superzcl
    00
  • avatar superzcl 2018-12-19 10:32:42

    C++ 学习笔记-6

    reference 引用 c++复杂在提供了太多的两种东西     1. 太多的可以放对象的地方。c++ 的对象可以放在堆栈、堆、全局数据区里面     2. 太多的可以访问对象的方式。变量里放的是对象,指针访问对象,引用访问对象 引用在定义时必须初始化来建立一种绑定关系 向上造型 把子类对象当

    来自 superzcl
    00
  • avatar superzcl 2018-12-18 13:54:33

    C++ 学习笔记-5

    function overloading    // 函数重载 返回类型不能构成函数重载的条件 有载的函数在调用时一定要找到一个完全匹配的函数,不然会给出 ambitious 的错误 default arguments fun(int size, int num = 0); 调用时如果不给出第二个

    来自 superzcl
    00
  • avatar superzcl 2018-12-12 20:57:51

    C++ 学习笔记-4

    oop(面向对象) 三大特性 封装、继承、多态性 对象组合:用已有的对象来组合出新的对象(这是一种软件重用的方式) 什么东西在哪里用什么方式访问就叫内存模型 objects can be used to build up other objects. composition ways of i

    来自 superzcl
    00
  • avatar superzcl 2018-12-11 15:00:56

    C++ 学习笔记-3

    new int; new int[10]; delete p; delete [] p;new 和 delete 是关键字也是运算符 new 的时候是先得到空间,然后初始化; delete 的时候是先析构,然后收回空间 在动态内存分配的时候,程序内部有一个数据表来记录你每次申请的内存的首地址和大小

    来自 superzcl
    00
  • avatar superzcl 2018-12-10 21:38:49

    C++ 学习笔记-2

    类是虚的,类是观点,类是概念,类不是实体,对象是实体 local variable:     1: local variables are defined inside a method(函数), have a scope limited to        the method to which

    来自 superzcl
    00
  • avatar superzcl 2018-12-09 14:46:33

    C++ 学习笔记-1

    类是概念,对象是实体 标准的一个类具有两个文件。一个 .h 文件,一个 .cpp 文件,一个放声明,一个放定义 面向对象的基本原则     1:一切都是对象     2:程序运行时一堆对象互相发送消息告诉对方做什么(而不是怎么做)     3:每一个对象有它自己的内存,这个内存里面又是其他对象组

    来自 superzcl
    00
  • avatar superzcl 2018-12-06 17:48:27

    哈夫曼树的构造(C语言实现)

    哈夫曼树的构造过程可以详见推荐博客:哈夫曼树以及哈夫曼编码的构造步骤 建议先看完推荐博客中的文字说明,或者自己找一本数据结构的树来仔细阅读以下关于哈夫曼树的构造 然后再来看下面给出的code 这里给出的是关于哈夫曼树的构造代码: #include <cstdio> #inclu

    来自 superzcl
    00
  • avatar superzcl 2018-12-05 13:00:07

    POJ2413(expedition) 改编,STL优先队列的使用

    优先队列出的顺序是按照自己设 置的优先等级来出队列的,如果自己不设置优先级的话,默认优先级为越大优先级越高。 定义方法:priority_queue <int>  que; 如果想自己决定优先级 可以这样写: priority_queue <int, vector <int&

    来自 superzcl
    00
  • avatar superzcl 2018-11-27 13:38:34

    链式二叉树 先序、中序、后序 遍历(递归、非递归)

    参考博客:click here! 链式二叉树存储结构: typedef int DataType; typedef struct BiNode { DataType data; struct BiNode *lc, *rc; // 左右子节点指针 int depth; } BiNod

    来自 superzcl
    00
  • avatar superzcl 2018-11-22 18:12:04

    数据结构 串的顺序表示和实现

    上次写链式串的时候就觉得太麻烦了,而且还不一定好用,今天就写顺序的果然方便很多。 写的串是常用的字符串以及一些常用函数。 全部自己原创的,如有不足还请指出。 #include <iostream> using namespace std; const int MAXN = (in

    来自 superzcl
    00
  • avatar superzcl 2018-11-22 16:15:30

    kmp算法+经典例题

    推荐博客:kmp算法详解 针对kmp算法的习题训练网址:https://blog.csdn.net/hpu2022/article/details/81812497 来看一道经典题目:                               Number Sequenc

    来自 superzcl
    00
  • avatar superzcl 2018-11-21 22:10:38

    串的链式表示和实现

    用链表的方法来写串真的是太麻烦了(下回更新一个用动态数组写的)。 下面是我简单实现的链式串的几个功能,没办法,数据结构老师不给代码,这些完全是我自己想的。 应该没什么逻辑上的错误,如有发现还请提出来。 #include <iostream> #include <cstrin

    来自 superzcl
    00
  • avatar superzcl 2018-11-15 17:59:45

    Blah-数据结构实验

    先来看我的第一种思路 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1000000 + 7; int Q[M

    来自 superzcl
    00
  • avatar superzcl 2018-11-13 20:39:19

    队列的链式表示和实现

    注意: 队首指针 Q.front 指向的不是第一个数据元素结点 Q.front->next 才是。 队尾指针 Q.rear 始终指向最后一个结点。 Q.length 始终是当前队列的长度 #include <iostream> using namespace s

    来自 superzcl
    00
  • avatar superzcl 2018-11-08 15:49:32

    循环队列的顺序表示和实现

    在开始之前我们做如下约定: 队空: front == rear 队满: (Q.rear + 1) % MaxSize == Q.front 求循环队列的长度: (Q.rear - Q.front + MaxSize) %  MaxSize 入队:Q.rear = (Q.rear + 1) %

    来自 superzcl
    00
  • avatar superzcl 2018-11-08 15:11:27

    用链栈实现十进制到二进制的转换

    #include <iostream> using namespace std; typedef struct Stack{ int data; int length; Stack *next; } StackNode, *LinkStack; bool StackInit(L

    来自 superzcl
    00
  • avatar superzcl 2018-11-04 12:22:25

    生活大爆炸版石头剪刀布-简单模拟

    链接传送门:https://www.luogu.org/problemnew/show/P1328 理解题意后一般大家的思路都是这样的: 逐个比较嘛, 反正数据也不大,就200, 如何比较? 当然是用 if 嘛, 罗列所有的情况,反正情况也不对。 写出来的代码就是这样的 #include

    来自 superzcl
    00
  • avatar superzcl 2018-11-03 13:39:23

    栈的顺序表示和实现

    #include <iostream> using namespace std; const int MAXN = 1000+7; const int INF = 0X3f3f3f3f; typedef struct { int *base; // base不存元素 int

    来自 superzcl
    00
  • avatar superzcl 2018-11-01 16:12:23

    线性表的顺序表示和实现

    ||=== 构建: Debug 在 链表 中 (编译器: GNU GCC Compiler) ===| C:\Users\张成龙\Desktop\code\链表\main.cpp||In function 'int main()':| C:\Users\张成龙\Desktop\code\链表\mai

    来自 superzcl
    00
  • avatar superzcl 2018-10-30 14:57:51

    用数组模拟实现约瑟夫环

    约瑟夫问题:n个人围成一圈,从第一个人开始报数,数到m的人出圈;再由下一个人开始报数,数到m的人出圈;…输出依次出圈的人的编号。n,m由键盘输入。 要求: 用数组模拟实现 。 #include <iostream> #include <cstring> using na

    来自 superzcl
    00
  • avatar superzcl 2018-10-24 22:14:48

    记1024

    等我写一个重磅级的博客。。。

    来自 superzcl
    00
  • avatar superzcl 2018-10-23 08:53:13

    整数划分(递归,附程序执行过程)

    问题描述: 任何一个大于1的自然数N,总可以拆分成若干个小于n的自然数之和。 输入: n 输出:按字典序输出具体方案。 我们以 n = 4 为例说明一下执行过程, 下附代码   我们以 n = 4 为例说明一下运行过程 阅读本段 一定要注意各个变量值的变化 cin >> n

    来自 superzcl
    00
  • avatar superzcl 2018-10-22 13:12:37

    递归实现汉诺塔

    汉诺塔移动数   ans = pow(2, n) - 1; 推荐博客:https://blog.csdn.net/xb2355404/article/details/79144451 #include <iostream> using namespace std; inline

    来自 superzcl
    00
  • avatar superzcl 2018-10-20 22:04:20

    循环链表 实现 约瑟夫环

      【约瑟夫环问题】 已知 n 个人(n>=1)围坐一圆桌周围,从 1 开始顺序编号,从序号为 1 的人开始报数,顺时针数到 m 的那个人出列。下一个人又从 1 开始报数,数到m 的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的初始编号。 【要求】 输入人

    来自 superzcl
    00
  • avatar superzcl 2018-10-18 14:53:27

    双向链表

    建立的是一个有序的管理学生信息的双向链表,功能有创建,插入,删除, 遍历, 查找等。 #include <iostream> #include <string> using namespace std; typedef long long LL; struct List

    来自 superzcl
    00
  • avatar superzcl 2018-10-16 10:33:24

    快速排序

    快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 时间复杂度为O(n*logn) 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到

    来自 superzcl
    00
  • avatar superzcl 2018-10-09 21:49:38

    二叉堆实现

    这里给出的是最小二叉堆 左儿子结点编号是自己编号的 x 2 + 1 右儿子结点编号是自己编号的 x 2 + 2 在插入元素的时候先插入到末尾,然后向上比较,如果父节点的值大于新元素的值就交换,直到父节点小于新元素。 在删除元素的时候,先取出根节点的值,然后将末尾元素提到根节点,再向下比较。

    来自 superzcl
    00
  • avatar superzcl 2018-09-18 22:19:34

    Replace To Make Regular Bracket Sequence ( CodeForces )

    用这道题来说明一下c++比g++有更深的堆栈 先来看一下提交情况,都是一份一模一样的代码(详见下文)。 GNU C++ C++ 然后顺便说一下题目的思路。 定义一个栈从左到右扫面一遍仅左括号进栈,遇到右括号就与栈顶的括号对比一下,能配对就弹出这个栈顶元素。 题目: You ar

    来自 superzcl
    00
  • avatar superzcl 2018-09-15 10:21:53

    博弈论(取石子专题)

    有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。 题目链接:https://www.51nod.com/onlineJudge/questionCode.html

    来自 superzcl
    00
  • avatar superzcl 2018-09-12 21:32:17

    看病要排队 HDU - 1873(队列)

    思路分析:指定了优先级和医生,我们只需要让来看病的人进队列,因为不完全是先来先看病,所以我们需要定义的是优先队列,且指定内部排序原理。 题目: 看病要排队这个是地球人都知道的常识。  不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病

    来自 superzcl
    00
  • avatar superzcl 2018-09-08 21:14:25

    归并排序求逆序数

    归并排序是一种稳定排序。想要知道什么是归并排序要先知道就要先了解分治与递归的思想。 参考我的博客:click here !!! 归并排序求逆序数的思想就是,利用递归不挺的将一列数分成两部分,然后cnt加上每一个被分开的部分中的逆序数,在不停的分治的时候也进行了排序。最后求出被分开的两部分中的总逆序

    来自 superzcl
    00
  • avatar superzcl 2018-09-07 08:46:45

    字符消除 和 substr()函数用法

    首先说一下 substr() 的用法。 如果我们定义一个string字符串并初始化 string str = "ABCDEFG"; str1 = str.substr(1, 5); 表示的是从下标1开始往后截取长度为5的字符串 即str1 = "BCDEF"

    来自 superzcl
    00
  • avatar superzcl 2018-09-06 11:05:56

    棋盘问题 poj 1321

    题目: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。  每组数据的第一行是两个正整数,n k,用一个空

    来自 superzcl
    00
  • avatar superzcl 2018-09-06 07:49:47

    九宫(DFS)

    题目: 小Hi最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格,在小学奥数里有一句非常有名的口诀:“二四为肩,六八为足,左三右七,戴九履一,五居其中

    来自 superzcl
    00
  • avatar superzcl 2018-09-05 15:58:32

    最长递增子序列 51nod 1134

    题目: 给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。 Input 第1行:1个数N,N为序列的长度(2 <= N <= 50000)  第2 - N +

    来自 superzcl
    00
  • avatar superzcl 2018-09-05 15:39:57

    无向图最小生成树 51nod 1212

    题目: N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。 Input 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)  第2 - M + 1行:每行3个数S E W,分别

    来自 superzcl
    00
  • avatar superzcl 2018-09-04 22:55:11

    数字反转(升级版)落谷P1553

    题目描述 给定一个数,请将该数各个位上数字反转得到一个新数。 这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交

    来自 superzcl
    00
  • avatar superzcl 2018-09-02 21:23:17

    线段的重叠(感觉这是一个错题)

    写这篇文章是因为这个题有一点弄不懂,就是下面我说的这个,感觉是一道错题。   题目: X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,10 20和12 25的重叠部分为12 20。 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的

    来自 superzcl
    00
  • avatar superzcl 2018-09-02 18:07:42

    风格不统一如何写程序(玄学bug) STL

    其实呢对我来说这是一道很的水题了, 今天用C++ 的string类型写的时候一直提交不对,也没发现那里有错误,本以为又是玄学错误呢。(有次积分赛出现超级玄学问题, 一直觉得代码没错误,前前后后提交了20几遍,全给我返回的是wrong, 赛后向学长反应时,学长看了一下我的代码,以及输出结果,我靠,居然

    来自 superzcl
    00
  • avatar superzcl 2018-08-23 16:56:06

    360系列浏览器如何彻底去除广告?

    看图别说话 两个插件都要安装,单独一个效果不并不是很好

    来自 superzcl
    00
  • avatar superzcl 2018-08-22 16:24:34

    线段树详解(非递归版)

    接上篇:https://blog.csdn.net/hpu2022/article/details/81946151 转自: https://blog.csdn.net/zearot/article/details/48299459   四:非递归原理 非递归的思路很巧妙,思路以及部分代码实

    来自 superzcl
    00
  • avatar superzcl 2018-08-22 16:16:56

    线段树详解(递归版)

    转自: https://blog.csdn.net/zearot/article/details/48299459                                       线段树详解                                              

    来自 superzcl
    00
  • avatar superzcl 2018-08-21 20:13:19

    线段树(插讲DFS序)

    题目训练网址(密码hpuacm):https://vjudge.net/contest/248759 关于线段树原理什么的参考我转发来的两篇文章 递归版: https://blog.csdn.net/hpu2022/article/details/81946151 非递归版: https://

    来自 superzcl
    00
  • avatar superzcl 2018-08-21 16:50:36

    DFS序详解

    转自 : https://blog.csdn.net/qq_36368339/article/details/79236467   树通常有多种类型,但其终归是非线性结构,操作起来有时总是那么费时。 例如:POJ 3321  给你一棵树,树上每个节点都有1个苹果,然后你对一个节点操作,如果有苹

    来自 superzcl
    00
  • avatar superzcl 2018-08-18 20:27:24

    KMP专题(Period)( Power Strings)(Oulipo)

    题目训练网址(密码hpuacm) : https://vjudge.net/contest/248066 Number Sequence //#include <bits/stdc++.h> #include <stdio.h> #include <string.

    来自 superzcl
    00
  • avatar superzcl 2018-08-17 20:57:41

    最小生成树与并查集(待补)

    题目训练网址(密码hpuacm): https://cn.vjudge.net/contest/247189  //#include <bits/stdc++.h> #include <stdio.h> #include <algorithm> #includ

    来自 superzcl
    00
  • avatar superzcl 2018-08-17 20:56:02

    (Crazy Search)(Oulipo )hash哈希

    题目训练网址(密码hpuacm): https://cn.vjudge.net/contest/247842                                     Crazy Search 给定一个字符串,其中含有不同的字母数量为m,现在求这个字符串中有多少个长度为n且长的互

    来自 superzcl
    00
  • avatar superzcl 2018-08-15 21:12:54

    并查集((还是)畅通工程 )(The Suspects )(Ubiquitous Religions )

    题目训练网址: https://vjudge.net/contest/247051          并查集是一种树型的数据结构,用于处理一些不相交集合 (Disjoint Sets)的合并及查询问题。常常在使用中以森林来 表示。 集就是让每个元素构成一个单元素的集合,也就是按 一定顺序将属于

    来自 superzcl
    00
  • avatar superzcl 2018-08-14 21:10:26

    最短路和差分约束(三种算法实现)( Til the Cows Come Home )

    题目训练链接(密码hpuacm): https://vjudge.net/contest/246705 我会分别用 迪杰斯特拉  优先队列和链式前向星优化过的迪杰斯特拉  SPFA算法 三种方法讲一下例题。 此外上述三种算法是求单源最短路问题, 这里还会介绍一下多源最短路的算法 floyd算法。

    来自 superzcl
    00
  • avatar superzcl 2018-08-11 21:17:49

    矩阵取数问题 (v2)(子串查询) (Polycarp and Div 3 )

    题目训练网址(密码hpuacm) : https://vjudge.net/contest/245961#overview                                                 矩阵取数问题   一个N*N矩阵中有不同的正整数,经过这个格子,就能获得

    来自 superzcl
    00
  • avatar superzcl 2018-08-10 21:26:02

    记忆化搜索+树形DP初接触(滑雪)( Anniversary party)

    题目训练网址(密码hpuacm): https://vjudge.net/contest/245538 其实我之前的博文已经提到过一次记忆化搜索关于01背包的: 文章链接 对于记忆化搜索其实很好理解。就是每次DFS得到的结果用一个用来记忆值的数组保存。直接来看一道题目更好理解。        

    来自 superzcl
    00
  • avatar superzcl 2018-08-08 22:17:36

    动态规划之背包问题(待完善)

    题目训练(密码hpuacm):https://vjudge.net/contest/244922 背包问题有 部分背包 01背包 完全背包 多重背包 部分背包是一种可分割的背包,就是一个背包我们可以只取它的部分。那么给出一组物品的价值和重量,怎么选才能让背包装的价值最大呢?很简单,选性价比最高的

    来自 superzcl
    00
  • avatar superzcl 2018-08-07 23:09:20

    最大子段和问题

                                                        最大子段和   N个整数组成的序列a11,a22,a33,…,ann, 求该序列如aii+ai+1i+1+…+ajj的连续子段和的最大值。当所给的整数均为负数时和为0。 例如:-2,11,-

    来自 superzcl
    00
  • avatar superzcl 2018-08-07 23:02:55

    动态规划之钱币兑换问题

                                                        钱币兑换问题   在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。 Input 每行只有一个正整数N,N小于32768。 Output

    来自 superzcl
    00
  • avatar superzcl 2018-08-07 21:03:29

    动态规划入门(超详细整理)

    题目链接(密码hpuacm): 2018HPU暑期集训—动态规划入门 看故事了解动态规划思想: click here!!! 求解动态规划问题求到最后无非就三种方法,见我之前的博文用三中方法详细讲解了01背包问题。 第一种递归搜索法:  https://blog.csdn.net/hpu2022

    来自 superzcl
    00
  • avatar superzcl 2018-08-05 09:37:44

    分治与递归(待补)

    题目训练网址(密码hpuacm):https://vjudge.net/contest/243680   先说一下归并排序求逆序数法 什么事逆序数   戳这里 C题模板(归并排序求逆序数) #include <bits/stdc++.h> using namespac

    来自 superzcl
    00
  • avatar superzcl 2018-08-24 20:49:11

    Flag!!!

    为了干掉一队,开学后每天至少六道题,当天完不成,缺的部分累加到第二天。

    来自 superzcl
    00
  • avatar superzcl 2018-08-05 09:26:07

    拓补排序+树的直径

    训练题目网址(密码hpuacm2017): https://vjudge.net/contest/244053   记好下面的模板 #include <bits/stdc++.h> using namespace std; const int MAXN = 1000+10;

    来自 superzcl
    00
  • avatar superzcl 2018-08-03 11:31:05

    递归+暴解+贪心

    题目链接(密码hpuacm):https://vjudge.net/contest/243307 八成都是水题。 A题猴子吃桃太水。 B题疯狂的母牛,分别用三个变量保存一年,二年和三年龄的牛。第四年时三年龄的牛就要生小牛了。 注意一点就是,第一年只有一头三年龄的母牛。 C题 2的n-k次方

    来自 superzcl
    00
  • avatar superzcl 2018-08-02 09:05:32

    DFS精讲

    题目训练(密码hpuacm):链接https://vjudge.net/contest/241948 DFS(深度优先搜索)是搜索手段之一。它从某个状态开始,不停的转移状态,知道无法转移,然后回退到前一步状态,继续转移到其他状态,如此不断重复,直到找到最终的解。 A题是标准的模板题,既可以用DF

    来自 superzcl
    00
  • avatar superzcl 2018-07-31 20:59:09

    存图方法之链式前向星+BFS实例精讲

    训练题目链接(密码hpuacm): https://vjudge.net/contest/242570 存图方法有很多,最暴力的方法就是开一个二维数组 int maze[1000][1000]; //最多能大概5000 5000 int a, b, c; // 一条从a到b的权值为c的边 w

    来自 superzcl
    00
  • avatar superzcl 2018-07-29 10:59:12

    二分+尺取总结及练习题讲解

    题目链接(密码 hpuacm2018):https://vjudge.net/contest/241732#overview   二分参考之前的博客:https://blog.csdn.net/hpu2022/article/details/79845630 尺取: 理解了尺

    来自 superzcl
    00
  • avatar superzcl 2018-07-27 23:48:23

    栈、队列、优先队列和题目讲解

    训练题目网址(密码hpuacm):https://cn.vjudge.net/contest/241502#overview   栈和队列的基础知识不再讲解,参考之前写的博客 栈:https://blog.csdn.net/hpu2022/article/details/79845577 队

    来自 superzcl
    00
  • avatar superzcl 2018-07-25 16:24:16

    算术基本定理及应用串讲欧拉函数

    题目训练(包含容斥定理)(密码hpuacm):https://vjudge.net/contest/240973#overview 主要有以下内容: 1. 质因子分解 2. 质因子个数 3. 求数N的所有因子之和   4. 算术基本定理角度看GCD和LCM 代码实现

    来自 superzcl
    00
  • avatar superzcl 2018-07-24 20:54:01

    同余定理+逆元的理论及其应用

    题目训练网址(密码hpuacm) https://vjudge.net/contest/240634#overview 关于同余定理及其性质的介绍参考这篇博文 https://blog.csdn.net/codeharvest/article/details/70314593 关于逆元以及求解逆

    来自 superzcl
    00
  • avatar superzcl 2018-07-22 10:08:44

    STL练习总结二

    点击跳转到目标网址,密码HPUACM2018   F题有很较强的技巧性,将每一个单词拆分成所有可能的前缀,并且这些前缀每次出现其作为键对应的值就加一,当所有的单词都这样操作过后,map中就记录了所有可能的键对应的值。 例如 banana会被拆分为 banan   bana   ban   ba

    来自 superzcl
    00
  • avatar superzcl 2018-07-22 09:28:47

    STL练习总结

    点击跳转到目标网址,密码HPUACM2018   C题就是两个集合相加,然后去除掉重复的元素。 本题可以利用STL中的set来解决,将两个集合中的元素分别插入到set定义的新集合中,自动去重。 程序结束时不要忘记清空,同时下面程序段里有一个最后一个数的末尾没有空格的技巧。 for( in

    来自 superzcl
    00
  • avatar superzcl 2018-07-20 22:36:18

    sort排序+结构体总结

    点击此处跳转到目标网址 密码    hpuacm A题中 23:59:59 这样的时间输出可以当做字符串处理 struct people{ char name[20]; char com[20]; char lea[20]; }; struct people peo[10000];

    来自 superzcl
    00
  • avatar superzcl 2018-07-19 15:46:15

    快速幂 A的B次方mod上C

    #include <stdio.h> typedef long long LL; LL pow_mod(LL a, LL n, LL MOD) { LL res = 1; while (n) { if(n&1) //当前n的二进制的最后一位为1,即此时的n为奇数

    来自 superzcl
    00
  • avatar superzcl 2018-06-23 11:56:07

    01背包问题2(转换dp对象)

    #include <bits/stdc++.h> #define MAX_N 100 #define MAX_V 100 #define INF 100000000 using namespace std; int n, W; int w[MAX_N+1]; int v[MAX_V+1

    来自 superzcl
    00
  • avatar superzcl 2018-06-22 08:17:52

    dp动态规划—完全背包问题

    问题描述:     有n种重量和价值分别为wi, vi 的物品。从这些物品中挑选总重量不超过MaxValue的物品,求挑选物品价值总和的最大值。在这里,每种物品可以挑选任意多件。 限制条件:     1 <= n <= 100 ,    1 <= wi, vi <= 100

    来自 superzcl
    00
  • avatar superzcl 2018-06-21 15:48:10

    最长公共子序列问题

    #include <cstdio> #include <algorithm> #define MAXN 1000 using namespace std; int n, m; char s[MAXN+1], t[MAXN+1]; int dp[MAXN+1][MAXN+1]

    来自 superzcl
    00
  • avatar superzcl 2018-06-20 17:03:53

    o1背包dp递推式法

    实例参考搜索法文章 #include <bits/stdc++.h> #define MAXN 100 using namespace std; int n, MaxValue; int w[MAXN+1], v[MAXN+1]; int dp[MAXN+1][MAXN+1]; i

    来自 superzcl
    00
  • avatar superzcl 2018-06-20 14:40:08

    01背包记忆搜索法(dp)(递归法)

    实例参考上一篇文章。 #include <cstdio> #include <algorithm> #include <string.h> #define MAXN 100 using namespace std; int n, MaxWeigh; int w

    来自 superzcl
    00
  • avatar superzcl 2018-06-20 09:37:07

    01背包搜索法

    详情参考挑战程序设计第二版(有改动)。 问题描述:         有n个重量和价值分别为 wi,vi 的物品。从这些物品中挑选出总重量不超过MaxValue的物品,求所有 挑选方案中价值总和的最大值。 限制条件:     1 <= n <= 100     1 <= wi, vi

    来自 superzcl
    00
  • avatar superzcl 2018-06-17 17:56:45

    BFS实例超详细讲解

    实例参考挑战程序设计BFS的迷宫最短路径 #include <bits/stdc++.h> #define MAXN 100 using namespace std; const int INF = 100000000; typedef pair<int, int> P;

    来自 superzcl
    00
  • avatar superzcl 2018-06-04 18:05:10

    杨辉三角求组合数

    我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,  如果代码中出现  for(i=1;i<=n;i++) OP ;  那么做了n次OP运算,如果代码中出现  fori=1;i<=n; i++)    for(j=i+1;j<=n; j++)

    来自 superzcl
    00
  • avatar superzcl 2018-05-15 09:26:19

    约瑟夫环

    题目: N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。 例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。 Input 2个数N和K,表示N个人,数到K出列。(2 <= N, K <

    来自 superzcl
    00