acm模版
方法有很多種,這裡介紹兩種寫法。
第一種比較容易想到的寫法是將鍵值和下標封裝在結構體中進行排序,然後從尾部檢索一遍即可,複雜度o(nlogn)。
第二種是使用單調棧優化,可以使複雜度低至o(n)。
one:
#include
#include
#include
using
namespace
std;
const
int maxn = 5e4 + 10;
struct num
a[maxn];
int aa[maxn] = ; // 標記a狀態
bool cmp(num a, num b)
return a.num < b.num;
}int main(int argc, const
char * argv)
sort(a + 1, a + n + 1, cmp);
int flag = 1;
int dis = 0;
for (int i = n; i > 1; i--)
aa[a[i].key] = 1;
if (a[i].key == flag)}}
std::cout
<< dis << '\n';
return
0;}
two:
#include
#include
#include
using
namespace
std;
const
int maxn = 5e4 + 10;
struct node
item[maxn];
int main()
else
}while (!s_2.empty())}}
printf("%d\n", ans);
return
0;}
51nod 1272 最大距離
codility 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出乙個長度為n的整數陣列a,對於每乙個陣列元素,如果他後面存在大於等於該元素的數,則這兩個數可以組成一對。每個元素和自己也可以組成一對。例如 可以組成11對,如下 數字為下標 0,0 0,2 1,...
51Nod1272 最大距離
給出乙個長度為n的整數陣列a,對於每乙個陣列元素,如果他後面存在大於等於該元素的數,則這兩個數可以組成一對。每個元素和自己也可以組成一對。例如 可以組成11對,如下 數字為下標 0,0 0,2 1,1 1,2 1,3 1,4 2,2 3,3 3,4 4,4 5,5 其中 1,4 是距離最大的一對,距...
51nod 1272 最大距離
題目 給出乙個長度為n的整數陣列a,對於每乙個陣列元素,如果他後面存在大於等於該元素的數,則這兩個數可以組成一對。每個元素和自己也可以組成一對。例如 可以組成11對,如下 數字為下標 0,0 0,2 1,1 1,2 1,3 1,4 2,2 3,3 3,4 4,4 5,5 其中 1,4 是距離最大的一...