题解列表

筛选

跟01背包问题一样

注意01背包问题就是分情况讨论,当你遍历每一个药物时,你都只能选择拿或者不拿上这一个,假设用dp[i][j]表示前i个在剩下的j时间中所能装的最大价值,则如果你拿上新的物体,就是dp[i][j]=max(dp[i-1][j-w[i]],dp[i-1][j]),忽略该物体,

经典的动态规划

解题思路:注意01背包问题就是分情况讨论,当你遍历每一个物体时,你都只能选择拿或者不拿上这一个,假设用dp[i][j]表示前i个物体在剩下的j容量中所能装的最大价值,则如果你拿上新的物体,就是dp[i][j]=max(dp[i-1][j-w[i]],dp[i-1][j]),忽略该物体,

Tom数(c语言)

摘要:注意事项: 定义的范围要大些 参考代码: ```c #include #include int main() { unsigned int a; while(scanf("%u"……

两种方法解题,一种列表,一种集合

解题思路:主要就是算L+1棵树里面需要减去的数目,重合的地方不再重复减,挺简单注意事项:用集合的时候要注意集合的创建方式别写错参考代码:方法一,采用列表:a,b=map(int,input().split())e=[1]*(a+1)foriinrange(b):c,

就简单比大小,感觉没什么含金量

解题思路:数据用map转化为迭代类型再转化为列表,然后遍历该列表比大小就行,注意高度相等也算够得到注意事项:不要忽略高度相等参考代码:a=list(map(int,input().split()))b=30c=int(input())count=0foriina:ifi<=c+b:count+=1pr

类似删除法求质数(C语言代码)

摘要: 本来是想讲一下思路,但是发现解释的无比乱,干脆直接上图,代码如下:void prime(int); int main() {     int a, b;     scanf("%d%d", ……