本文主要是介绍UVALive 7092 Islands in the Data Stream,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Sample Input 4 1 0 0 1 1 2 2 1 1 0 1 2 0 2 0 1 2 4 3 1 3 4 5 2 1 0 3 0 1 2 4 4 1 0 2 4 1 0 0 4 0 1 2 3 4 5 6 7 8 9 10 0
Sample Output 1 4 2 8 3 6 4 10
题意:一个集合里边的所有元素都大于集合两端的前一个和后一个元素,则这个集合为一个岛,求岛的数量。
比赛的时候无脑翻译错题意以为是依次消去最小的要消几次,可怕的是四个样例结果都刚好是对得上的,让我没怀疑自己理解错了!!!英语渣真心伤不起。
思路:三个循环从头开始暴力,用集合长度作为一个变量,符合条件的就计数加一。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[20],sum,flag;
int main()
{int t,k,n;cin>>t;while(t--){cin>>n;for(int i=1;i<=12;i++){cin>>a[i];}sum=0;for(int i=2;i<=11;i++){for(int j=i;j<=11;j++){flag=1;for(int k=i;k<=j;k++){if(a[k]<=a[i-1]||a[k]<=a[j+1]){flag=0;break;}}//cout<<flag<<endl;if(flag==1){sum++;}}}cout<<n<<" "<<sum<<endl;}return 0;
}
这篇关于UVALive 7092 Islands in the Data Stream的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!