摘要: 全排列的生成,c++的next_permutation是O(n)生成全排列的。具体的O(n)生成全排列的算法,在 布鲁迪 的那本组合数学中有讲解(课本之外,我就看过这一本组合数学),冯速老师翻译的,具体在哪个地方讲的忘记了。。 阅读全文
posted @ 2017-11-05 14:07 追梦的蚂蚁 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 直接暴力搞就行,优化的地方应该还是计算因子和那里,优化方法在这里:http://www.cnblogs.com/guoyongheng/p/7780345.html 这题真坑,能被写成两个相同盈数之和的数字也算能被写成两个盈数之和,题目描述不清楚。。。 阅读全文
posted @ 2017-11-05 13:56 追梦的蚂蚁 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 水过前三道题之后,一直在写这个题,做不对。总有那么几组数据过不去。。。 看了看题解是最短路,这思路感觉很神奇。看了下唯一做出来这题的那人的代码,是搜索做的。 标程: 对每个数字x,向x+1建一条花费为1的边,向x 10建一条花费为0的边,这样1 0的最短路+1就是结果了。 可能有人会疑惑9+1=10 阅读全文
posted @ 2017-11-05 13:10 追梦的蚂蚁 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 二分水题,A,B,C三个数组排序,对于每个B[i],二分算出来有多少A比他小,多少C比他大,然后扫一遍出结果。O(nlog(n))水过。 include using namespace std; const int MAXN = 1e5+10; int A[MAXN],B[MAXN],C[MAXN] 阅读全文
posted @ 2017-11-05 13:03 追梦的蚂蚁 阅读(149) 评论(0) 推荐(0) 编辑