上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 67 下一页
摘要: 解法一:小根堆 要得到从小到大的第 \(n\) 个丑数,可以使用最小堆实现。 初始时堆为空。首先将最小的丑数 \(1\) 加入堆。 每次取出堆顶元素 \(x\),则 \(x\) 是堆中最小的丑数,由于 \(2x, 3x, 5x\) 也是丑数,因此将 \(2x, 3x, 5x\) 加入堆。 上述做法会 阅读全文
posted @ 2021-06-16 12:40 Dazzling! 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 状态表示: \(f(i,j)\):从前$i$张邮票中选,总面值恰好为$j$所需的最少邮票数。 状态转移: 按照完全背包的转移方式。 \[ f(i,j)=\min(f(i-1,j),f(i,j-v_i)+1) \] 边界: \[ f(0,0)=0 \] const int N = 2e6+10; in 阅读全文
posted @ 2021-06-16 09:38 Dazzling! 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 根据丑数的定义,0 和负整数一定不是丑数。 当 \(n>0\) 时,若 \(n\) 是丑数,则 \(n\) 可以写成 \(n = 2^a \times 3^b \times 5^c\) 的形式,其中 \(a,b,c\) 都是非负整数。特别地,当 \(a,b,c\) 都是 \(0\) 时,\(n=1\ 阅读全文
posted @ 2021-06-15 20:38 Dazzling! 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 完全背包裸题。 const int N = 10010; int f[N]; int n, m; int main() { cin >> m >> n; for(int i = 0; i < n; i++) { int score, time; cin >> score >> time; for(i 阅读全文
posted @ 2021-06-15 19:10 Dazzling! 阅读(9) 评论(0) 推荐(0) 编辑
摘要: $prim$模板题,起点可选任意一个点。 const int N = 110; int g[N][N]; int dist[N]; bool vis[N]; int n; int prim() { memset(dist, 0x3f, sizeof dist); dist[0] = 0; int r 阅读全文
posted @ 2021-06-15 19:08 Dazzling! 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 点数为$52$,可以用$floyd$求出其他点到终点的距离,选择到终点距离最小的点输出即可。 const int N = 55; int g[N][N]; int n=52,m; int get(char c) { if(isupper(c)) return c-'A'; return c-'a'+ 阅读全文
posted @ 2021-06-14 11:15 Dazzling! 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 3660. 最短时间 签到。 距离目标点$(r,c)$最远的一定是四个顶点中的某一个点。 int n,m; int r,c; int main() { int T; cin>>T; while(T--) { cin>>n>>m>>r>>c; cout<<max(r-1,n-r)+max(c-1,m- 阅读全文
posted @ 2021-06-13 15:14 Dazzling! 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 状态表示: $f(i)$表示考虑前$i$个元素,且选第$i$个数的情况下, 最长上升子序列和的最大值。 状态转移: \[ f(i)=\max(f(i),f(j)+a_i),a_j < a_i \] 边界: \[ f(0)=0 \] 注意点 $f(i)$初值设为$a_i$,表示仅选定当前元素,最长上升 阅读全文
posted @ 2021-06-12 22:36 Dazzling! 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 状态可表示成$6$元祖的形式: \[ (x_{cow},y_{cow},direction_{cow},x_{farmer},y_{farmer},direction_{farmer}) \] 由于每个状态每轮只会扩展出一个状态(即只有一种决策),就不需要借助队列来进行$BFS$了。 const i 阅读全文
posted @ 2021-06-09 16:43 Dazzling! 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 我们可以将所有类型 \(2\) 的操作安排在类型 \(1\) 的操作之前。因为类型 \(2\) 的操作是反转任意一个字符,而类型 \(1\) 的操作只会改变字符的相对顺序,不会改变字符的值。 当 \(n\) 是偶数时,交替字符串只可能为 \(0101\cdots 01\) 或者 \(1010 \cd 阅读全文
posted @ 2021-06-07 17:54 Dazzling! 阅读(181) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 67 下一页