贪心算法:排列算式

简介: 贪心算法:排列算式

题目描述

给出n数字,对于这些数字是否存在一种计算顺序,使得计算过程中数字不会超过3也不会小于0?

输入描述:

首行给出一个正整数t,(1≤t≤1000)代表测试数据组数


每组测试数据第一行一个正整数n,(1≤n≤500)


第二行包含n个以空格分隔的数字


输入保证每一个数字都是 −3, −2, −1, +0, +1, +2, +3 的其中一个。


输出描述:

每组测试数据输出一行,“Yes” or “No”


输入

2

4

+3 +2 -1 -2

5

+3 +2 +1 +0 +2

输出

Yes

No

说明

第一组依照 +3,−2,+2,−1 的顺序由左至右计算总和,过程会依序算得 3, 1, 3, 2,满足题目要求


很显然第二组不存在满足要求的计算顺序

#include <bits/stdc++.h>
#include<iostream>
using namespace std;
    int N, n, a[7], *cnt; 
    bool check() {
  int t = 0;
  for (int i = -3; i <= 3; i++) {
    t += i * cnt[i];
  }
  if (t > 3 || t < 0) 
        return false;
    t = min(cnt[-3], cnt[3]);
  cnt[-3] -= t;
  cnt[3] -= t;
  t = min(cnt[2], cnt[-1]);
  cnt[2] -= t;
  cnt[-1] -= t;
  cnt[1] += t;
  t = min(cnt[-3], cnt[1]);
  cnt[-3] -= t;
  cnt[1] -= t;
  cnt[-2] += t;
  if (cnt[-3] > 0) 
        return false;
  t = min(cnt[-2], cnt[1]);
  cnt[-2] -= t;
  cnt[1] -= t;
  cnt[-1] += t;
  t = min(cnt[3], cnt[-1]);
  cnt[3] -= t;
  cnt[-1] -= t;
  cnt[2] += t;  
  if (cnt[3] > 1) 
        return false;
  return true;
}
int main() {
  cin>>N;
  cnt = &a[3];
  while (N--) {
    memset(a, 0, sizeof(a));
    cin>>n;
    int t;
    for (int i = 1; i <= n; i++) {
      cin>>t;
      cnt[t]++;
    }
    if (check()) {
      cout<<"Yes\n";
    } else {
      cout<<"No\n";
    }
  }
  return 0;
}

目录
相关文章
|
存储 算法
算法题每日一练---第12天:算式900
小明的作业本上有道思考题: 看下面的算式: (□□□□-□□□□)*□□=900
111 0
算法题每日一练---第12天:算式900
|
2月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统频偏估计和补偿算法matlab仿真
### 算法仿真结果 展示5张图像,描绘了基于深度学习的频偏估计和补偿在MATLAB 2022a中的仿真效果。 ### 理论概要 - 深度学习算法用于建立信号与频偏的非线性映射,无需导频,节省资源。 - 网络模型(如CNN或RNN)处理IQ数据,提取特征,简化估计补偿过程,降低复杂度。 - 64QAM系统中,通过神经网络实现精确频偏感知,增强通信性能。 ### MATLAB核心程序 - 代码生成64QAM信号,模拟不同SNR和频偏条件,使用深度学习进行相位估计和补偿。 - 仿真比较了有无补偿的误码率,显示补偿能显著改善通信质量。 ```
33 1
|
10天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
25天前
|
机器学习/深度学习 算法
【MATLAB】GA_BP神经网络时序预测算法
【MATLAB】GA_BP神经网络时序预测算法
35 8
|
1月前
|
机器学习/深度学习 算法 Serverless
【MATLAB】PSO_BP神经网络回归预测算法(适用光伏发电回归预测等)
【MATLAB】PSO_BP神经网络回归预测算法(适用光伏发电回归预测等)
30 1
|
22小时前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
22小时前
|
机器学习/深度学习 算法 数据可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
|
1天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到&quot;result.txt&quot;以供MATLAB显示图像分割效果。
|
2天前
|
算法 搜索推荐 数据挖掘
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
|
3天前
|
数据采集 机器学习/深度学习 存储
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