Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two
D. Divide by three, multiply by two
•题意
给你一个数 x,有以下两种操作,x 可以任选其中一种操作得到数 y
1.如果x可以被3整除,y=x/3
2.y=x*2
y 再执行上述两种操作的一种得到数 z;
接着对 z 得到......
这样依次执行了 n-1 次会得到 n 个数;
现在给你这 n 个数,让你按照上述规则给这 n 个数排序,使得其满足
a1=x , a2=y , a3=z , ........
•思路
对于任意一个数 p,能通过两类操作得到:
①p=3p /3
②p=x/2 *2
因为GCD(2,3) = 1,所以右边的等式是不可能成立的;
所以 p只能由①②中的一种情况得到;
并且这 n 个数各不相同;
那么,任意选取一个数,依次向前推到第一个数,依次向后推即可得到答案;
•代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
map<ll,int> mp;
int main()
{
int n;
cin>>n;
ll x;
for(int i=;i<n;i++)
{
cin>>x;
mp[x]=;
}
ll cur=x;
while()
{
if(cur%==&&mp.count(cur/))
cur/=;
else if(mp.count(cur*))
cur*=;
else //直到没有前一个 此时为第一个数
break;
}
while() //从前往后推 乘2 或 除3
{
cout<<cur<<' ';
if(mp.count(cur*))
cur*=;
else if(cur%==&&mp.count(cur/))
cur/=;
else
break;
}
}
Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two的更多相关文章
- Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two (DFS)
题意:给你一个长度为\(n\)的序列\(a\).对它重新排列,使得\(a_{i+1}=a_{i}/3\)或\(a_{i+1}=2*a_{i}\).输出重新排列后的序列. 题解:经典DFS,遍历这个序列 ...
- Codeforces Round #479 (Div. 3)解题报告
题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...
- Codeforces Round #479 (Div. 3) 题解 977A 977B 977C 977D 977E 977F
A. Wrong Subtraction 题目大意: 定义一种运算,让你去模拟 题解: 模拟 #include <iostream> #include <cstdio> ...
- Codeforces Round #479 (Div. 3)题解
CF首次推出div3给我这种辣鸡做,当然得写份博客纪念下 A. Wrong Subtraction time limit per test 1 second memory limit per test ...
- Codeforces Round #479 (Div. 3)
手速场2333,这群人贼牛逼!手速贼快! A. Wrong Subtraction time limit per test 1 second memory limit per test 256 m ...
- Codeforces Round #479 (Div. 3)解题代码
A. Wrong Subtraction #include <bits/stdc++.h> using namespace std; int main() { int n,k; cin&g ...
- Codeforces Round #479 (Div. 3) A. Wrong Subtraction
题目网址:http://codeforces.com/contest/977/problem/A 题解:给你一个数n,进行k次变换,从末尾开始-1,512变成511,511变成510,510会把0消掉 ...
- Codeforces Round #479 (Div. 3) C. Less or Equal
题目地址:http://codeforces.com/contest/977/problem/C 题解:给一串数组,是否找到一个数x,找到k个数字<=x,找到输出x,不能输出-1.例如第二组,要 ...
- Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)
题目:https://codeforces.com/problemset/problem/977/F 题意:一个序列,求最长单调递增子序列,但是有一个要求是中间差值都是1 思路:dp,O(n)复杂度, ...
随机推荐
- Docker最全教程之MySQL容器化 (二十四)
前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明 运行MySQL容器镜像 1.运行MySQL容器 ...
- 阿里云CDN+OSS完成图片加速
我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...
- Zookeeper详解-API(六)
ZooKeeper有一个绑定Java和C的官方API.Zookeeper社区为大多数语言(.NET,python等)提供非官方API.使用ZooKeeper API,应用程序可以连接,交互,操作数据, ...
- 14 CSS权重深入
<!-- 继承说明: (1)进行样式选择时,不指定标签的话,该选择器是继承来的. (2)继承的选择器的优先级为0,和标签选择器的优先级无可比性. --> <!DOCTYPE html ...
- zabbix-3.2.6安装部署
一.准备一台虚拟机并安装centos7.x版本系统 二.配置zabbix_server 1.http install: #安装各类软件支持库 yum install apr-devel apr-uti ...
- What?一个 Dubbo 服务启动要两个小时!
前言 前几天在测试环境碰到一个非常奇怪的与 dubbo 相关的问题,事后我在网上搜索了一圈并没有发现类似的帖子或文章,于是便有了这篇. 希望对还未碰到或正在碰到的朋友有所帮助. 现象 现象是这样的,有 ...
- 请使用迭代查找一个list中最小和最大值,并返回一个tuple
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来完成的,而很多语 ...
- Filebeat 7.1.1 安装及使用(连接ES)
1. 下载 & 解压 # 下载 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.1-linux- ...
- Oracle数据库----函数
--大小写控制函数--upperselect * from emp where job = upper('salesman'); --lowerselect * from emp where lowe ...
- win10win7office系列激活工具 KMSAuto Net 2016 v1.5.4 绿色便携版
下载地址:点我 KMSpico又称KMS激活工具,KMSpico是目前成功且经常更新的Windows激活工具,可以激活任何版本的window系统和任何版本的Office软件,即使是win8和offic ...
