这是一个例子[osily]
2009-07-07 20:43
190 查看
选择这个blog主要是因为有代码加亮功能,我感觉这个功能很重要,还有几个我正在注册中,有的要一些时间,到时候再对比一下选个好用的。
这个blog三个人一起用,先说几个问题。
写东西时题目后加一下自己的名,网名或代号,我的就是 osily,用中括号括上。对他人的文章有权利修改,如果有错误等问题的话,如果是比较严重的问题,要注明自己的身份,其他问题可以在留言给出,也要注一下身份。
以后有什么再补充。
这是代码示例:
这个blog三个人一起用,先说几个问题。
写东西时题目后加一下自己的名,网名或代号,我的就是 osily,用中括号括上。对他人的文章有权利修改,如果有错误等问题的话,如果是比较严重的问题,要注明自己的身份,其他问题可以在留言给出,也要注一下身份。
以后有什么再补充。
这是代码示例:
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int sticks[64], n, len, num; bool used[64]; bool compare(const int &a, const int &b) { return a > b; } bool dfs(int cur, int left, int level) { //cur: 当前已经计算的木棒编号,left:该段还剩的长度,level:已经成功的木棒数 if (left == 0) { //匹配一根木棒成功 if (level == num - 2) return true; for (cur = 0; used[cur]; cur++); used[cur] = true; if (dfs(cur + 1, len - sticks[cur], level + 1)) return true; used[cur] = false; return false; } else { if (cur >= n - 1) return false; for (int i = cur; i < n; i++) { if (used[i]) continue; if ((sticks[i] == sticks[i - 1]) && !used[i - 1]) continue; if (sticks[i] > left) continue; used[i] = true; if (dfs(i, left - sticks[i], level)) return true; used[i] = false; } return false; } } int main() { while (scanf("%d", &n) !=EOF) { if (n == 0) break; int sum = 0; for (int i = 0; i < n; i++) { scanf("%d", &sticks[i]); sum += sticks[i]; } sort(sticks, sticks + n, compare); bool end = false; for (len = sticks[0]; len <= sum / 2; len++) { if (sum % len == 0) { used[0] = true; num = sum / len; if (dfs(0, len - sticks[0], 0)) { end = true; printf("%d/n", len); break; } used[0] = false; } } if (!end) printf("%d/n", sum); memset(used, 0, sizeof(used)); } return 0; }
相关文章推荐
- python 实现一个TwoSum的例子
- mysql-外键约束(创建一个简单的例子)
- Android的一个Relative Layout的简单例子
- iframe的一个例子
- 一个关于类加载器加载顺序的经典例子
- 一个简单的C#多线程间同步的例子
- 一个多线程的死锁和锁争用的例子
- 一个table分列显示的例子
- 一个工作流引擎的例子
- 一个JTable的例子
- 一个经典例子让你彻彻底底理解java回调机制
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- 一个例子让你了解Java反射机制
- [Ant] [StartWithAnt] 第一章 一个简单的Ant例子
- ASP.NET Zero--14.一个例子(7)商品分类管理-分类搜索及分页
- jquery插件 validation表单的验证的应用的一个例子
- AngularJS入门2-一个完整的例子
- 利用C++编译器查找C程序中很隐蔽的错误的一个例子
- 一个jQuery EasyUI tree+Struts2+MyBatis例子
- sql关联查询一个例子