自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ - 3436网络流_拆点+简单处理

写的第一道网络流。非板题。网络流貌似核心是在于建图的处理。POJ-3436 :看了题解才做出来。要求规划出合法生产线,这种形式基本就和网络流相关了。具体题意是:有一个产品,有k个部件,给出n台机器,每台机器接受一定的半成品,输出新的半成品。最终成品是全部部件都在的成品。每个机器都有单位时间最大生产量,输入序列和输出序列,输入序列对应位是0表示不能有这个部件,1表示必须有,2表示可有可无。输...

2019-05-31 02:03:24 385

原创 网络流最大流的基础问题

对于网络流的最大流,实际上求的是从s−>ts->ts−>t的最大流量,也就是输入sss,最多有多少能到ttt。这里引入残量网络的概念,就是容量减去已经使用的流量。(可以理解为一秒钟使用的流量)做法是(1)不断去求增广路,增广路就是一条路径:s−>t:s->t:s−>t,但是每条边都是有剩余流量的(走之前)。(2)每次求出增...

2019-05-29 23:23:10 408

原创 最短路进阶一:floyd传递闭包问题[POJ-3660]

会有这样的题目,数据量较小,给出两点间之间的关系,求最后是否矛盾(并查集:不过那道题还没有弄懂),或者求出一共有几层关系(火车排队:拓扑排序最长路),以及求出所有能够满足的关系简单来说:这里我们要求求出所有的关系,通过已给出的关系。题目:POJ-3660要求判断给出的点是否能确立和其他的点的大小关系,通过已给出的大小关系。可以floyd求解:做法一:先读入关系,但必须是有向边,否则处理会...

2019-05-29 00:10:05 266

原创 最短路的简单变式(dj贪心可扩展性、spfa的妙用)

不小心用了傻逼edge,导致粘贴代码的是全部卡死。结果是什么呢,写的解析全部没有了,现在也没有啥心情重写了。就写概括点把。简单来说就是:对于Dijsktra算法是局部贪心可扩展到全局最优。但是如果存在负权或者求最长路是不满足的,所以非法。接下来的一道题就是一道变式Dij,这道题是满足性质的,所以可以松弛得到最优。题目:POJ 1797求路径最小边可能的最大值。对于当前最大的min(d),...

2019-05-28 17:20:13 211

原创 简单的两圆关系

题目地址\color{red}题目地址题目地址有一定总结性的题目,所以我记下来了。题意就是对于三维中的n个球找到一条最小生成树,相碰或者想包含的小球视为可以直接到达。所以这样的情况直接让边长为000即可。那么怎么判断这样的情况呢。ddd为圆心距,RRR为大圆半径,rrr为小圆半径d=R−rd=R-rd=R−r时,两圆内切R−r<d<R+rR-r<...

2019-05-27 23:27:52 221

原创 Prim原始算法的可用性

Truck History\color{red}Truck\ HistoryTruck History题意就是对于n个点,每个点到其他的有一定距离,找出最小生成树。正常的Prim算法翻车惹,因为正常的复杂度为2mlogm2mlogm2mlogm(优先队列实现),但是现在用到的一共有n2n^2n2条边,正常算法2n2logn22n^2logn^22n2logn2,nnn是20...

2019-05-27 23:18:18 172

原创 Codeforces1600分训练日记

2019/5/221700\color{red}17001700 模拟\color{purple}模拟模拟题意主要是要求两种二维坐标的转换;简单的题目,就是暴力转换就可以了我们需要考虑的就是判断是哪一种形式,通过在字母后出现了字符,在字符后又一次出现了字母的方式。需要注意的是转换BBC这样的形式的时候,通过进制转换%26进行,但是需要考虑=0的时候应该是Z,而Z需要占用一个26,所以/=2...

2019-05-24 22:33:31 1506

原创 基本线段树

线段树可以实现很多的操作。这里就一些最基本的操作进行讨论。线段树是通过区间合并和lazy标记作为核心来实现log级别的操作的。区间合并是核心中的核心,你所要支持的操作需要转换成可以进行区间合并的形式。这里讨论了一些常见操作的维护+区间合并的题目。数据结构A题基本上维护和以及平方和,支持赋值、增、乘的操作。多个操作需要注意优先级:赋值*乘+增。pushdown的时候,赋值...

2019-05-19 13:12:35 138

原创 数据结构J题

种菜题解如上:自此。对于不相邻的问题,我们可以考虑用数组链表来解决[或者说相邻的问题]。用贡献的累积加减模拟对最佳元素的选择。删除相邻元素来实现新的关系。代码如下:#include<bits/stdc++.h>#define FOR(i,a,b) for(int i=a;i<=b;i++)#define ll long longusing name...

2019-05-19 13:12:27 202

原创 关于对区间颜色最大数量的快速处理

比如:我要求1~i区间内颜色数量=K的有多少个。cnt[i]记录颜色数量sum[cnt[i]]记录有颜色数量为cnt[i]的有多少个。这里肯定不会直接问上述问题,但是复杂度的核心要考虑到这个问题。因为我自己笨老是想不到,记下来。T1:cf_B2这道题需要你对于i处理1~i区间颜色=k的有多少个。这里不需要删除sum,也就是sum[1]会表示颜色种类,因为所有颜色会经过1。因...

