ACM
文章平均质量分 72
like不倒翁
遇事不决,量子力学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
背包合集C++
//多重背包 #include <cstdio> #include <iostream> #include <cstring> #include<algorithm> using namespace std; int main() { int p[101],h[101], c[101]; int dp[101]; int...原创 2020-04-09 12:10:13 · 307 阅读 · 0 评论 -
剑指offer (JZ41—JZ50)
JZ41和为S的连续正数序列 中等通过率:29.07%时间限制:1秒空间限制:64M 知识点:穷举 描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 返回值描述: 输出所有和为S的...原创 2021-09-07 16:55:31 · 231 阅读 · 0 评论 -
剑指offer (JZ31—JZ40)
JZ31 整数中1出现的次数(从1到n整数中1出现的次数) 中等通过率:35.38%时间限制:1秒空间限制:64M 知识点:数学 描述 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数 例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次 示例1 输入: 13 返回值: 6 思路: 我们看到题目要求 “输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数”。其实就是求从1-n这n个数中,每一个数的计数位上出现的1的个数...原创 2021-09-07 15:30:29 · 278 阅读 · 0 评论 -
剑指offer (JZ21—JZ30)
JZ21栈的压入、弹出序列 中等通过率:30.88%时间限制:1秒空间限制:64M 知识点:栈 描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 示例1 输入: [1,2,3,4,5],[4,3,5,1,2] 返回值: ...原创 2021-09-06 21:44:56 · 135 阅读 · 0 评论 -
剑指offer (JZ11—JZ20)
JZ11二进制中1的个数 中等通过率:35.25%时间限制:1秒空间限制:64M 知识点:数学 描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 示例1 输入: 10 返回值: 2 思路:如果可以对从右向左的第一位1直接判断,遇到0直接略过,那效率就很快。 现考虑二进制数:val :1101000, val-1: 1100111 那么val & (val-1) : 1100000 如果你会了这个操作,是不是这题就很简单了。 ...原创 2021-09-05 15:53:33 · 269 阅读 · 0 评论 -
剑指offer (JZ1—JZ10)
JZ1二维数组中的查找 中等通过率:25.83%时间限制:1秒空间限制:64M 知识点:数组 描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ] 给定 target= 7,返回true。 给定target=...原创 2021-09-05 14:45:59 · 288 阅读 · 0 评论 -
朋友圈(并查集&路径压缩)
描述 现在有107个用户,编号为1- 107,现在已知有m对关系,每一对关系给你两个数x和y,代表编号为x的用户和编号为y的用户是在一个圈子中,例如:A和B在一个圈子中,B和C在一个圈子中,那么A,B,C就在一个圈子中。现在想知道最多的一个圈子内有多少个用户。 输入描述: 第一行输入一个整数T,接下来有T组测试数据。 对于每一组测试数据:第一行输入1个整数n,代表有n对关系。 接下来n行,每一行输入两个数x和y,代表编号为x和编号为y的用户在同一个圈子里。 1 ≤ T≤ 10 1≤ n≤...原创 2021-09-04 18:59:19 · 415 阅读 · 0 评论 -
JZ11 二进制中1的个数(剑指offer)
描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 示例1 输入:10 复制返回值:2 可以暴力求解;整数取模一位一位的看。 如果,给你一种超能力,你能直接对从右向左的第一位1进行判断,遇到0直接略过,那效率是不是很快。 现考虑二进制数:val :1101000, val-1: 1100111 那么val & (val-1) : 1100000。从右向左的第一个1被直接判断,略过了右边的0。 如果你会了这个操作,是不是这题就很简单了。 public c原创 2021-08-15 12:09:34 · 167 阅读 · 0 评论 -
JZ67 剪绳子 (剑指offer)
描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 输入描述: 输入一个数n,意义见题面。(2 <= n <= 60) 返回值描述: 输出答案。 示例1 输入:8 返回值:18 public class So原创 2021-08-15 11:51:39 · 158 阅读 · 0 评论 -
常见动态规划题目
常见动态规划题目的动态转移方程 子数组的最大累加和: dp[i]表示以num[i]结尾子串的最大累加和。 dp[0] = num[0]; for(1:n) dp[i] = max(dp[i-1]+num[i],num[i]); maxsum = max(maxsum,dp[i]); 最大公共子串: //注意二维数组大小:dp[n+1][m+1] dp[i][j]表示以第i个字符和第j个字符结尾的最长公共子串长。 dp[i][0]=0;//第二个字符串空 dp[0][j]=0;//第一个..原创 2021-05-07 21:59:04 · 141 阅读 · 0 评论 -
01背包,完全背包,多重背包,分组背包
//0 1背包 //有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。 //求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int main() { int n,m; int w[4000],d[400...原创 2021-05-07 21:53:24 · 131 阅读 · 0 评论
分享