Test SRM Level Two: CountExpressions, Brute Force
来源:互联网 发布:万兆mac芯片 编辑:程序博客网 时间:2024/05/29 03:32
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=8157
这道题目跟扑克牌算24的题目比较像,但要简单一些。点击查看 next_permutation 函数 的用法,使用这个函数减轻了不少工作量,而且算法很简洁明了。
代码如下:
#include <iostream>#include <vector>#include <algorithm>using namespace std;class CountExpressions{public:int calcExpressions(int x, int y, int val);};int CountExpressions::calcExpressions(int x, int y, int val){int i, j, k;int sum, count;vector <int> vnum;if (x > y) {swap(x, y);}/* 保证 x < y */vnum.push_back(x);vnum.push_back(x);vnum.push_back(y);vnum.push_back(y);sum = 0;count = 0;do {for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {for (k = 0; k < 3; k++) {switch (i) {case 0:sum = vnum[0] + vnum[1];break;case 1:sum = vnum[0] - vnum[1];break;case 2:sum = vnum[0] * vnum[1];break;}switch (j) {case 0:sum = sum + vnum[2];break;case 1:sum = sum - vnum[2];break;case 2:sum = sum * vnum[2];break;}switch (k) {case 0:sum = sum + vnum[3];break;case 1:sum = sum - vnum[3];break;case 2:sum = sum * vnum[3];break;}if (sum == val) {++count;}}}}} while (next_permutation(vnum.begin(), vnum.end()));/* 4个数字不同的排列组合 */return count;}
- Test SRM Level Two: CountExpressions, Brute Force
- Test SRM Level Three: LargestCircle, Brute Force
- SRM 212 Div II Level Two: WinningRecord,Brute Force
- SRM 582 Div II Level Three: ColorTheCells, Brute Force 算法
- SRM 212 Div II Level Three: LargestCircle,Brute Force
- SRM 510 D2L3:TheLuckyBasesDivTwo,brute force,optimization
- SRM 571 D2L3:MagicMoleculeEasy,brute force
- SRM 571 D1L2:MagicMolecule,brute force
- SRM 572 D1L2:EllysBulls,Brute Force,meet in the middle
- Brute Force
- SRM 582 Div II Level Two SpaceWarDiv2
- SRM 583 Div Level Two:IDNumberVerification
- SRM 219 Div II Level Two: HealthFood
- SRM 233 Div II Level Two: PipeCuts
- SRM 299 Div II Level Two: Projections
- SRM 577 Div II Level Two: EllysRoomAssignmentsDiv2
- SRM 585 Div II Level Two: TrafficCongestionDivTwo
- SRM 579 Div II Level Two: UndoHistory
- 关于extjs使用filefield上传时出现非真实路劲问题
- 常用网址记录
- javascript escape()和unescape()区别
- GB28181 SIP协议栈osip linux交叉编译
- 需要用的好工具
- Test SRM Level Two: CountExpressions, Brute Force
- 如何写好原创文章
- andorid知识点集合
- GitHub for Windows
- java调用dos命令
- 离散数学-命题
- 使你更有思想的20本书
- squid配置选项分析
- 关于EditText的显示和隐藏功能