2019-05-19 13:12:22 530

原创 并查集对状态的维护

这里的题目一般都是维护状态,每个集合表示的是一种状态(一般为两个)题目会询问第一次状态冲突的时候[并查集添加状态的时候发现已有状态并且状态不对]数据结构K题K题讲述的是:告诉你n个区间的和的奇偶,判断第一个矛盾的地方。区间和的奇偶可以转换成可以维护的前缀和之差的奇偶,和为奇,前缀和sum[l-1]和sum[r]一定奇偶不同。前者奇后者偶,或者反过来。这两种状态我们都添加到并查集...

2019-05-19 13:12:16 269

原创 Trie在求异或上的优秀做法

【参考了一些大佬:懒得放上来了..】Trie实质上是字典树,查询字符串是否存在可以用字典树查询(来可以查询多少个)这里我们用字典树查询Trie中的二进制串,异或值越大,代表高位差的越多,所以我们把数的二进制从高位记录。并从高位开始尽量走相反的路,能保证最大。具体看代码。D. Vasiliy's MultisetHDU4825NBUT-1597这三题只给出第一题的代码。第...

2019-05-19 13:12:09 312

原创 树形DP的背包问题

树形DP有一类问题是关于选择节点:我们可以用dp[i][0]表示不选,dp[i][1]表示可选可不选。这里我们讨论的是树形dp的背包问题,也就是对节点个数限制,同时要求尽可能的价值极值。我们考虑这样的动态规划方程:dp[i][j+k]=max(dp[i][j+k],dp[i][j]+dp[son][k]);不断用孩子节点更新:你取j个结点,新的孩子结点取k个结点。PS:这里遍历孩子...

2019-05-18 23:43:20 905

原创 《紫书:动态规划初步》总结二

多阶图的最短路对于一个数字矩阵,从左往右走,每次可以直右,右上,右下。走到最后的数字和最小为多少。同时输出字典序最小的走过的行号。这里有n^2的状态,但可以容易发现,每一列的n个状态可以划分为一个阶段,实质上是阶段之间的转移。枚举每个阶段,对于每个阶段的每个状态分别转移即可。dp[i]][j]表示从i、j开始走到最后的最小和,这是满足最优子结构的。维护每个状态下一次最优路径...

2019-05-13 23:32:12 136

原创 《紫书:动态规划初步》总结一

数字三角形问题:每个单独的点基本都是有两个父亲,有两个孩子。我们在贪心计算的时候,走错了孩子会导致局部最优而不是全局最优。因为我们舍弃了一些情况,暴力枚举不会舍弃任何情况,但是会导致重复枚举。因为左父亲要走这个孩子,右父亲也是。考虑动态规划:每个点走到最后一层的最大值是不受上层结构的影响的。(无后效性)如果从根节点开始走,走到i点是最好的选择,那么一定包含剩下的i点的最优路...

2019-05-13 13:31:51 240

原创 cf Power Transmission

Codeforces C题非常的好题:官方题解:转换直线为ax+by=c,直接每加一个直线计算贡献(=之前已有的直线),以后加入新的直线的时候,新的直线与这个直线相交,等价于计算到新的直线中,这样避免了算重。ax+by=c,因为x、y都是整数。这样方便计算。std::map<std::pair<int,int>,std::set<long long&gt...

2019-05-11 13:02:57 235

原创 数组链表的巧用

HDU6058题意:对于这种纯暴力计算贡献的,我们考虑用每个数字的贡献来计算。考虑每个数字作为第k大的数字,则左边有x个比它大的,右边就有k-x-1比它大的记录比它大的位置,O(nk)可以实现,方便去除和记录用链表实现。[从小到大,周边的一定比自己大]我们从最左边开始,往右搜保证每次数字都是第k大的。最后加起来。#include<bits/stdc++.h&gt...

2019-05-05 00:29:38 343

原创 ACM第一年总结

明天正好就是正式接触ACM一年了vj:84codeforce:115洛谷:206CDOJ: 大概三四十道(不用了)UESTC OJ :58一年下来 就写了五百多道题....接触ACM的第一年打了很好的基础,只能说是编程和简单思维上吧。现在开始才是真正的训练了。正经脸:不埋怨过去,放眼未来。这两个月的暑期集训选拔。加油!...

2019-05-04 18:40:47 197

原创 删数游戏(单调栈)

P1106 删数问题题意:删去k个数字,使剩下的数字最小。题解:我们考虑两个数字,肯定高位低的数字更小,随后再尽量保证低位小。利用单调栈维护一个n-k长的上升序列,如果新入栈的数比栈顶小就一直出栈直到不小。因为序列要保证长度,每个数只会入栈一次,出栈就删一个数。不过很有可能没删完就结束了。所以循环结束,需要把n-k以上的删完。特判下0。#include<iostre...

2019-05-04 02:00:40 503

数学模板.zip

本人整理的acm算法,包括数学的常用操作,x!质因数分解,判断大质数和大合数分解,扩展中国剩余定理,扩展欧几里得(判断和计算ax+by=s),非质数n次剩余,扩展BSGS,一定范围内的最近最远素数对,矩阵快速幂,FWT or,and,xor运算,FFT(快速傅里叶变换),斐波那契数列循环节,约瑟夫环等算法

2019-10-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除