[编程题] 重排数列
来源:互联网 发布:奔驰c级coupe 知乎 编辑:程序博客网 时间:2024/05/17 22:22
[编程题] 重排数列
时间限制:1秒
空间限制:100768K
小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}。
牛博士给小易出了一个难题:
对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数。
小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。
牛博士给小易出了一个难题:
对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数。
小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。
输入描述:
输入的第一行为数列的个数t(1 ≤ t ≤ 10),接下来每两行描述一个数列A,第一行为数列长度n(1 ≤ n ≤ 10^5)第二行为n个正整数A[i](1 ≤ A[i] ≤ 10^9)
输出描述:
对于每个数列输出一行表示是否可以满足牛博士要求,如果可以输出Yes,否则输出No。
输入例子1:
231 10 10041 2 3 4
输出例子1:
YesNo
思路:
发现一个4的倍数可以带走两个位置, X个2可以带走 x-1个位置
X 4 X 4 X
#include <iostream>#include <algorithm>#include <cstring>#include <stdio.h>#include <cstring>#include <string.h>#include <vector>using namespace std;typedef long long ll;int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int four=0,two=0; for(int i=1;i<=n;i++) { int x; cin>>x; if(x%4==0) four++; else if(x%2==0) two++; } two=max(two-1,0); if(four*2+two>=n-1) cout<<"Yes"<<endl; else cout<<"No"<<endl; }}
阅读全文
0 0
- [编程题] 重排数列
- 2018网易笔试编程题----重排数列
- 2018网易笔试编程题----重排数列
- 网易2018校园招聘编程真题之重排数列
- 重排数列
- 重排数列
- 【网易】重排数列
- 网易秋招2018笔试题 重排数列
- 网易2018年校园招聘编程题真题(魔法币&&相反数&&字符串碎片&&重排数列)
- 字母重排-程序设计编程
- [编程题] 数列还原
- [编程题] 不等式数列
- [编程题] Fibonacci数列
- 网易2018校招 重排数列
- 网易2018校园招聘:重排数列 [python]
- 并行编程之指令重排
- 网易编程题:数列还原
- CF 187A(从后取数的重排数列)
- TMS28335SCI学习笔记
- opencv实现PCA人脸降维
- php字符串处理函数
- 运行wordcount程序报 Input path does not exist 错
- Linux系统下项目部署常用命令
- [编程题] 重排数列
- Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算
- 装修前必看!设计师私下讨论的最新餐厅设计全在这里了!
- 针对移动端的前端工作流(7)—WeUI样式的loading和dialog组件 96 冴羽 关注 2016.10.13 20:10 字数 273 阅读 1018评论 0喜欢 1 有这个需求 因为移动
- ETL讲解(很详细!!!)
- js之事件冒泡和事件捕获详细介绍
- 十进制整数转换二进制
- G
- sulley里面Pcapy模块安装容易出错地方