07 2019 档案

摘要:题意: 无向图加负的有向边,求是否存在负环 思路: 1. spfa: spfa是一直拿更新后的边来增广其他可达边,如果存在负环,则会一直增广,存下当前路径的长度,如果超过了n则说明一直在负环上增广,即存在负环 2. floyd: 跑一遍Floyd,如果存在某个点到自己的距离为负,则存在负环(负环上的 阅读全文
posted @ 2019-07-31 09:54 新新人類 阅读(130) 评论(0) 推荐(0) 编辑
摘要:题意: 有向图,求点1到所有点来回最短路之和 思路: 跑两边最短路,一次正向存边,一次反向存边(相当于把其他点到源点的路倒着走了一遍?) 用vector存图会tle,前向星加快读跑了1000ms就过了 "题目连接" 阅读全文
posted @ 2019-07-30 20:18 新新人類 阅读(296) 评论(0) 推荐(0) 编辑
摘要:题意: 一个有边权树,操作是询问节点ab所经过边的最大权和修改某边的边权 思路: 树链剖分,将边权下放到儿子的点权即可 cpp include include include include include define ll long long define FOR(i,l,r) for(i 阅读全文
posted @ 2019-07-29 09:58 新新人類 阅读(98) 评论(0) 推荐(0) 编辑
摘要:树链剖分 对于一棵树上两个节点所构成的链的操作,我们可以用树链剖分,来将树转化为多条链的集合(线性结构),从而将树上链的结构转化为线性结构的区间操作. 1. 找出每个节点的重儿子(包含节点最多的儿子) 2. 重儿子优先输出dfs序 对于如下一棵树进行剖分 找出其重儿子(红色线) 每个节点与其重儿子递 阅读全文
posted @ 2019-07-28 22:43 新新人類 阅读(205) 评论(0) 推荐(0) 编辑
摘要:题意 : 四种操作,1. 区间加,2. 区间乘,3. 区间更新为固定值, 4.求区间p次方和,p取值13 思路 : 维护前三种操作的懒标记,注意相互之间的影响.对询问,因为只有三种,直接对三种和都进行维护 调bug调了一下午,这种长度的代码一定要理清思路在写,不然会越写越乱,bug百出 阅读全文
posted @ 2019-07-26 18:49 新新人類 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一些机器人,能够上下左右移动,但有些机器人会被限制其中的一些操作,求经过任意的移动机器人能否相遇,如果相遇输出相遇位置 思路: 抽象成x,y轴上的移动,每个机器人只能在可行区间移动,并要重新更新可行区间. cpp include define ll long long defin 阅读全文
posted @ 2019-07-25 08:49 新新人類 阅读(175) 评论(0) 推荐(0) 编辑
摘要:链式前向星 最近看图论的板子总是有这种代码 实质就是链表的运用. 用Edge.next代表指向下一条边的指针,head[u]为节点u的头节点,每次加入新边时用头插法. 遍历点u可用 题目: luogo P2661 信息传递 题目大意: 每个点只有一个出度,求最短环(必存在) 思路: 阅读全文
posted @ 2019-07-23 20:33 新新人類 阅读(204) 评论(0) 推荐(0) 编辑
摘要:离散化 离散化目的是将较大区间的个体映射到较小的区间中,提升空间效率,常用来求当前位置的数在源序列的相对位置 cpp for(int i=1;i define ll long long define FOR(i,n) for(int i =1; i n; FOR(i,n){ cin a[i] b[i 阅读全文
posted @ 2019-07-23 18:53 新新人類 阅读(526) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一个序列,和m,k,求i=lraikrl+1m最小(可以选择空数组) 思路: 由于m最大只有10,我们可以枚举每个长度为1m1的区间($\left \lceil \ 阅读全文
posted @ 2019-07-23 09:28 新新人類 阅读(264) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一堆树,求同构(拓扑结构相同)树的集合 思路: 一开始写了个前序求置换序列,然后对比后序是否相等,但wa了,还需要对子树进行排序输出其dfs序,但是直接输出按节点多少排序的序列太复杂,于是将一个节点的dfs抽象成(),于是对树12,13输出的dfs序为(()()) 阅读全文
posted @ 2019-07-22 20:33 新新人類 阅读(211) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出长度为n的序列di和生命值H,每次到达该位置后生命值更新为H+di,求H首次为零的时段 思路: 首先想到先跑 |Hdi |1次然后跑最后一轮,但是序列的最小前缀可能远远小于di,所以跑$\ | \f 阅读全文
posted @ 2019-07-22 08:43 新新人類 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出字符串s,t,p,可以从p中任意取字符加入s中,问经过某些操作能否将p变成s 思路: 因为s,t中字符的相对位置不可以改变,从前到后对ts当前首位或p中任意一位对其进行匹配,贪心先用s的首位匹配. 如果匹配完成且t完全使用则可以匹配. c 阅读全文
posted @ 2019-07-15 11:55 新新人類 阅读(168) 评论(0) 推荐(0) 编辑
摘要:提到对象之间的通讯,我想到了设计模式中的责任链模式,他为请求创建了一个接受者对象的链.这种模式通过请求类型,在责任链上的对象来判断是否进行处理,对请求的发送者和接受者进行解耦 下面是转自菜鸟教程的实例UML图 但是我的项目中,对象请求和处理对象一般是一一对应的,并没有用到责任链模式,而是以下的几种处 阅读全文
posted @ 2019-07-03 16:34 新新人類 阅读(253) 评论(0) 推荐(0) 编辑
摘要:题目大意: 有一个序列但不知道具体的数值,给出一些提示 ti,li,ri,ti=0表示区间liri有序,ti=1则为无序 思路: 先构造一个全为1的序列,这样可以满足所有ti=1的情况,然后对每个ti=0先判断区间是否存在ti=0的区间包含,如果 阅读全文
posted @ 2019-07-02 01:00 新新人類 阅读(136) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示