贪心算法:排列算式

题目描述

给出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;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter - flutter_gen 资源管理

引言&#xff1a; 在开发 Flutter 应用时&#xff0c;我们经常需要使用各种静态资源&#xff0c;如图片、字体和音频等。如何有效地管理和加载这些资源呢&#xff1f;本篇博客将以图片为例带你解密 Flutter 项目中是如何管理资源地。 assets 加载资源 具体文件名引入 在工程…

STC89C52学习笔记(九)

STC89C52学习笔记&#xff08;九&#xff09; 综述&#xff1a;本文主要介绍了蜂鸣器、蜂鸣器如何使用以及如何利用蜂鸣器播放不同频率声音。 一、蜂鸣器 1.定义和作用 电信号→声音信号&#xff0c;常用来产生按键音和报警音。 2.分类 有源&#xff1a;自带振荡器&#…

机器学习 -- 端到端的机器学习项目

场景 我们将一个端到端的项目&#xff08;一个从开始到结束包含了所有必要步骤和组件的完整项目&#xff09;案例&#xff0c;步骤大概有&#xff1a; 1.观察大局。 2.获得数据。 3.从数据探索和可视化中获得洞见。 4.机器学习算法的数据准备。 5.选择和训练模型。 6.微调模型…

git lfs 大文件管理

简介 git-lfs 是 Git Large File Storage 的缩写&#xff0c;是 Git 的一个扩展&#xff0c;用于处理大文件的版本控制。 它允许你有效地管理和存储大型二进制文件&#xff0c;而不会使 Git 仓库变得过大和不稳定。以下是一些与 git-lfs 相关的常见命令和解释&#xff1a; 常…

Django的路由分组和路由转发器

02 查询文章信息 文章列表模板 复制zdpdjango_basic&#xff0c;然后在templates中新建一个articles.html文件&#xff0c;用来展示文章列表&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><tit…

unity——Button组件单击双击长按功能

1.实现单击、双击、长按功能 using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class ButtonControl_Click_Press_Double : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler {publi…

组合积木(模拟

题目 #include<bits/stdc.h> using namespace std; #define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long #define eb emplace_back const int N1e39; int n,m; vector<pair<char,int> > s[N]; signed main(){ios;cin>…

紫光同创 ----- 集创赛 ---- 点亮LED

目录 一. 安装软件&#xff1a; 1. 按照安装手册一步一步走 2. 等.... 3. 桌面图标 二. 创建工程 1. 双击PDS 2. 点击新建工程 New Project 3. 弹出如下界面 点击 -->> Next 4. 选择工程路径和名称 5. 选择工程类型 6. 剩下的全部next &#xff08;直到…

SOCKS5代理、代理IP、跨界电商、游戏技术与网络安全的综合探讨

在全球经济一体化的大背景下&#xff0c;"出海"已成为许多企业尤其是电商和游戏行业的重要战略方向。然而&#xff0c;随着企业业务的扩展到海外市场&#xff0c;网络安全、数据隐私和内容访问等问题也随之而来。本文将深入探讨SOCKS5代理、代理IP在跨界电商和游戏行…

idea: 没有 new java class

如图&#xff1a; 解决&#xff1a; 右键点击--> Mark Directory as --> Sources Root ok

在CentOS 7上如何将MySQL数据目录更改到新位置

简介 数据库会随着时间的推移而增长&#xff0c;有时会超出文件系统的空间。当它们位于与操作系统的其余部分相同的分区上时&#xff0c;您还可能遇到I/O争用。RAID、网络块存储和其他设备可以提供冗余和其他理想的功能。无论您是添加更多空间&#xff0c;评估性能优化的方法&…

jvm的面试回答

1、jvm由本地方法栈、虚拟机栈、方法区、程序计数器、堆组成&#xff0c;其中堆和方法区是线程间共享的&#xff0c;程序计数器、虚拟机栈和本地方法栈是线程私有的。 2、虚拟机栈&#xff1a; 保存每个java方法的调用、保存局部变量表、等 栈可能出现内存溢出&#xff0c;如果…

python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

学习目标&#xff1a; lambda len(list1) sorted_numbers sorted(numbers)list.sort() 目录 学习目标&#xff1a; 学习内容&#xff1a; 匿名函数 lambda表达式 lambda [参数]: 函数 不需要return len(list1) sorted_numbers sorted(numbers) list.sort(keyNone, r…

ActiveMQ入门案例(queue模式和topic模式)

目录 前言&#xff1a;为什么使用消息中间件&#xff1f; 异步通信 缓冲 解耦 前提&#xff1a;安装并启动activemq 一、点对点&#xff08;point to point&#xff0c; queue&#xff09; 1.1 创建maven项目 1.2 Pom依赖 1.2 JmsProduce 消息生产者 1.3 JmsConsumer…

深入理解Java中Stream流常用方法及示例

深入理解Java中Stream流常用方法及示例 一、介绍二、举例说明1. filter方法2. map方法3. sorted方法4. forEach方法5. reduce方法6. collect方法7. flatMap方法8. anyMatch和allMatch方法9. findFirst和findAny方法10. skip和limit方法11. distinct方法 一、介绍 Java 8引入的…

背 单 词 (考研词汇闪过)

单词&#xff1a; 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排&#xff08;5min&#xff09;重复一遍&#xff08;2mi…

Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制

Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting Pixel-GS&#xff1a;用于3D高斯溅射的具有像素感知梯度的密度控制 Zheng Zhang  Wenbo Hu†  Yixing Lao   老宜兴市郑张文博胡 † Tong He  Hengshuang Zhao† 赵同和恒双 †1122113311 …

Web前端 Javascript笔记1

为什么学习 JavaScript? JavaScript 是 web 开发人员必须学习的 3 门语言中的一门&#xff1a; HTML 定义了网页的内容CSS 描述了网页的布局JavaScript 控制了网页的行为 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后&#xff0c;可由所有的现代浏…

BTS441RGATMA1 N沟道 43V 17A高侧电源开关芯片 英飞凌

BTS441RGATMA1是一款由Infineon Technologies制造的高侧开关电源芯片。 直 接 联 系 客 服 价 格 比 商 城 下 单 更 便 宜 BTS441RGATMA1具有以下功能&#xff1a; 高端电源开关&#xff1a;BTS441RGATMA1是一种N通道功率场效应晶体管&#xff08;FET&#xff09;&#xff…

图像处理与视觉感知---期末复习重点(7)

文章目录 一、图像压缩1.1 三种冗余1.2 模型1.3 信息测量 二、无误差压缩2.1 哈夫曼编码2.1.1 步骤2.1.2 例题 2.2 算术编码 三、变换编码 一、图像压缩 1.1 三种冗余 1. 三种基本的是数据冗余为&#xff1a;编码冗余、像素间冗余、心理视觉冗余。 2. 编码冗余&#xff1a;如果…