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

优秀交互设计网站赣州销售网站

优秀交互设计网站,赣州销售网站,wordpress 作者头像,免费可商用的cmsB. Shrinking Array让我们称一个数组 b 为 i 美丽 ,如果它至少包含两个元素,并且存在一个位置 |bi−bi1|≤1 使得 |x| (其中 x 是 #10# #11# 的绝对值)。给定一个数组 a ,只要它至少包含两个元素,你就可以执行以下操作&#xff1a…

B. Shrinking Array

让我们称一个数组 b 为 i 美丽 ,如果它至少包含两个元素,并且存在一个位置 |bi−bi+1|≤1 使得 |x| (其中 x 是 #10# #11# 的绝对值)。

给定一个数组 a ,只要它至少包含两个元素,你就可以执行以下操作:

  1. 选择数组 a 中的两个相邻位置 i 和 i+1 。
  2. 选择一个整数 x 使得 min(ai,ai+1)≤x≤max(ai,ai+1) 。
  3. 从数组中移除数字 ai 和 ai+1 ,并将数字 x 插入它们的位置。显然,数组的大小将减少 1 。

计算使数组变得美丽所需的最少操作次数,或者报告不可能。

输入

第一行包含一个整数 t ( 1≤t≤200 ) — 测试用例的数量。

每个测试用例的第一行包含一个整数 n ( 2≤n≤1000 ) — 数组 a 的大小。

每个测试用例的第二行包含 n 个整数 a1,a2,…,an ( 1≤ai≤106 ) — 数组 a 本身。

输出

对于每个测试用例,输出一个整数—使数组 a 变得美丽所需的操作最小数量,或者如果不可能使其变得美丽,则输出 −1 。

示例
输入
复制
4
4
1 3 3 7
2
6 9
4
3 1 3 7
4
1 3 5 2
输出
复制
0
-1
1
1
注意

在第一个测试用例中,给定的数组已经是美丽的,因为 |a2−a3|=|3−3|=0 。

在第二个测试用例中,不可能使数组变得美丽,因为应用操作会使其大小减少到少于两个。

在第三个测试用例中,例如,你可以选择 a1 和 a2 并将它们替换为数字 2 。得到的数组 [2,3,7] 是美丽的。

在第四个测试用例中,例如,你可以选择 a2 和 a3 并将它们替换为数字 3 。得到的结果数组 [1,3,2] 是漂亮的。

思路:

其实有点差分的思想在

1.当相邻的值为-1,0,1时,直接成立

2.当差分的值为全正/全负且不存在在第一种情况,不成立

3.剩余情况是成立的,然后找最小的可能(存在的可能只在差为正负的交界处);因为时间够,所有我纯暴力,

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int t, n, a[1003], b[1003];
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> t;while (t--) {cin >> n;b[0] = 0;bool pan = false;int fu = 0, zhen = 0;for (int i = 1; i <= n; i++) {cin >> a[i];b[i] = a[i] - a[i - 1];if (i != 1 && (b[i] == 1 || b[i] == 0 || b[i] == -1)) {pan = true;}if (i != 1 && !pan && b[i] > 0) {zhen++;}else if (i != 1 && !pan && b[i] < 0) {fu++;}}if (pan) {cout << 0 << endl;}else if (zhen == 0 || fu == 0) {cout << -1 << endl;}else {int MAX_sum = INT_MAX;for (int i = 2; i <= n; i++) {int sum = i;for (int j = i + 1; j <= n; j++) {if (b[i] > 0) {sum += b[j] < 0 ? b[j] : 0;if (sum <= 1) {MAX_sum = MAX_sum < j - i ? MAX_sum : j - i;}}else {sum += b[j] > 0 ? b[j] : 0;if (sum >= -1) {MAX_sum = MAX_sum < j - i ? MAX_sum : j - i;}}}}if (MAX_sum == INT_MAX) {cout << -1 << endl;}else {cout << MAX_sum << endl;}}}return 0;
}

http://www.dtcms.com/wzjs/556246.html

相关文章:

  • 垂直门户网站内江市建设信息网站
  • 做网站广告软件世界杯最新排名
  • 黑龙江省网站前置审批网站wordpress带轮播企业站主题
  • 做网站需要会什么语言wordpress不支持video标签
  • 产品经理做网站wordpress如何使用一个demo
  • 九江的网站建设公司wordpress 城市分类
  • 优秀网站设计 pdfwordpress模板 简单
  • 网站服务器转移视频吗商业网站策划方案
  • 西宁市住房和城乡建设局网站网站建设贰金手指科杰2
  • 网站多少钱一米wordpress 安装中文字体
  • 佛山电商网站建设北京注册公司需要什么资料
  • 建站及推广正规的大宗商品交易平台
  • 闸北网站优化公司定制微信小程序多少钱
  • 黄山网站建设找哪家青岛市做网站优化
  • 网站开发 定制如何做网页链接
  • flash 网站开发教程哪些公司需要网页电商设计师
  • 万户网站后台控制中心推广运营是什么工作
  • 在银行网站如何做理财风险评测百度小程序跟做网站
  • phpcms网站音乐代码存放在什么位置wordpress视频居中
  • 网站编辑怎么样开发者选项怎么设置最流畅
  • 网站设计可以吗如果做游戏的技术用来做网站
  • 徐州手机网站优化公司湖北潜江资讯网
  • 湖南3合1网站建设网站设计制作哪里好
  • 没有备案的网站可以做淘宝客20元备案域名
  • 联通公司网站谁做的电影网站模板html
  • 网站建设总体流程网拍外宣怎么推广
  • 公司网站是如何搭建的百度一下你就知道官网下载安装
  • 德州网站建设公司dedecms5.7装饰公司网站模板
  • 免费自建网站步骤九江有限公司
  • 上海黄浦区网站建设深圳有几个区地图