- 博客(3)
- 收藏
- 关注
原创 5.24题单题解
我们来考虑转移 f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+c[i][j]==0;状态转移: F[l][R]=max(F[L][mid]+F[mid+1][R]+该断点处的贡献,F[L][R]);对于组合数问题,我们可以考虑杨辉三角,可以发现 C[i][j]=c[i-1][j]+c[i-1][j-1] 其中 c[i][j]表示i个物品中选j个的方案数。接着我们来考虑答案 设状态方程F[n][m]表示在给定n,m下答案个数为f[n][m]
2024-05-24 23:00:54
522
2
原创 第二周训练赛题解
我们设f[i][x]表示对于当前点i距离为x的点有多少个,我们首先可以用O(n^2)的暴力来做,但这样会超时。我们考虑如何推导f[x] 假设当前位置x上的数x放在位置y上(1<=y<x)如果数y放在位置x上那就相当与x,y互换位置 剩下x-2个数错排,如果数y不放在位置x上那此时相当于有x-1个数错排因为y不能放在位置x上,所以f[x]=(x-1)*(f[x-1]+f[x-2]);题目大意是将 x(1<= x <= 1e8) 分成n个整数(1<=n<=x)并使这n个数的gcd最大。
2024-02-04 17:49:16
1757
1
原创 邻接矩阵/链式前向星/邻接表
其实邻接表已经可以解决问题了但我们还是推荐用链式前向星:内存: vector 是 c++STL 中的 动态连续存储线性表, vector在每次扩充容量时默认都会多申请2倍的空间时间: STL的调用, 内部实现都导致 vector 是一个非常慢的结构这样容易爆,所以来看链式前向星:关于链式前向星,其实就是用一个链表将每条边的信息储存下来我们定义h[N]数组表示 点 i最后一次加入的边的编号用数组e[n]来储存第i条边的信息。
2023-11-17 21:46:14
498
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人