- 博客(10)
- 收藏
- 关注
原创 P1879 [USACO06NOV] Corn Fields G题解(状态压缩DP)
【代码】P1879 [USACO06NOV] Corn Fields G题解(状态压缩DP)
2024-02-29 11:00:15
546
原创 蒙德里安的梦想(优化版)状态压缩DP
求把 N×MN×M 的棋盘分割成若干个 1×21×2 的长方形,有多少种方案。例如当 N=2,M=4N=2,M=4 时,共有 55 种方案。当 N=2,M=3N=2,M=3 时,共有 33 种方案。
2024-02-04 11:21:17
486
1
原创 树的直径+LCA (最近公共祖先)学习记录
对于倍增的具体过程如下: 定义fa[u][j] 为 u 结点的 2的j次方级祖先,有递推式 fa[i][j]=fa[fa[i][j-1][j-1]];倍增 首先考虑两个深度一样的点,对于两个深度相同的点 x,y , 他们到LCA的深度差是相同 的,那么我们可以采取x,y同时向上移动,直到移动到相同的节点。如果线性地向上跳,时间复杂度不是很让人满意,由于祖先存在二段性,我们可以通过这个 性质进行倍增,找到最远的不同祖先,再找到那个祖先的父节点。
2023-08-29 22:28:09
27
1
原创 背包学习记录
其实很简单,先把数据每个都加权,就是这种类,能够提供的全部的贡献计算出来,再进行01背包分类就行,是不是很简单?顾名思义,就是把以上三种背包混合起来,也很简单,就是分开处理就好,只用一次就是一次,求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。多重背包的意思就是每个物体有固定的个数,比如每个物体可以用s[i]次;我们发现每一次dp[i]只和dp[i-1]有关系,我们可以将其省略;的最大价值dp[0][0]=0。个物品,选出来的重量正好是。的情况下计算最大的价值;
2023-08-29 21:57:12
27
1
原创 NEFU2080 天下“三”分 思路及题解
(1)、如果这位的数字小于3,就可以判断出这个位数上能出现的3的个数,就是这个数字前面的所有数字乘这个数的位数,比如:1221,个位出现三的个数就是122*1个,十位就是12*10个,百位就是1*100个所以3的个数就是 122+120+100=342个。(2)、如果这位数字大于3.就要在(1)的(基础)上加(1*位数);如1421:个位出现三的个数就是142*1个,十位就是14*10(基础)个,百位就是1*100+1*10(这个数*位数) 所以3的个数为142+140+100+100=482个;
2023-07-20 19:54:05
40
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人