日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

地震预测

發(fā)布時(shí)間:2024/1/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 地震预测 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

懷特先生是一名研究地震的科學(xué)家,最近他發(fā)現(xiàn)如果知道某一段時(shí)間內(nèi)的地殼震動(dòng)能量采樣的最小波動(dòng)值之和,可以有效地預(yù)測大地震的發(fā)生。

假設(shè)已知一段時(shí)間的n次地殼震動(dòng)能量的采樣值為a1,a2,…an,那么第i 次采樣的最小波動(dòng)值為min{|ai-aj| | i<j<=n},即第i 次采樣的最小波動(dòng)值是其后n-i次采樣值與第i次采樣值之差的絕對值中最小的值,特別地,第n次采樣的最小波動(dòng)值為an

請編寫一個(gè)程序計(jì)算這n次采樣的最小波動(dòng)值之和。

Input

本題有多組輸入數(shù)據(jù),你必須處理到EOF為止

輸入數(shù)據(jù)第一行有一個(gè)數(shù)n(1<=n<=105) ,表示采樣的次數(shù)。

第二行有n個(gè)整數(shù),表示n次地殼震動(dòng)能量的采樣值a1,a2,…an (0<=ai<=107 )。

Output

輸出n次采樣的最小波動(dòng)值之和。

Sample Input
4 2 0 3 10
Sample Output
21
map的用法參見http://blog.sina.com.cn/s/blog_49c5866c0100eyh0.html
這題是方法說白了就是從后往前。 比如題目的數(shù)據(jù)2 0 3 10 sum為和 3和10最后兩位直接處理完按照大小形成一個(gè)虛擬3 10 sum=17 0插入到這個(gè)序列中 0 3 10 比較0的前后減去0的絕對值誰比較小,取小的那個(gè)。 取3 sum=20 然后放入2 形成0 2 3 10 比較前后 2-0>3-2 取1 sum=21 使用map的原因是由于map有序。。。。。
#include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<cmath> #include<vector> #include<map> using namespace std; map<int,int>dd; int main() {int a[100100];int n;while(scanf("%d",&n)!=-1){int i;for(i=0;i<n;i++){scanf("%d",&a[i]);}dd[a[n-1]]=n-1;dd[a[n-2]]=n-2;int sum=a[n-1]+abs(a[n-1]-a[n-2]);for(int i=n-3;i>=0;i--){if(!dd.count(a[i])){dd[a[i]]=i;}elsecontinue;map<int,int>::iterator t=dd.find(a[i]);map<int,int>::iterator next=++t;map<int,int>::iterator fron;t--;if(t!=dd.begin()){fron=--t;t++;}else{fron=t;}int minn;if(next==dd.end()){minn=t->first-fron->first;}else if(t==dd.begin()){minn=next->first-t->first;}else{minn=next->first-t->first;if(minn>(t->first-fron->first))minn=t->first-fron->first;//minn=min(next->first-t->first,t->first-fron->first);}sum+=minn;}printf("%d\n",sum);dd.clear();}return 0; }


總結(jié)

以上是生活随笔為你收集整理的地震预测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。