注意此类要处理前导零的数位DP题,因为如果前面全是0,这一位可以填0和1。 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> using namespace std; i ...
属于数位$DP$入门级别的题目,但我做这类题不多,还是要总结一下这道经典题目 $Description$ "题面" 给定$a,b$,求$[a,b]$区间有多少个数满足:任意两个相邻数位之间的差的绝对值$ =2$ $a,b=2) dp[i][j]+=dp[i 1][k];//把0的情况也处理 } in ...
传送门 "Luogu" 解题思路 数位 $\text{DP}$ 设状态 $dp[now][las][0/1][0/1]$ 表示当前 $\text{DP}$ 到第 $i$ 位,前一个数是 $las$,有没有顶到上界,有没有前导零的答案。 转移十分显然。 细节注意事项 + 咕咕咕 参考代码 完结撒花 $ ...
"题目" 首先我们可以非常轻松地预处理出$f_{i,j}$表示一个最高位为$i$位且该位为$j$的windy数的个数。 然后我们可以利用经典容斥把答案变成求$[1,x]$的windy数个数。 设$x$有$len$位,从低到高位分别是$a_1,\cdots,a_{len}$ 首先我们把位数小于$len ...
题目描述 windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。 现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。 这样,要切成 N ...
分类:
其他好文 时间:
2019-10-22 20:03:51
阅读次数:
68
题目链接 这道题数据范围比较小,所以方法还是比较暴力的。 思路: 先按每个格子的状态,让所有格子与他周围的格子连一条权值为它连向那个格子的值(0或1)。然后我们n方枚举所有格子跑最短路,最短路即为从起点到终点的最小障碍数。然后我们枚举所有最短路,先看他移除障碍后是否只用了小于等于k次机会,然后求出两 ...
分类:
其他好文 时间:
2019-10-06 20:15:13
阅读次数:
70
问题描述 "LG4158" 题解 设$opt[i][j][k]$代表到$(i,k)$刷了$j$次的方案数。 一开始DP顺序有点问题,调了很长时间。 务必考虑清楚DP顺序问题 $\mathrm{Code}$ cpp include using namespace std; template void ...
分类:
其他好文 时间:
2019-10-02 18:45:43
阅读次数:
67
传送门 一看 $n$ 这么小,搜就完事了... 因为最后每块小蛋糕面积固定,所以每次切完面积都必须是小蛋糕面积的倍数 那么最多只有第一次有 $10$ 个位置,之后越来越少,复杂度很低 然后注意不要乱剪枝...,每次切不一定只切长的边,枚举位置时因为左右两边是对称的所以只要枚举一半 ...
分类:
其他好文 时间:
2019-08-29 09:55:53
阅读次数:
121
题目 Description windy在有向图中迷路了。该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1。现在给出该有向图,你能告诉windy总共有多少种不同的路径吗?注意:windy不能在某个节点逗留,且通过某有向边的时间严格为给定的时间。 Descri ...
分类:
其他好文 时间:
2019-08-11 13:23:50
阅读次数:
63