1. 个人总结前言 这次小白月赛也算是一个教训,检验出了很多常见问题和不好的习惯 , 如下
- 喜欢每个测试点memset(a,0,sizeof(a))而导致超时 , 代码写的比较复杂而不考虑尽可能简略以减少错误
- 读题一掠而过,长一些的题目很经常读错导致代码写错 1,2两个问题集中体现在第一题和第二题中
对于精度问题总是不注意,体现在C题,之后尽量把精度问题都成10至整数再写(多次犯病) 相信大多数选手也会偶尔犯如上错误,于是乎在提交几次后过不去导致心态崩裂进而开摆
- A深渊水妖
const int N = 1e5+ 8;
typedef long long ll;
int n,a[N],t;
struct node{
int num,left,right;
};
bool cmp(node a,node b){
if(a.num!=b.num)return a.num>b.num;
else return a.left<b.left;
}
int main()
{
scanf("%d",&t);
while(t--){
vector<node>vv;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
int l=1,maxx=0;
for(int i=2;i<=n;i++){
if(a[i]<a[i-1]) {
vv.push_back({a[i-1]-a[l],l,i-1});
maxx = max(a[i-1]-a[l],maxx);
l=i;
}
}
vv.push_back({a[n]-a[l],l,n});
maxx = max(maxx,a[n]-a[l]);
sort(vv.begin(),vv.end(),cmp);
for(int i=0;i<vv.size();i++){
if(vv[i].num==vv[0].num)cout<<vv[i].left<<' '<<vv[i].right<<' ';
else break;
}
printf("\n");
}
return 0;
}
``