初级启示者
今天的每日一题又是4分题!!!
我已经连续几次抽到4分题了!!!
哪位大佬能给点思路呀!!~~
——————————————我是分割线——————————————————
1556 海拔高度之谜
题目描述 Description
小王奉命去测绘A地附近的地形,要求对附近地形的海拔高度进行测量,一共要测量n个数据,经过测量和计算,小王发现两个连续数值之间差的绝对值包括了[1,n-1]之间的所有整数,如1 4 2 3的差的绝对值分别为:3,2,1。现在小王去B地继续测量任务,请问他在这里测量的数据能满足这个原理吗?
输入描述 Input Description
以一个整数n(1<=n<=1000)开始,接下来n个空格隔开的在[-100,100]之间的整数
输出描述 Output Description
输出一行若该数组符合规律则输出"Yes",否则输出"No"
样例输入 Sample Input
样例一: 4 1 4 2 3 样例二: 5 1 4 2 -1 6
样例输出 Sample Output
样例一: Yes 样例二: No
董宇昊在2020-04-25 14:53:46追加了内容
#include <bits/stdc++.h>
using namespace std;
int dyh(int n){
int a[1001],sum[1001];
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]>a[i+1])
sum[i]=a[i]-a[i+1];
else
sum[i]=a[i+1]-a[i];
}
for(int i=1;i<=n;i++){
if(sum[i]-sum[i+1]!=1){
cout<<"No";
return 0;
}
}
cout<<"Yes";
}
int main(){
int n;
cin>>n;
dyh(n);
return 0;
}
我怎么错了??
新手天翼
你学过桶排序吗
这题要用桶排序
Accepted:100分
高子健的测评结果:
测试点#1测评结果 : Accepted时间 : 0ms
测试点#2测评结果 : Accepted时间 : 0ms
测试点#3测评结果 : Accepted时间 : 0ms
测试点#4测评结果 : Accepted时间 : 0ms
测试点#5测评结果 : Accepted时间 : 0ms
测试点#6测评结果 : Accepted时间 : 0ms
测试点#7测评结果 : Accepted时间 : 0ms
测试点#8测评结果 : Accepted时间 : 0ms
测试点#9测评结果 : Accepted时间 : 0ms
测试点#10测评结果 : Accepted时间 : 0ms
初级天翼
每个人是随机的,还有说明一下四分题都是送经验
这题类似“邻居的神奇差值”
将两两个数求差,存入一个数组
排序这个存差的数组,判断相邻两个数的差是不是1
如果不是1就输出No结束
否则在最终输出Yes
黄子扬在2020-04-25 10:23:21追加了内容
感谢您给我找到了一道原题,1200经验我收下了
中级光能
本人的60分代码:
#include<iostream>
#include<cmath>
using namespace std;
int a[1010],n;
void quicksort(int left,int right)
{
if(left>right)
return;
int t,temp=a[left],i=left,j=right;
while(i!=j)
{
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];
a[i]=temp;
quicksort(left,i-1);
quicksort(i+1,right);
return;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
quicksort(0,n-1);
for(int i=0;i<n-1;i++)
{
if(abs((a[i+1]-a[i]))!=1)
{
cout<<"No";
return 0;
}
}
cout<<"Yes";
return 0;
}
初级启示者
#include <bits/stdc++.h>
using namespace std;
int dyh(int n){
int a[1001],sum[1001];
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]>a[i+1])
sum[i]=a[i]-a[i+1];
else
sum[i]=a[i+1]-a[i];
}
for(int i=1;i<=n;i++){
if(sum[i]-sum[i+1]!=1){
cout<<"No";
return 0;
}
}
cout<<"Yes";
}
int main(){
int n;
cin>>n;
dyh(n);
return 0;
}
董宇昊在2020-04-25 14:53:20追加了内容
我怎么错了??