上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 31 下一页
摘要: 题目描述:玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=#include #include #include #include #include using namespace std;string str;int N;bool visited[1600000];bool match(const string &str1) { for(int i = 0; i > str; memset(visited, 0, sizeof(visited)); deque record; record.pu... 阅读全文
posted @ 2014-03-07 18:38 SangS 阅读(1844) 评论(0) 推荐(0) 编辑
摘要: 题目描述:一个数的序列bi,当b1 #include using namespace std;int dp[1001];int val[1001];int n;int main() { while(scanf("%d", &n) != EOF ) { for(int i = 0; i = val[i]) continue; dp[i] = max(dp[i], dp[j]+val[i]); } } int resval = 0; for(int i = 0; i < n; i ++... 阅读全文
posted @ 2014-03-07 18:33 SangS 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 对于一副扑克牌,我们有多种不同的洗牌方式。一种方法是从中间某个位置分成两半,然后相交换,我们称之为移位(shift)。比如原来的次序是123456,从第4个位置交换,结果就是561234。这个方式其实就是数组的循环移位,为了多次进行这个操作,必须使用一种尽可能快的方法来编程实现。在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是(n-1)/2)牌翻转过来,这种操作称之为翻转(flip)。在前面shift操作的结果上进行flip,结果就是165234。当然,如果是实际的扑克牌,直接翻转会造成正反面混在一起的,我们就不管那么多了。 给定n张牌,初始次序为从1到n,经 阅读全文
posted @ 2014-03-07 18:27 SangS 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定正整数N,函数F(N)表示小于等于N的自然数中1和2的个数之和,例如:1,2,3,4,5,6,7,8,9,10序列中1和2的个数之和为3,因此F(10)=3。输入N,求F(N)的值,1=<N<=10^100(10的100次方)若F(N)很大,则求F(N)mod 20123 的值。思路1. 剑指 offer 例题.2. 这题需要对数组求摸, 就懒得做了 阅读全文
posted @ 2014-03-07 18:20 SangS 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定n个物品的重量和两艘载重量分别为c1和c2的船,问能否用这两艘船装下所有的物品。思路1. 朴素背包问题2. 有几个细节要好好把握 (1) 在读入物品重量时顺带统计物品的最大值和总重量 (2) 对载重量较小的船计算dp3. 一维 dp, dp[i] 表示总物品重量为 i 时的最大价值, 因此 dp[i] 是不连续的, 统计结果时需要遍历 dp. 而二维 dp[][] 则可以填满矩阵代码 未通过九度测试#include #include #include using namespace std;int n, c1, c2;int wet[200];int dp[10000];int 阅读全文
posted @ 2014-03-07 18:17 SangS 阅读(228) 评论(0) 推荐(0) 编辑
摘要: Leetcode 原题.这里 N 最大会取到 13, TLE 了代码#include #include using namespace std;bool chess[15][15];int n;int cnt;void dfs(int depth) { if(depth == n) { cnt ++; return; } for(int i = 0; i = 0; j --) { if(chess[j][i]) { qualify = false; break; ... 阅读全文
posted @ 2014-03-07 18:03 SangS 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定一个n*n的矩阵,求该矩阵的k次幂,即P^k思路1. 和求解整数幂的思路相同, 使用分治策略, 代码的框架是int pow(a, b) { c = pow(a, b/2) c*= c; if(b 为奇数) c *= a; return c}2. 这道题求的是矩阵, 上面的框架不太好用, 毕竟返回一个矩阵是有点不靠谱. 既然显式的返回矩阵不行, 那就玩个把戏, 隐式返回.将矩阵设置为全局变量, 使得递归函数里对矩阵的操作全局有效, 就不需要显式返回矩阵了3. 尝试仅使用两个矩阵得出结果, 但失败了, 计算矩阵乘法, 至少需要三个矩阵的空间吧代码#include #in... 阅读全文
posted @ 2014-03-07 17:08 SangS 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1#include using namespace std;int m,k;int books[600];int main() { int n; scanf("%d", &n); for(int i = 0; i > 1; int cnt = 1, sum = 0; for(int i = 0; i... 阅读全文
posted @ 2014-03-06 23:47 SangS 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 题目描述:小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的。由于小明马上就要硕士毕业了,面临着买房、买车、给女友买各种包包的鸭梨,但是他的钱包却空空如也,他需要足够的money来充实钱包。万能的网友麻烦你来帮帮小明,如何在最短时间内安排自己手中的项目才能保证赚钱最多(注意:做项目的时候,项目不能并行,即两个项目之间不能有时间重叠,但是一个项目刚结束,就可以立即做另一个项目,即项目起止时间点可以重叠)。思路1. 一道任务调度题, 为此专门翻了下算法导论, 回顾了上面那道贪心可解的调度题目. 那道题目给定任务 阅读全文
posted @ 2014-03-06 23:45 SangS 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 题目描述:现在有一个序列123......N,其中N介于3和15之间,要求在序列之间加入+、-或者空格,使得该序列组成的数学表达式的运算结果为0。思路1. 枚举运算符, 时间复杂度为 o(3^15)2. 1_2 是 12, 10_11 是 1011, WA了很多次3. 一个简单的计算器做了一下午, 思路忘了. 要注意案例, 1+2_3, 1+2_3-44. 下次要把中序表达式转后序表达式的算法实现以下5. 使用了 STL, 超时了. 当然不需要使用 STL 也能做出来代码#include #include #include #include #include using namespace s 阅读全文
posted @ 2014-03-06 21:45 SangS 阅读(410) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 31 下一页