24dian(牛客多校第三场)

题意:

给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以,输出所有牌的情况

题解:

直接按照题意模拟,这里是大佬代码
注意题意:一个有效解,其所有能得到m的组合方式,其中都要设计到分数(即非整数)
建议多打几遍。。emm
代码中有详细注释

代码:

#include<bits/stdc++.h>
using namespace std;
vector<double>v,ans[100009];
int n,m,flag,cnt,num;
bool judge(double x,double y) {//判断是否为整数 if (x>(int)x+1e-9) return 1;if (y>(int)y+1e-9) return 1;if (x/y>(int)(x/y)+1e-9) return 1;return 0;
}
void DFS2(int x,int qwq,vector<double> v) {if (x==n) {//符号已满 if (fabs(v[0]-m)<1e-8) {++flag;//所有能求出m的方案 if (qwq) ++cnt;//存在非整数的解的情况 }return;}int sz=v.size();for (int i=0; i<sz; ++i)for (int j=0; j<sz; ++j) {if (i==j) continue;vector<double> tmp; tmp.clear();//任选两个值进行运算的结果存入tmp//其他值不变存入tmp中 for (int k=0; k<sz; ++k)if (k!=i && k!=j) tmp.push_back(v[k]);tmp.push_back(v[i]+v[j]);DFS2(x+1,qwq,tmp);tmp.pop_back();tmp.push_back(v[i]-v[j]);DFS2(x+1,qwq,tmp);tmp.pop_back();tmp.push_back(v[i]*v[j]);DFS2(x+1,qwq,tmp);tmp.pop_back();tmp.push_back(v[i]/v[j]);DFS2(x+1,qwq|judge(v[i],v[j]),tmp);tmp.pop_back();     }
}
bool check(vector<double> v) {flag=0; cnt=0;DFS2(1,0,v);//flag==cnt说明是所有解都包含非整数 if (flag==cnt && cnt) return 1;return 0;
}
void DFS1(int x,int pre) {if (x==n+1) {//牌数已满 if (check(v)) {ans[num++]=v;}return;}for (int i=pre; i<=13; ++i) {v.push_back(i);DFS1(x+1,i);v.pop_back();}
}
int main() {cin>>n>>m;DFS1(1,1);cout<<num<<endl;for (int i=0; i<num; ++i) {int sz=ans[i].size();for (int j=0; j<sz; ++j) cout<<ans[i][j]<<' ';puts("");}
}

24dian(牛客多校第三场)相关推荐

  1. 牛客多校第三场 B【Classical String Problem】

    牛客多校第三场 B[Classical String Problem] 链接:https://ac.nowcoder.com/acm/contest/5668/B 来源:牛客网 题目描述 Given ...

  2. 牛客多校第三场A【Clam and fish】贪心

    A[Clam and fish]贪心 链接:https://ac.nowcoder.com/acm/contest/5668/A 来源:牛客网 题目: There is a fishing game ...

  3. 2020牛客多校第三场[C Operation Love+基础计算几何 判断多边形顺逆时针]

    题目链接 题目大意:就是给你两个左右手的模型,下面给出这两只手通过平移变换之后坐标问你这只手是左手还是右手?[题目保证坐标是按照顺时针或者逆时针给出的] 解题思路:首先我们先观察一下这只右手:假如数据 ...

  4. exgcd ---- 2020牛客多校第三场:[Fraction Construction Problem:exgcd+思维题]

    题目链接 题目大意:就是给你两个数a,ba,ba,b叫你求满足下面三个条件的c,d,e,fc,d,e,fc,d,e,f 1.cd−ef=ab1.{c\over d}-{e\over f}={a\ove ...

  5. Splay ---- 2018牛客多校第三场 区间翻转搞区间位移 或者 rope可持久化块状链表

    题目链接 题目大意: 就是每次把牌堆中若干个连续的牌放到堆顶,问你最后牌的序列. 解题思路: Splay 区间翻转的模板题: 对于一个区间[1,2,3,4,5,6,7,8][1,2,3,4,5,6,7 ...

  6. Math(牛客多校第三场)

    Math 题意: 问你有多少对(x,y),1<=x<=y<=n,满足(x2 + y2)%(xy+1) == 0 题解: 这种题...直接打表芜湖~ 通过打表发现:满足情况的为(i,i ...

  7. 2019牛客多校第三场 F.Planting Trees

    题目链接 题目链接 题解 题面上面很明显的提示了需要严格\(O(n^3)\)的算法. 先考虑一个过不了的做法,枚举右下角的\((x,y)\),然后二分矩形面积,枚举其中一边,则复杂度是\(O(n^3 ...

  8. 2019 牛客多校第三场 B Crazy Binary String

    题目链接:https://ac.nowcoder.com/acm/contest/883/B 题目大意 给定一个长度为 N 的 01 字符串,输出最长子串和子序列的长度,满足其中 0 和 1 的个数相 ...

  9. 2022年牛客多校第三场补题记录

    A Ancestor 题意:给出两棵 nnn 个节点的树 A,BA,BA,B,A,BA,BA,B 树上每个节点均有一个权值,给出 kkk 个关键点的编号 x1,x2,⋯,xkx_1, x_2, \cd ...

最新文章

  1. Dell服务器的 Idrac调试口的配置方式
  2. CosmoMC命令CAMB文件画功率谱
  3. openwrt 安装尔雅云_[网络]openwrt的阿里云编译
  4. c#与mysql数据库连接以及.net framework版本修改问题
  5. Oracle创建 表空间 用户 给用户授权命令
  6. 音视频技术开发周刊 | 168
  7. 使用Scala,Play和Akka连接到RabbitMQ(AMQP)
  8. Python文件类型
  9. C++:类占用的字节内存
  10. Spring框架----Spring常用IOC注解的分类
  11. Bailian4078 实现堆结构【模拟+优先队列】
  12. td中文字间距_怎么做?文字编排创意的小心思
  13. ubuntu 串口调试工具推荐_Qt开源作品3-串口调试助手
  14. Protel 格式网表转换 Allegro 格式网表的 Skill 程序
  15. 辞退了一位简历造假的程序员,简历美化可以,造假不可取!
  16. SmartDrv的前世今生——PrimoCache_2.2.0汉化
  17. layabox 打印_LayaBox开发实战之实现一个简单的模板类
  18. 大数据杀熟已被明令禁止!
  19. Centos7 制作系统iso镜像文件
  20. excel中文件格式与扩展名对应关系

热门文章

  1. 笑翻了!想象的论文答辩和真实的论文答辩
  2. 来自爸妈的敷衍问候!| 今日最佳
  3. “杀”一个程序员不需要用枪,改三次需求就可以了!
  4. php 中 t怎么打开,怎么在PHP项目中实现一个explort() 功能
  5. 面试难点!常用算法技巧之“滑动窗口”
  6. c++ 多重背包状态转移方程_【考前再叮嘱】陌生方程式书写
  7. 未发现android设备,Brother iPrintScan 应用程序上出现错误信息“未发现支持设备”(Android™ 智能手机)。...
  8. mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...
  9. 机器学习之tensorflow出现的一些问题
  10. 数据结构 快速排序(详解)