HihoCoder
文章平均质量分 66
Masamiiiii
这个作者很懒,什么都没留下…
展开
-
hihoCoder 1142 三分求极值
点击打开链接 三分法介绍 在区间内用两个mid将区间分成三份,这样的查找算法称为三分查找,也就是三分法,三分法常用于求解单峰函数的最值。 二分法适用于单调函数,而单峰函数用二分明显不太好了,对于有些单峰函数,可以求导后转化为单调函数,从而使用二分,然而很多情况求导是很麻烦的,这时就需要用到三分了 题意:给出抛物线y=ax^2+bx+c 和点(x,y原创 2017-02-18 11:20:27 · 497 阅读 · 1 评论 -
hihoCoder 1151 骨牌覆盖 递推+矩阵幂
点击打开链接 题意:3*n棋盘 用1*2骨牌覆盖 用方法数 ?(n 最后一列有三个 每格是否被覆盖,转换成8种状态 设矩阵M[i][j] 增加一列后,最后一列的状态从i->j的方法数 (使得前面列都填满) A[i][j]前0列最后一行为i->j的方法数 则最后答案为A*(M^n) :A[7][7] #include using namespace std; typedef lon原创 2017-02-19 11:50:57 · 385 阅读 · 0 评论 -
Hihocoder 1044 DP状态压缩
点击打开链接 题意:n个物品,要求任意连续长度为m的区间内最多只能选q个,求能选的最大价值(n dp[i][state] 前i个物品的最大选法,第i个物品是否选,取决于i-m+1..i-1的选法,m #include using namespace std; const int N=4e3+20; int dp[N][N],w[N]; int check(int x) { int r原创 2017-03-02 15:19:20 · 263 阅读 · 0 评论 -
Hihocoder 1055 树形DP(分组背包)
点击打开链接 题意:从n个点的树中选出一个结点数不超过m的子树,使得val尽量大 n,m 设dp[i][j] 以结点i为根 选出结点数为j的子树的最大值,决策即i的子树v不选或者v中选多少个, dp[i][j]=max(dp[i][j],dp[i][j-k]+dp[v][k]) 前v-1组子树中选j-k个结点,子树v在选k个 #include using namespace std原创 2017-03-03 15:03:50 · 325 阅读 · 0 评论 -
Hihocoder 1054 滑动解锁 暴力dfs
点击打开链接 题意:手机滑动解锁,要求长度至少为4 每次可以走到相邻点,每个点只经过一次,给出某个路径的一部分n条边,问该路径有多少合法方案 两个点相邻当且仅当以这两个点为端点的线段上不存在尚未经过的点 4213合法,132非法 首先保存i->j时必须经过中间点,不考虑路径要求的n条边时 容易用dfs算出所有可能路径 由于最终路径要包含所给n条边,则dfs时记录路径中的边原创 2017-03-21 18:45:52 · 435 阅读 · 0 评论 -
Hihocoder 1273 清理海报 DAG建图+几何
点击打开链接 题意:给出n张矩形海报的左上角(x1,y1),右下角(x2,y),撕下一张海报A,会把海报B,C..都斯去(B,C..为覆盖A的海报) 海报A被海报B覆盖当且仅当他们存在面积大于0的交集并且A在B之前贴出,海报A的一个角被海报B覆盖当且仅当这个顶点处于海报B的内部 一张海报想要被手动撕掉的话需要至少存在一个角没有被其他海报覆盖,问选那一张海报手动撕 能使被撕去的海报最多?原创 2017-03-21 20:48:39 · 316 阅读 · 0 评论 -
Hihocoder 147周 小HI的烦恼 bitset(技巧)
点击打开链接 题意:n 暴力O(5*n^2) TLE 设 id[i][j] 第j门课排名为i的学生编号,s[j][i] 第j门课 排名为1..i的是那些人 第i人的答案为 第k门排名高于他的人的集合相交(k=1~5),则ans=s[k][a[i][k]-1]相交后集合中1的个数 #include using namespace std; const int N=3e4+10; in原创 2017-04-25 19:14:55 · 393 阅读 · 0 评论