LINK:Druzyny 这题研究了一下午 终于搞懂了. $n^2$的dp很容易得到. 考虑优化.又有大于的限制又有小于的限制这个非常难处理. 不过可以得到在限制人数上界的情况下能转移到的最远端点 且这个数组是单调的. 而下界是随意的. 这个可以利用单调队列做 也可以暴力线段树. 然后考虑怎么优化 ...
分类:
其他好文 时间:
2020-07-28 22:54:01
阅读次数:
115
HDU - 4734 题目大致意思:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。 题目给出a,b,求出0~b有多少个不大于f(a)的数。 这个f(x)计算就和数位计算是一样的,就 ...
分类:
其他好文 时间:
2020-07-28 22:05:32
阅读次数:
69
题目链接:https://www.acwing.com/problem/content/279/ 题目给定一个长度为n的序列g,和一个数m,要求将m分成n份,设定为数列a,使得数列g与数列a的乘积最小。根据排序不不等式,在g是升序的情况下,a是降序才会使得结果最小。所以对g进行降序排序之后,题意中的 ...
分类:
编程语言 时间:
2020-07-28 14:39:38
阅读次数:
80
:将每行输入的数字转换为十进制,然后预处理出所有满足题意的状态并存储于 sta ,再处理出单独一行时候的方案数并存储于 dp1,sta 枚举第 i 行的状态,判断第 j = i-1行的状态,并更新dpi , j ,最后累和即可 #include <bits/stdc++.h> using names ...
分类:
其他好文 时间:
2020-07-28 14:10:58
阅读次数:
62
###思路 这个题一看到什么从入度为零的点到出度为零的点,很容易想到toposort。这个题就是最基本的toposort+DAG DP,没啥好说的…… 主要注意一定是遇到出度为0的点,一条食物链才能算是结束,才能够累加答案。 Code #include<iostream> #include<cstd ...
分类:
其他好文 时间:
2020-07-28 10:17:55
阅读次数:
75
题目要求:给一个n*m的矩阵,求从左上角到右下角的两条路径,使得两条路径上的值只和最大。从左上角往右下角走的时候只能向下或者向右。 在这个问题中阶段就是步数,步数与坐标点的横纵坐标之和相差一个常数,所以可以通过坐标只和以及两个点的横坐标来确定当前的状态集合。此时通过一个点的所有入边更新一个点即可。一 ...
分类:
编程语言 时间:
2020-07-28 00:32:09
阅读次数:
116
题目 传送门 思路 如果暴力背包必然会T, 但是机房巨佬JZM好像直接用DP过了 我们考虑,如果只有1和2两种重量 我们可以用一个$log$来处理出答案 先用重量为2暴力填入背包, 我们考虑将价值最小的一个重量为2的推出背包意味着价值最大的两个重量为1的物品价值之和大于重量为2的最小价值 这很显然是 ...
分类:
其他好文 时间:
2020-07-28 00:26:23
阅读次数:
88
###题目 求和为target的数组元素组合数,含重复。 例: 输入 arr = { 1, 2, 3, 3, 4 } ,target = 6 输出 4 ###题解 dp[i][j]代表到数组第i-1个元素,目标和为j的组合数。 ###代码 package DP; public class Targe ...
分类:
编程语言 时间:
2020-07-27 09:39:35
阅读次数:
79
###思路 这个题不难,就是先Trajan缩点减小点数和边数的规模,然后在缩完点的图上跑DP即可。注意要用toposort解决DP后效性(或者是使用记忆化搜索)。 Code #include<iostream> #include<cstdio> #include<algorithm> #includ ...
分类:
其他好文 时间:
2020-07-26 23:07:29
阅读次数:
56
子串 字符串上的dp $f(i,j,k)$表示将A前i个字符划分成k段匹配了B中前j个字符的种数 考虑$f(i,j,k)$的转移,不仅有$f(i-1,j,k)$ 在$A(i)=B(j)$时可以由$f(i-1,j-1,k-1)$转移过来 在$A(i)=B(j)并且A(i-1)=B(j-1)$时,可以由 ...
分类:
其他好文 时间:
2020-07-26 22:57:31
阅读次数:
75