【ZOJ - 4024】Peak(模拟,水题)
題干:
A sequence of??integers??is called a peak, if and only if there exists exactly one integer??such that?, and??for all?, and??for all?.
Given an integer sequence, please tell us if it's a peak or not.
Input
There are multiple test cases. The first line of the input contains an integer?, indicating the number of test cases. For each test case:
The first line contains an integer??(), indicating the length of the sequence.
The second line contains??integers??(), indicating the integer sequence.
It's guaranteed that the sum of??in all test cases won't exceed?.
Output
For each test case output one line. If the given integer sequence is a peak, output "Yes" (without quotes), otherwise output "No" (without quotes).
Sample Input
7 5 1 5 7 3 2 5 1 2 1 2 1 4 1 2 3 4 4 4 3 2 1 3 1 2 1 3 2 1 2 5 1 2 3 1 2Sample Output
Yes No No No Yes No No題目大意:
? 給你一組數(shù),問(wèn)你能否湊出一個(gè)是山峰的情況。即這組數(shù)先遞增然后再遞減。
解題報(bào)告:
? ? 注意判斷不能一直遞增或者一直遞減就可以了。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define F first #define S second #define ll long long #define pb push_back #define pm make_pair using namespace std; typedef pair<int,int> PII; const int MAX = 2e5 + 5; int n; ll a[MAX]; int main() {int t;cin>>t;while(t--) {scanf("%d",&n);for(int i = 1; i<=n; i++) scanf("%lld",a+i);int tar,flag = 1;if(a[1] >= a[2] || a[n-1] <= a[n]) {printf("No\n");continue;}for(int i = 2; i<=n-1; i++) {if(a[i] < a[i+1]) continue;else {tar = i;break;}}for(int i = tar; i<=n-1; i++) {if(a[i] > a[i+1]) continue;else {flag = 0;break;}}if(flag) printf("Yes\n");else printf("No\n");}return 0 ; }?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的【ZOJ - 4024】Peak(模拟,水题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【POJ - 1724 】ROADS (
- 下一篇: slserv.exe - slserv进