
算法历程
。
一米の阳光
这个作者很懒,什么都没留下…
展开
-
总结
这三天总共打了三道题,两道数位DP,基本上可以比较灵活的使用数位DP了,所以数位DP就先告一段落了。接下来几天解决剩下的几道数位DP和状压DP,重新看一些博客,找找思路。 今天比赛出题比较慢,原因在于不善于发现问题的边界或者说特殊情况,卡了好久,以后做题要想着将特殊情况排除避免因小错误导致失误。...原创 2019-11-20 22:33:19 · 106 阅读 · 0 评论 -
poj3322 Bloxorz 广搜BFS+地图类问题
原题处题目思路:这道题主要是利用广搜解决“走地图”类问题,通过搜索问题状态,从走一步到走多步,最先的得到的结果一定是最小步数。#include<iostream>#include<cmath>#include<algorithm>#include<queue>#include<cstdio>#define MAX 510u...原创 2019-08-07 17:35:13 · 167 阅读 · 0 评论 -
Text Edior 中间值+枚举
codeforce 253C Text Edior 题目大意,在一个TXT编译器中,命令从光标起始点s到终点e的最小距离,定义向右、向左到最后时不会换行,最顶层不能再向上移动、最底层不能向下移动。如果光标在A行最后,向邻近B行移动,但是B行字数小于A行,光标将移动到B行末尾。 题目思路:寻找中间行(并非在是S与E中间),且与起点对齐(如果中间没有最后特殊情况的话,否则缩进)。答案就是中间行...原创 2019-08-14 09:44:07 · 159 阅读 · 0 评论 -
memset用法
之前对0x十六进制理解错误,做一下笔记。0x7fffffff是int的最大值,但是其不满足无穷大加无穷大等于无穷大的性质,一般用0x3fffffff,来代替。memset头文件是#include<cstring>memset用于初始化,memset(a,val,sizeof(a)), val取值范围(0x00~0xff),作用是将val填充到每个字节上,所以memset只能初始化...原创 2019-08-14 08:56:57 · 442 阅读 · 0 评论 -
区间DP总结(一)
好题【NOIP2000提高】乘积最大 需要用到高精度,目前还不会。【NOIP2006提高组】能量项链【NOI1995】石子合并 经典区间DP【POJ1141】Brackets Sequence 括号匹配区间DP总结值得细看的博客、动态规划之区间DP专题1、石子合并题目:区间DP模板。#include<bits/stdc++.h>#define N 101using...原创 2019-08-27 20:54:12 · 195 阅读 · 0 评论 -
DP基础
动态规划基础 动态规划算法把原问题视为若干个重叠的子问题的逐层递增,每个子问题的求解过程就是一个阶段。在完成前一个阶段的计算后,动态规划才会执行下一阶段计算。同时为了保证这些计算能够按顺序、不重复的进行,动态规划要求以求解的子问题,不受后续阶段的影响,即无后效性。动态规划用于求解最优化问题,下一阶段的最优解应该能够有前面的各阶段的子问题最优解导出,即最优子结构。 状态、阶段、决策是动态规划...原创 2019-08-12 21:54:15 · 506 阅读 · 0 评论 -
Table with Letters - 2有技巧的枚举
Table with Lettersproblem Vasya has recently started to learn English. Now he needs to remember how to write English letters. He isn’t sure about some of them, so he decided to train a little. He...原创 2019-08-16 10:00:46 · 200 阅读 · 0 评论 -
POJ3635 装满的油箱 :优先队列BFS +链式向前星
原题连接POJ3635 这道题是给定一张城市之间有权无向图,每个城市都有加油站,但是每个加油站价钱不一样,对于多次询问,给定两城市和油缸容量,问最少花费。 思路:对于最短或最少问题,可以用BFS解决,但是这道题并不是求最短路径,需要结合优先队列进行变形。 可以用结构体+数组表示状态,当前所在城市、当前油量以及花费 对于每个城市,有两种分支选择 1)在这个城市加一升油,之所以选...原创 2019-08-08 20:39:15 · 943 阅读 · 0 评论 -
数据结构总结
一、栈(先进后出)1、定义栈是一种操作受限制的线性表,即只能从某一端插入和删除的特殊线性表。进行插入和删除的一端称为栈顶,另一端称为栈底。插入称为进栈,删除称为退栈。2、具体代码实现#include<iostream>#include<cstdio>using namespace std;#define n 100int s[101];void push(...原创 2019-05-08 23:58:04 · 95 阅读 · 0 评论 -
树学习
一、树1、定义:树是由若干个元素组成的有限集合,每一个元素又称节点,第一个节点为根节点或树节点,每一个子集又是一棵树,这些集合(子树)。2、基本概念:1)度:结点子树个数,度为0的结点称为叶结点,不为0的称为分支结点。2)结点关系:树形结构中,用线段连接上下结点,上端结点为父节点,下端为子节点,同一结点为兄弟节点,从根结点到某个子结点所经过的所有结点为这个子结点的祖先。称以某个结点为根的...原创 2019-05-11 23:44:07 · 339 阅读 · 0 评论 -
知识点————堆
堆(head)1、堆是一个种完全二叉树,深度为K、,其中前K-1满结点,最后一层结点可不满,但都集中在左边。本质是一维数组。树的节点与数组元素对应,例如下。2、性质:数组长度为L,二叉树节点个数为S,L<S,数组储存结点值,A[1]为根结点。由完全二叉树可得,结点i的父节点为i/2,左下结点为2i,右下结点为2i+1。3、操作主要操作:get(),put()void put(in...原创 2019-05-15 23:25:37 · 242 阅读 · 0 评论 -
最近学习与总结--并查集
一、近期总结1)最近在洛谷上刷了一些题,感觉还可以,难度不是太大,主要是一些基础模拟,不过模拟起来需要花费点时间。有一道题是关于环的,需要进行破环,之前有听老师讲过,但没自己做过,破环主要是将一个环的全部元素按顺序重复一次。还有一个贪心的题目,好久没做了,都快忘完了,希望能够在之后的VJ比赛上多注意一下。还有做题时总是不注意细节,出现错误,必须去测试不同数据去发现错误。2)图论的题目不太明白,...原创 2019-05-22 23:27:48 · 192 阅读 · 0 评论 -
图论
图论一、什么是图1、图是(vertex,node顶点和 边(edge)组成。2、分类(1)无向图(无指向)例如:亲属关系,路程图(2)有向图(边有指向)例如:流程图(3)带权图(边上带权值)权值可表示时间、价值等———无向图1、如果两顶点之间有边连接,那么视两顶点相邻,相邻结点的序列称为路径。起点和终点重合的称为圈。任意两点都有路径连接,称为连通。顶点连接的边数称为顶点的度。...原创 2019-05-25 23:42:25 · 194 阅读 · 0 评论 -
线段树
线段树主要是对一维数组区间求极值,区间和,对区间修改,或单点修改。一、//针对最小查询#include<bits/stdc++.h>using namespace std;int a[100];struct Tree{ int left,right; int min;};Tree tree[100];void build(int id,int l,...原创 2019-06-20 00:20:58 · 119 阅读 · 0 评论 -
poj2248 Addtion Chains(迭代加深)
DescriptionAn addition chain for n is an integer sequence with the following four properties:a0 = 1am = na0 < a1 < a2 < … < am-1 < amFor each k (1<=k<=m) there exist two (not...原创 2019-08-06 16:10:10 · 163 阅读 · 0 评论 -
图的遍历DFS、BFS以及拓扑序
//图的DFS、BFS#include<iostream>#include<queue>#define MAX 1000using namespace std;int tot=1,head[MAX]={0},ver[MAX],edge[MAX],next[MAX],v[MAX]={0},d[MAX]={0};int count=0;void in(int x,...原创 2019-08-05 20:06:13 · 222 阅读 · 0 评论 -
USACO wormhole
题目描述农夫约翰爱好在周末进行高能物理实验的结果却适得其反,导致N个虫洞在农场上(2<=N<=12,n是偶数),每个在农场二维地图的一个不同点。根据他的计算,约翰知道他的虫洞将形成 N/2 连接配对。例如,如果A和B的虫洞连接成一对,进入虫洞A的任何对象体将从虫洞B出去,朝着同一个方向,而且进入虫洞B的任何对象将同样从虫洞A出去,朝着相同的方向前进。这可能发生相当令人不快的后果。例如,假设有两个成对的虫洞A(1,1) 和 B(3,1),贝茜从(2,1)开始朝着 +x 方向(右)的位置移动原创 2019-06-21 00:22:11 · 238 阅读 · 0 评论