12 2018 档案
摘要:很多题都是要求出什么最大公约数或者最小公倍数什么的,也有一些题目是和约数个数有关的,所以需要总结一下。 首先最大公约数和最小公倍数怎么求呢? 当然是观察法了,对于一些很聪明的孩纸他们一般随便一看就秒出答案,当然更聪明的孩纸知道最小公倍数并不容易求出。 所以需要先看出最大公约数,然后两数乘积/他们的最
阅读全文
摘要:跟着书上的思路学习dp的单调性优化觉得还是很容易想的。 数据范围: dp,数据范围是百万,这应该是O(n)的算法了。 首先不难想到设f[i]表示到第i个百米所能达到的最大能量,那么f[n]即为所求。 f[i]=max(f[i],f[j]+s[i]-s[j]-cost[i]);这个地方s数组是能量的前
阅读全文
摘要:A*算法其实就是估价函数来优化搜索什么的,关键是估价函数的构建。 dij跑一遍bfs跑一遍即可。显然估价函数可以是由终点跑向各个点的最短路 #include<bits/stdc++.h> #include<iostream> #include<iomanip> #include<cstdio> #i
阅读全文
摘要:这道题算是一道需要考虑优化算法的题了。 读题,不难发现需要求出的答案是第一个满足不了的订单,所以可以考虑二分快速查找这时,不难想到一个普素算法30分,直接暴力check不就好了。 #include<iostream> #include<cstdio> #include<ctime> #include
阅读全文
摘要:学习了对拍,主要总结一下该咋么写,针对本人,出现了以下几点问题。 1.4个程序的文件名一定要起好,以后要固定分别为bf(暴力)brutal force 、sol(solution)、pai(对拍的程序)、random(随机数据的产生)。 2.然后是bf和sol的输入和输出位置的所在地。都为 输出的位
阅读全文
摘要:今年noip的题和去年绝对是比较坑的题了,但是打好的话就算是普通水准也能350分以上吧。 t1: 很显然这是一个简单的dp即可。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<string
阅读全文
摘要:noip 2018 day1 t3听学长说是二分+树形dp+二分。但是暴力分给的还是挺足的55分。 20分是树的直径,无奈不会求,n^n暴力dfs只拿了10分,血亏一波。 1.树形dp求树的直径 设当前节点为x,d[x]表示以x为节点所能到达的最长链。显然对于穿过x的树的直径=d[x]+d[tn]+
阅读全文
摘要:重学并查集,该会的一些操作还是得会。。。 1.路径压缩 2.按秩合并 都略了,一道亲戚两者都用,代码: 听说这样每次getfather都是常数级别的,炒鸡快诶! 然后带边权的并查集,银河英雄传大家都听说过,还是不太好相同的代码丢一波。 #include<iostream> #include<cstd
阅读全文
摘要:euler路问题也称一笔画问题。 1.一张无向图,若存在一条从节点s到节点t的路径,恰好不重不漏地经过每条边一次(可以重复经过图中节点,最终回到节点s。 这条路径称该路径为s到t的euler回路。其实通过图中所有边的简单路就叫euler路。 2.特别的,如果存在一条从s出发的路径,恰好不重不漏地经过
阅读全文
摘要:做了很多关于树上dp的题有些使用了nm^2的算法来进行dp,可是当m过大时方法不大试用,又可以对这种算法进行优化,如dfs序或者直接树上合并背包。当输出方案时又需要多叉转二叉进行dp寻找方案,很多方法于是乎总结一下。 w[i]表示第i个节点的重量,v[i]表示第i个节点的价值,f[i][j]表示以i
阅读全文
摘要:树状数组是一种较为高级的数据结构,下面总结一下具体应用(按照树神讲的顺序: 树状数组Binary Indexed Trees简称BIT。其平摊了修改和查询的时间复杂度,使他们都成为O(logN)的级别! 1.单点修改区间查询。(大家都会不再赘述。 2.区间修改单点查询,然后利用树状数组进行差分的求和
阅读全文
摘要:我会kmp了!我会kmp了!我会kmp了! 今天发现除了动态规划离我较近的就只剩下字符串一类的了,受不了dp了(开始了字符串的匹配。 打开一篇博客开始看,哇不懂啊,5min秒关博客,学会了,一个月前一直看都看不懂突然会了。。可能这就很神奇了,没有怎么深入深入的推。 直接思考出了kmp的过程实现一下就
阅读全文
摘要:看到同学在写一道树形dp,好奇直接拿来写,发现很不简单。 如图,看上去是不是很像选课,没错这不是选课,升级版吧,多加了点东西罢了。简单却调了一晚上和一上午。 思路:很简单强联通分量+缩点+树形dp。直接莽啊,发现强联通分量不是很会求,码力不好一直调。然后开始缩点,这个缩点就分成的讲究了你咋么缩都行反
阅读全文
摘要:随着校oj终于刷进了第一页,可以不用去写那些水题了,开始认真学习自己的东西,当然包括文化课。努力。。 这道题呢是道树形dp,可看到了根本就不知道怎么写思考过程: 5min 终于看懂了题 画了样例的图把输出看懂了 然后发现这不可做。。 设个状态吧,这肯定是从子树上进行转移的然后然后f[i]表示以i为根
阅读全文
摘要:输出 :2 这道题是道水题,当时卡学长了好长时间 所以写个题解发一下。 首先仔细看题 每次可更改左上角的矩阵中的数字,然后就可以简单的水过了,考虑一下搜索,爆搜嗯只有20分(还不是数据太水!加一个小贪心吧,左下角如果有1的话肯定会更改前面更改过得值,所以这时可以直接从右下角开始搜索可以直接找到最优解
阅读全文
摘要:hash真的很好用,这些杂一点的知识点我觉得还是很有必要的,对还有离散化。 1<=N<=1,000,000,其它所有数据都在[0...1,000,000,000]范围内 看起来很简单一道水题,其实也不是很容易,认真思考会发现这道题是道hash,产生点并产生n个不同的点就行了嘛,直接hash一下不就好
阅读全文
摘要:越发向dp深入越发现dp越有意思! 这道题做的时候感觉十分的难,然后看完学长的题解恍然大悟。设状态不好导致想了一中午,一直感觉不可做,其实是自己的状态设的不对,这道题呢,首先是一个求在树上建多个厂,而也有一道类似的邮箱设置问题,这个则是在坐标轴上设邮局,但那个是四边形不等式优化的区间dp,这个则是一
阅读全文