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

璨与序列 题解(stl,dfs)

描述

璨有一个长度为n的整数序列a1​,a2​,…,an​。
不过他想重新排序这个序列(也可以保持原序列),把这个序列变成每个元素ai​(2≤i≤n)
都恰好是前一个元素的二倍或前一个元素的三分之一。

输入描述

第一行包含整数n。
第二行包含n个整数 a1​,a2​,…,an​。

输出描述

如果存在方案,则输出"Can is happy!",然后输出一行n个整数,表示排序后的序列。输出任意合法方案即可。
否则输出,"Can is sad."

用例输入 1

4
42 28 84 126

用例输出 1

Can is happy!
126 42 84 28

用例输入 2

3
2 2 3

用例输出 2

Can is sad.

提示

数据范围
所有测试点满足 2≤n≤50,1≤ai​≤3×1018。

代码:

//计算机脑袋只是筛选
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxj=100;
int a[maxj],n;
multiset<int>s;
vector<int>ans;
bool dfs(vector<int>t,multiset<int>st){//dfs有形参,需要递归分治操作if(t.size()==n){ans=t;return true;}//分治结束int x=t.back();if(st.count(x*2)){t.push_back(x*2);s.erase(s.find(x*2));if(dfs(t,st))return true;//判断行还是不行t.pop_back();//不行就消除影响st.insert(x*2);}else if(x%3==0&&st.count(x/3)){t.push_back(x/3);s.erase(s.find(x/3));if(dfs(t,st))return true;t.pop_back();st.insert(x/3);}return false;
}
int32_t main(){ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);cin>>n;for(int i=1;i<=n;++i){int x;cin>>x;s.insert(x);}ans.push_back(*s.begin());if(dfs(ans,s)){//判断计算cout<<"Can is happy!"<<'\n';for(auto i:ans){cout<<i<<' ';}cout<<' ';}else{cout<<"Can is sad."<<'\n'; }return 0;
}

相关文章:

  • 【Python入门与进阶】Python如何处理不同进制的数据
  • Spring Cloud Bus 消息总线基础入门与实践总结
  • 数字化那点事:一文读懂智慧城市
  • CATIA P3 V5-6R 中文版软件下载安装 达索CATIA三维设计软件获取
  • Vitis HLS 学习笔记--移除内存分配malloc
  • 活久见!谁想的这种办法让大模型PK
  • 最新下载:Paragon NTFS for Mac 15【软件附加安装教程】
  • RK3588开发笔记-100M网口自协商成1000M网口
  • pdf压缩到指定大小的简单方法
  • 《Foundation CSS 参考手册》
  • 探索微软Edge
  • bugku---misc---赛博朋克
  • 2024年第三届数据统计与分析竞赛(B题)数学建模完整思路+完整代码全解全析
  • ArrayList浅析
  • Linux系统 DM8安装 达梦数据库
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • CAP理论的例子讲解
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Netty 4.1 源代码学习:线程模型
  • Sass 快速入门教程
  • uva 10370 Above Average
  • 从PHP迁移至Golang - 基础篇
  • 汉诺塔算法
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 面试总结JavaScript篇
  • 七牛云假注销小指南
  • 实习面试笔记
  • 一道面试题引发的“血案”
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 函数计算新功能-----支持C#函数
  • ​【已解决】npm install​卡主不动的情况
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2)STL算法之元素计数
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matlab)使用竞争神经网络实现数据聚类
  • (独孤九剑)--文件系统
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (生成器)yield与(迭代器)generator
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .axf 转化 .bin文件 的方法
  • .NET : 在VS2008中计算代码度量值
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Reactor简单使用教程
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 获取url的方法
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国