A.
成都創(chuàng)新互聯(lián)公司專注于汝州網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供汝州營銷型網(wǎng)站建設,汝州網(wǎng)站制作、汝州網(wǎng)頁設計、汝州網(wǎng)站官網(wǎng)定制、小程序制作服務,打造汝州網(wǎng)絡公司原創(chuàng)品牌,更為您提供汝州網(wǎng)站排名全網(wǎng)營銷落地服務。
給定一個序列,對于任意1<=k<=n 都滿足|ai?ak|+|ak?aj|=|ai?aj|,
找滿足條件的i和j并輸出
思路:
觀察樣例,發(fā)現(xiàn)輸出的是最大值和最小值,那么猜答案是最大值和最小值,進行證明
若答案不是最大值和最小值,則一定存在一個k使得|ak-ap|大于|aj-ai| 一定不滿足|ai?ak|+|ak?aj|=|ai?aj| 與命題矛盾
所以記錄最大值和最小值 輸出即可。
代碼:
#includeusing namespace std; #define x first #define y second #define endl '\n' #define int long long #define debug(x) cout << "*" << x << endl; const int P = ; #define ll long long const int mod = 1E6 + 7; const int INF = 0x3f, sINF = 0x3f3f3f3f; typedef unsignedlong long ULL; typedef pair<int, int> PII; typedef pair<long long, long long> PLL; int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1}; const int N = 3e5 + 10;; int T; const int UN = 1e9 + 10; signed main() { cin>>T; while(T--) { int n; int maxa = 0, mina = UN; cin>>n; int ans1, ans2; for(int i = 1; i <= n; i++) { int temp; cin>>temp; if(temp > maxa) { ans1= i; maxa= temp; } if(temp < mina) { ans2= i; mina= temp; } } if(n == 1) cout<<"1 1"<<endl; else cout< " "< endl; } }