当前位置: 首页 > news >正文

网站建设的行业新闻男和男做那个视频网站好

网站建设的行业新闻,男和男做那个视频网站好,珠宝首饰商城网站建设,快站的优惠券怎么发布的一#xff1a;题目 给定k个正整数#xff0c;用算术运算符#xff0c;-#xff0c;#xff0c;/ 将这k个正整数连接起来#xff0c;是最终的得数恰为m。 如果有多组满足要求的表达式#xff0c;只要输出一组#xff0c;每一步算式用分号隔开。 如果无法得到m#xff…一题目 给定k个正整数用算术运算符-/ 将这k个正整数连接起来是最终的得数恰为m。 如果有多组满足要求的表达式只要输出一组每一步算式用分号隔开。 如果无法得到m得输出“No Solution”。 样例输入:d 5 125 7 2 2 12 3 第一行输入整数的个数k和m 第二行输入k个整数。 这只是其中一种结果 样例输出 7321 21*12252 252-2250 250/2125 二思路 1.排列树 子集树 2.我们穷举所有的可能的数字组合这是全排列但要注意的是在全排列中如果给出的数据有重复的数字那么我们求的全排列后的数据是有重复的所以我们要进行去重处理 3.得到全排列的结果后我们要对每一个全排列的结果进行子集树处理因为每一次往下递归都是’’,’-’,’*’,’/’;递归的终止条件就是当我们统计 sum M时候,或者是我们的操作符个数满足要求的时候如果仅仅是操作符满足个数是不统计操作符的结果的 二上码 /* 1.题目: 给定k个正整数用算术运算符-*/ 将这k个正整数连接起来是最终的得数恰为m。 如果有多组满足要求的表达式只要输出一组每一步算式用分号隔开。 如果无法得到m得输出“No Solution”。 样例输入: 5 125 7 2 2 12 3 第一行输入整数的个数k和m 第二行输入k个整数。 样例输出 7*321 21*12252 252-2250 250/21252.思路分析 从输出的样例顺序(7,3,12,2,2)可以得知,这是一种全排列后的结果,对于每组数据之间的加减乘除,我们 可以做子集树划分 */#includebits/stdc.h using namespace std;int N,M; int cnt 0; vectorvectorint ans1; vectorint path1;vectorvectorchar ans2; vectorchar path2;//求出数字的全排列组合 void backtacking1(int N,vectorint vec,vectorbool vis){if(path1.size() N){ans1.push_back(path1);return;}for(int i 0; i N; i){if(vis[i] true) continue;vis[i] true;path1.push_back(vec[i]);backtacking1(N,vec,vis);path1.pop_back();vis[i] false;} }//子集树的排列 //横向的for循环为加减乘除纵向的为一种全排列的结果 void backtacking2(vectorchar v1,vectorint v2,int sum,int index){if(sum M || path2.size() N - 1){ //这里递归结束的条件为满足 M时 if(sum M){ //还有的是操作符号的个数不能大于 N - 1个 ans2.push_back(path2);cnt 1;}return ; }for(int i 0; i 4; i){//这里小于4是有4个操作符 char ch v1[i];if(ch ){sum sum v2[index];}else if(ch -){sum sum - v2[index];}else if(ch *){sum sum * v2[index];}else if(ch /){sum sum / v2[index];}index;//表示纵向的一种全排列结果集的下标 path2.push_back(ch);//将符号存进去 backtacking2(v1,v2,sum,index);//这里的顺序不能乱 path2.pop_back();index--;if(ch ){sum sum - v2[index];}else if(ch -){sum sum v2[index];}else if(ch *){sum sum / v2[index];}else if(ch /){sum sum * v2[index];} } } //验证全排列 void text01(){ for(int i 0; i ans1.size(); i){for(int j 0; j N; j){cout ans1[i][j] ;}cout endl;} }int main(){vectorintv1;//输入的数据vectorvectorint v3;//记录可行解 vectorchar operators(4); setints[100]; setint:: iterator st;cin N M;for(int i 0; i N; i){int num;cin num;v1.push_back(num);}cout endl; vectorbool vis(N,false); backtacking1(N,v1,vis); operators[0] ;operators[1] -;operators[2] *;operators[3] /;for(int i 0; i ans1.size(); i){vectorint v2;int count 0; for(int j 0; j N; j){ v2.push_back(ans1[i][j]);if(ans1[i-1][j] ans1[i][j] i ! 0){count; } }if(count N){ // 这是为了去重的因为在全排列中如果有重复的元素那么最终输出 continue; //的结果是有重复的组数据的 }int num v2[0];backtacking2(operators,v2,num,1);if(cnt 1){//这里存的是满足条件的 数字组合 v3.push_back(v2);} cnt 0;}for(int i 0; i ans2.size(); i){//v3.size() 和ans2.size()大小是一致的 cout 操作数为:;for(int j 0; j N; j){cout v3[i][j] ;}cout endl;cout 操作符为:; for(int j 0; j N - 1; j){//N个数需要 N-1个操作符 cout ans2[i][j] ;}cout endl;}} //5 125 //7 3 12 2 2//5 125 //7 2 2 12 3下方的的数据按照操作符都可以得到正确结果
http://www.zqtcl.cn/news/6384/

相关文章:

  • 怎么做蛋糕店的网站seo怎么发文章 seo发布工具
  • 怎么看网站有没有做百度推广安庆专业做淘宝网站
  • 网站开发与维护前景封面制作网站
  • 全国可信网站考研培训机构排名前五的机构
  • 国外交互设计网站欣赏搭建一个网站要多少
  • 本地的上海网站建设公网页制作免费教程
  • 登封网站制作自动采集更新网站源码
  • 太原手机模板建站公司变更登记申请书下载
  • 做地方门户网站赚钱吗广东省城乡建设部网站
  • sql2008做查询网站做网站的公司广州
  • 网站入口类型洞口网站开发公司推荐
  • 网站建设新发展wordpress上传预告片
  • yahoo不收录我的网站门户类网站前台
  • 鲜花网站有关建设生态建设网站
  • 一个网站怎么做流量统计湘潭响应式网站建设 速来磐石网络
  • 宜昌住房和城乡建设厅网站容桂微信网站建设
  • 外贸公司网站建设方案外贸网站wordpress
  • 盐城建设银行网站做美食网站的项目背景
  • 成都网站开发排名designer怎么做网站
  • 电子商务网站建设策划书范文苏州做网站公司
  • 怎吗做网站挣钱谁教我做啊谁会做网站啊
  • 黑龙江网站建设开发棋牌推广
  • 网站如何做免费的推广软件怎么做出来的
  • 江苏水利工程建设招投标网站wordpress 阿里oss
  • 在线建设房屋设计网站泉州做网站开发公司
  • 网站设计有哪些南京网站建设服务
  • 贵阳花果园r区网站建设建设厅科技中心网站首页
  • 中华建设杂志网站记者天津市工程建设交易服务中心网站
  • 宠物网站设计说明书哪里建设网站好
  • 网站安全建设申请东莞网站设计企业