水
/************************************************* Author :Running_Time* Created Time :2015/9/23 星期三 00:19:33* File Name :A.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include
尺取法
题意:每个朋友有他的金钱和友好程度,从朋友中选取一些人,问在贫富差距小于d的最大友好程度和为多少
分析:先按照m金钱从小到大排序,枚举每个起点看以这个人为最穷的人能得到的最大友好程度多少,然后是第二穷的人。。。。。复杂度O (nlogn),尺取法也叫two points ?
/************************************************* Author :Running_Time* Created Time :2015/9/23 星期三 00:19:38* File Name :B.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include
DFS
题意:从根节点1出发,到底部的点的路径没有超过连续m个点有cat的个数为多少
分析:简单的深搜,记录走到当前点最大连续cat数,注意一些剪枝
/************************************************* Author :Running_Time* Created Time :2015/9/23 星期三 00:19:41* File Name :C.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include
状态压缩DP
题意:n道菜选择m道,每道菜有一个愉悦度,如果某些菜按照先后顺序吃还能得到额外的愉悦度,问最大愉悦度为多少
分析:其实就是一个DAG问题,数据范围18应该想到状压,我不熟悉以为数据范围太大,做不了。dp[mask][i] 表示当在mask集合状态下,最后是第i道菜的最大愉悦度为多少,状态转移方程:dp[(i|(1<<l))][l] = max (dp[i][j] + a[l] + g[j][l]) 复杂度O(2n * n2).
/************************************************* Author :Running_Time* Created Time :2015/9/23 星期三 01:49:58* File Name :D.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include