当前位置:网站首页>B. Difference Array--Codeforces Round #808 (Div. 1)
B. Difference Array--Codeforces Round #808 (Div. 1)
2022-08-01 22:42:00 【秦小咩】
B. Difference Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an array aa consisting of nn non-negative integers. It is guaranteed that aa is sorted from small to large.
For each operation, we generate a new array bi=ai+1−aibi=ai+1−ai for 1≤i<n1≤i<n. Then we sort bb from small to large, replace aa with bb, and decrease nn by 11.
After performing n−1n−1 operations, nn becomes 11. You need to output the only integer in array aa (that is to say, you need to output a1a1).
Input
The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤1041≤t≤104) — the number of test cases. The description of the test cases follows.
The first line of each test case contains one integer nn (2≤n≤1052≤n≤105) — the length of the array aa.
The second line contains nn integers a1,a2,…,ana1,a2,…,an (0≤a1≤…≤an≤5⋅1050≤a1≤…≤an≤5⋅105) — the array aa.
It is guaranteed that the sum of nn over all test cases does not exceed 2.5⋅1052.5⋅105, and the sum of anan over all test cases does not exceed 5⋅1055⋅105.
Output
For each test case, output the answer on a new line.
Example
input
Copy
5 3 1 10 100 4 4 8 9 13 5 0 0 0 8 13 6 2 4 8 16 32 64 7 0 0 0 0 0 0 0
output
Copy
81 3 1 2 0
Note
To simplify the notes, let sort(a)sort(a) denote the array you get by sorting aa from small to large.
In the first test case, a=[1,10,100]a=[1,10,100] at first. After the first operation, a=sort([10−1,100−10])=[9,90]a=sort([10−1,100−10])=[9,90]. After the second operation, a=sort([90−9])=[81]a=sort([90−9])=[81].
In the second test case, a=[4,8,9,13]a=[4,8,9,13] at first. After the first operation, a=sort([8−4,9−8,13−9])=[1,4,4]a=sort([8−4,9−8,13−9])=[1,4,4]. After the second operation, a=sort([4−1,4−4])=[0,3]a=sort([4−1,4−4])=[0,3]. After the last operation, a=sort([3−0])=[3]a=sort([3−0])=[3].
一道细节题,细节很多
重点是0的讨论
0 0 0 8 13为例
初始
三个零 + 8 13
差分 两个零 8 5
排序 两个零, 5 8
差分 一个零 5 3
排序 一个零 3 5
差分 没有0 3 2
排序 没有0 2 3
差分 1
我们宏观统计序列0的个数,一旦有0,就以为我们差分时第一个非零数字是要被加进去的。规律是差分一次零就会减少1,且差分过程中会出现零。
一个致命的细节是,等差数列,在差分中全变成0,需要特判。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+100;
int T,n;
int a[N],b[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int cnt=0,len=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=1; i<=n; i++)
{
int x;
cin>>x;
if(!x)
cnt++;
else
{
len++;
a[len]=x;
}
}
while(len>1)
{
int newl=0;
if(cnt)
{
newl++;
cnt--;
b[newl]=a[1];
}
for(int i=2; i<=len; i++)
{
if(a[i]-a[i-1])
{
newl++;
b[newl]=a[i]-a[i-1];
}
else
{
cnt++;
}
}
sort(b+1,b+1+newl);
for(int i=1; i<=newl; i++)
{
a[i]=b[i];
}
len=newl;
}
if(len==1)
cout<<a[1]<<endl;
else
{
cout<<0<<endl; //特判全部清空
}
}
return 0;
}
边栏推荐
- Codeforces CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) A-D 题解
- (翻译)按钮的对比色引导用户操作的方式
- 罗克韦尔AB PLC RSLogix5000中的比较指令使用方法介绍
- 03. GO language variable definition, function
- Small application project works WeChat stadium booking applet graduation design of the finished product (1) the development profile
- JS 数组去重(含简单数组去重、对象数组去重)
- [深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道
- 小程序毕设作品之微信美食菜谱小程序毕业设计成品(8)毕业设计论文模板
- 【数据分析03】
- 03、GO语言变量定义、函数
猜你喜欢

xss相关知识点以及从 XSS Payload 学习浏览器解码

APP special test: traffic test

解决yolov5训练时出现:“AssertionError: train: No labels in VOCData/dataSet_path/train.cache. Can not train ”

域名重定向工具 —— SwitchHosts 实用教程

PHP算法之电话号码的字母组合

Getting Started Database Days4

How to prevent governance attacks in DAOs?

复现gallerycms字符长度限制短域名绕过

number of solutions to solve a multivariate multi-degree equation

一种灵活的智能合约协作方式
随机推荐
xctf攻防世界 Web高手进阶区 web2
联邦学习入门
03. GO language variable definition, function
联邦学习在金融领域的发展和应用
使用Jenkins做持续集成,这个知识点必须要掌握
How to add a game character to a UE4 scene
From 0 to 100: Notes on the Development of Enrollment Registration Mini Programs
SQL Server(设计数据库--存储过程--触发器)
Lecture 3: Several common table field data types in MySQL database
Getting Started Database Days4
小程序毕设作品之微信体育馆预约小程序毕业设计成品(1)开发概要
excel split text into different rows
隔离和降级
线上故障排查方案
Mini Program Graduation Works WeChat Food Recipe Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
牛客多校4 A.Task Computing 思维
SAP Spartacus Accessibility E2E 端到端测试
Today's sleep quality record 74 points
[Niu Ke brush questions-SQL big factory interview questions] NO4. Travel scene (a taxi)
more grown, more lonely