- 博客(7)
- 收藏
- 关注
原创 队内第一次集训——基础DP(讲义篇)
之前比赛吃太多DP的亏了....好多题都看不出DP,还有的是看出来了但是动态转移方程推不出来,所以在此准备先恶补DP...废话不多说,开始正题DP其实就是,把一个大问题分解成若干子问题,通过解决若干子问题来获得最终结果,这样说起来有点像分治,但实际上并不是,因为DP需要每一步都保留目前的最优解,同时满足无后效性。无后效性就是过去已经考虑过的情况就不会对后面产生影响了,直接就不用理他们。通过每一步都...
2018-04-28 21:24:13 389
原创 SEERC2017-Escape Room(思维)
题目链接:点击打开链接题目大意:给你n个数,表示已该处为起点的最长子序列的长度,让你形成一个1~n的队列满足条件。题目思路:长度越大,很明显越小(因为可以比你大的数字越多),如果长度为1,那就说明你是老大,后面肯定都比你小,所以先根据长度进行排序,如果长度相同就根据序号排序(序号的存在是为了方便这次操作后变回去,这次操作是为了方便赋值),因为长度越小,说明数字越大,按照序号排序是因为,到时候还要根...
2018-04-27 09:20:44 582
原创 HDU 1024(DP+滚动数组优化)
题目链接:点击打开链接题目大意:给一个m和一个n,n表示有n个数字,m表示有m种区间和,每个区间之间不能相互交叉,问你最大的m个区间和加起来最大是多少。题目思路:DP是我目前非常非常薄弱的方面QAQ,于是这道题足足花了我三个小时....看了一大堆的博客,终于貌似应该会了QAQ。直接上滚动数组难以理解,我先从二维的角度来讲一下这个题目思路。首先定义一个dp[i][j],表示i段j个数字的最大和是多少...
2018-04-13 21:38:52 477
原创 POJ 2253(dijkstra变形)
题目链接:点击打开链接题目大意:第一个石头当起点,第二个石头当终点,问你到第二个石头的最短路中最长的那条路有多长。题目思路:刚开始完全看不懂题目,然后百度一波看到要用dijkstra,还以为就是从石头一到石头二的最短路..自信满满的打出模板后,结果样例都过不去..后来实在没办法,去网上找了一波题解,还是有点看不懂,然后去找了大佬咨询了一波。原来这道题改了模板特别特别多的地方..dis数组存的不再是...
2018-04-11 20:24:25 230
原创 HDU 1711(KMP)
题目链接:点击打开链接题目大意:给你俩数列,一个有n个数字,一个有m个数字,问你这n个数字里面是否包含连着的那m个数字,如果有的话是在哪一个位置开始的,如果没有的话就输出-1题目思路:就是KMP的纯模板题。首先先对第二个数列即m个数字的那个数列进行预处理来获取Next数组(这里有个小坑,如果定义小写的next的数组,可能会跟某些头文件产生冲突从而导致CE),就是定义一个j=0,k=-1,如果k==...
2018-04-08 21:41:05 201
原创 HDU 1863(prime)
题目链接:点击打开链接题目大意:给你n个点,m条边,问你为了让每个城市之间都能联通最少需要多少钱。题目思路:之前用的是kruskal算法写的这题,这里用prime,感觉kruskal简单很多..有点像迪杰斯特拉算法,有一个vis来标记是否走过,一个dis确定目前最短路程。首先输入n,m表示n条边m个房子,然后输入n条边。接着把vis[1]标记为走过,然后dis[i]存1到各点的距离。然后进行一个m...
2018-04-06 21:23:18 210 1
原创 HDU 1863(kruskal)
题目链接:点击打开链接题目大意:给你n个点,m条边,问你为了让每个城市之间都能联通最少需要多少钱。题目思路:最小生成树模板题,第一次打最小生成树..kruskal其实挺简单的,简单地说就是不停的加边。同时需要用并查集的相关知识。首先先对并查集需要用到的数组pre进行初始化,即自己是自己的老大。然后输入边,并且根据边权进行排序。然后把最小边权的拉出来,查一下起点的老大和终点的老大,不一样就让起点跟终...
2018-04-06 20:02:01 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人