一.问题 https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof/:面试题60:n个骰子的点数 二.解法 动态规划:用 dp[n][j] 来表示n个骰子的点数 j 出现的次数。 状态转移方程:表示n个骰子产生的点数 j 出现的次数等于 ...
分类:
其他好文 时间:
2020-03-26 01:26:22
阅读次数:
69
"423. 采药" 思路: 裸的01背包,背包容量V,n个物品,有重量v和价值w,一次只能选一个。dp[i,j]表示前i件商品中选择,体积不超过j可获得的最大价值。求可获得最大的价值。01背包的内存优化从大到小枚举体积。 ...
分类:
其他好文 时间:
2020-03-25 23:44:18
阅读次数:
78
又是来自PTA的习题: 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 输出格式: 最长单调递增子序列的长度 输入样例: 输出样例: 解题思路: 定义一个dp数组,全部初始化 ...
分类:
其他好文 时间:
2020-03-25 23:16:00
阅读次数:
127
动态规划(DP)不是某种具体算法,而是一种思想。 核心在于:把大问题转化为小问题,利用小问题的解推断出大问题的解。 大事化小,小事化了 的思想 一、基本思想 小例子: 上楼梯 今有 n 级台阶。初始时站在 0 级,每次可以向上走 1 级或 2 级。问方案总数? 递推关系:走到 f [ n ] ,要么 ...
分类:
其他好文 时间:
2020-03-25 21:26:11
阅读次数:
77
``` #include #include #include #include using namespace std; const int N=3010; int e[N],h[N],ne[N],idx; int f[N][2]; bool st[N]; void add(int a,int b)... ...
分类:
其他好文 时间:
2020-03-25 19:08:37
阅读次数:
74
给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨: 你挑选 任意 一块披萨。Alice 将会挑选你所选择的披萨逆时针方向的下一块披萨。Bob 将会挑选你所选择的披萨顺时针方向的下一块披萨。重复上述过程直到没有披萨剩下。每一块披萨的大小按顺时针方向由循环数组 ...
分类:
其他好文 时间:
2020-03-25 01:27:50
阅读次数:
140
从数据范围不难推出可以用f[][][][],表示由两个字符串来表示的最长大小 并且因为是回文串,所以我们要向头尾加字符,来变大,因为这个是回文子串,也就是连续的一段。 #include<iostream> #include<cstdio> #include<algorithm> #include<s ...
分类:
其他好文 时间:
2020-03-24 23:10:51
阅读次数:
69
题目描述 给 n 个数,从中选取任意个数判断有多少种方法可以使得选择的数的异或和小于 m 。 思路 建立状态 dp [ i ][ j ] 表示 i 个数中异或和为 j 的个数。 可以选择加上第 i 个数的异或和或者选择不加,于是有以下状态转移方程: dp[i][j] += dp[i 1][j] (不 ...
分类:
其他好文 时间:
2020-03-24 18:55:36
阅读次数:
57
只第一题过了80%,3.24复盘 第一题: n个人,选任意多人组成一个队(至少一个),再从中选一个队长,问多少种方案,模1e9; 过80% 思路:dp打表,找规律,n (2^(n 1)) 第二题: 走迷宫,不能走到障碍物上,每次上下左右移动一格,或者用飞行器飞到中心对称点(最多用五次),最少多少次到 ...
分类:
其他好文 时间:
2020-03-24 13:17:49
阅读次数:
113
题意:给出n本书 每本书有高度和宽度,题意让我们先讲高度排序(保证每一本书的高度不同,从大从小排对答案不影响) 相邻的书的宽度差的绝对值为贡献,让我们去掉其中k本书,求最小贡献 思路:去掉书的想法很难实现,我们逆向思维,在其中增加n-k本书 那我们设定一个dp【i】【j】表示第i本书前面的所有书(包 ...
分类:
其他好文 时间:
2020-03-24 12:37:54
阅读次数:
65