UVA11078开放式学分制(前面-后面的最大值)
生活随笔
收集整理的這篇文章主要介紹了
UVA11078开放式学分制(前面-后面的最大值)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題意:
? ? ? 給你一個長度為n的整數(shù)序列a0 a1 a2..找出兩個整數(shù)ai,aj(i<j),使得ai-aj最大。
思路:
? ? ? 簡單題目,想象一下,對于每一個數(shù)我們只要用他前面的最大的那個數(shù)去減他就能得到把他當成aj后得到的最大值,而那個最大的數(shù)就是ai,ai是可以線性更新的,所以這個題目我們也沒有必要開數(shù)組存,直接在輸入的時候更新ai,枚舉更新答案就行了,具體看代碼。
#include<stdio.h>
int main ()
{
? ? int t ,a ,n ,i ,Max;
? ? scanf("%d" ,&t);
? ? while(t--)
? ? {
? ? ? ? scanf("%d" ,&n);
? ? ? ? scanf("%d" ,&Max);
? ? ? ? int Ans = -5000000;
? ? ? ? for(i = 2 ;i <= n ;i ++)
? ? ? ? {
? ? ? ? ? ?scanf("%d" ,&a);
? ? ? ? ? ?if(Ans < Max - a) Ans = Max - a;
? ? ? ? ? ?if(Max < a) Max = a;
? ? ? ? }
? ? ? ? printf("%d\n" ,Ans);
? ? ?}
? ? ?return 0;
}
? ? ? ? ? ?
? ? ? 給你一個長度為n的整數(shù)序列a0 a1 a2..找出兩個整數(shù)ai,aj(i<j),使得ai-aj最大。
思路:
? ? ? 簡單題目,想象一下,對于每一個數(shù)我們只要用他前面的最大的那個數(shù)去減他就能得到把他當成aj后得到的最大值,而那個最大的數(shù)就是ai,ai是可以線性更新的,所以這個題目我們也沒有必要開數(shù)組存,直接在輸入的時候更新ai,枚舉更新答案就行了,具體看代碼。
#include<stdio.h>
int main ()
{
? ? int t ,a ,n ,i ,Max;
? ? scanf("%d" ,&t);
? ? while(t--)
? ? {
? ? ? ? scanf("%d" ,&n);
? ? ? ? scanf("%d" ,&Max);
? ? ? ? int Ans = -5000000;
? ? ? ? for(i = 2 ;i <= n ;i ++)
? ? ? ? {
? ? ? ? ? ?scanf("%d" ,&a);
? ? ? ? ? ?if(Ans < Max - a) Ans = Max - a;
? ? ? ? ? ?if(Max < a) Max = a;
? ? ? ? }
? ? ? ? printf("%d\n" ,Ans);
? ? ?}
? ? ?return 0;
}
? ? ? ? ? ?
總結
以上是生活随笔為你收集整理的UVA11078开放式学分制(前面-后面的最大值)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA11021麻球繁衍
- 下一篇: UVA11100旅行(大包装小包,问最少