摘要: 排列最多180种,每种都拿出来比较就行。 阅读全文
posted @ 2019-01-31 12:09 stul 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目: 有N堆石子,现要将石子有序的合并成一堆,规定如下: 1.每次只能移动相邻的2堆石子合并 2.合并花费为新合成的一堆石子的数量。 求将这N堆石子合并成一堆的总花费最小(或最大)。 样例: 输入:7 13 7 8 16 21 4 18 输出:239 说是简单dp,刚开始学dp还是有点困难,这个题 阅读全文
posted @ 2019-01-29 11:31 stul 阅读(1190) 评论(0) 推荐(0) 编辑
摘要: // time:20/01/19 23:44//digit 控制位数//tmp 作为中间变量,数组的每个元素 ×下一个 i 值的时候,保存在tmp里面//num 进位的时候,需要用num保存,然后给数组的下一位 #include <bits/stdc++.h>#define M 10010using 阅读全文
posted @ 2019-01-24 14:44 stul 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1.strlen函数。 普通版实现方法, int strlen( char *s) { int length = 0; while(*s++) length++; return length; } 优化版实现方法 int strlen(char *s) { char *str = s; while( 阅读全文
posted @ 2019-01-24 14:43 stul 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 每个物品的重量设置为w[i],它的价值设置为c[i]。背包总容量为V。设F[ ] 是每个重量的最大价值。 状态转移方程为 F[i] = max( F[i-1], F[i-w[i]]+c[i 阅读全文
posted @ 2019-01-24 14:38 stul 阅读(109) 评论(0) 推荐(0) 编辑
摘要: You have a garland consisting of nn lamps. Each lamp is colored red, green or blue. The color of the ii-th lamp is sisi ('R', 'G' and 'B' — colors of 阅读全文
posted @ 2019-01-24 14:24 stul 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题意:数塔给出来了,求顶点到底边数之和的最大值。 思路:从底边倒推回去,更新从倒数第二排开始的每个值。例如 6 更新 为 6 + 12 = 18。 初始化:底层 dp[n][i] = arr[n][i]; 状态改变方程:dp[i][j] = max(dp[i+1][j] , dp[i+1][j+1] 阅读全文
posted @ 2019-01-21 21:25 stul 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 给一个序列,求他的最长不下降序列。(并不是连续的序列) 题意不多叙述了。 思路: 定义一个f [ ] 数组,这个数组是用来保存 第 i 个元素的最长不下降序列值。 f [ ]数组里面的最大值,就是最长子序列。 例如: arr 13 7 9 16 38 24 37 18 44 19 21 22 f 1 阅读全文
posted @ 2019-01-21 21:12 stul 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 给你一个数,分解它的质因数。 例如 10 = 2 * 5; 8 = 2 * 2 * 2; 解决办法,这是最简单的解决办法,用这个数依次除以i,i从2开始。 优化办法:i不再递增,而是用素数表里面的数。 阅读全文
posted @ 2019-01-19 17:34 stul 阅读(397) 评论(0) 推荐(0) 编辑
摘要: unique的使用: 1. unique是把相邻的重复元素放到最后面。所以在对无序数列使用之前,需要用sort先排序。 2.unique的返回值是不重复区的的最后一个元素加一的地址。 sort(V.begin(), V.end() ); vector<int>::iterator end_uniqu 阅读全文
posted @ 2019-01-11 23:27 stul 阅读(82) 评论(0) 推荐(0) 编辑