很经典的题目,我没做出来,参照这例程写的,这题真的好好琢磨一下了
#includeusing namespace std;int main(){ int n; cin>>n; int*l=new int[n+1](); int*r=new int[n+1](); int*c=new int[n+1](); int*td=new int[n+1]; int*d=new int[n+1]; int maxh=0,maxi; for(int i=0;i >td[i]; if(td[i]>maxh) { maxh=td[i]; maxi=i; } } for(int i=0;i =0;--i) { r[i]=i+1; while(r[i] d[r[i]]) r[i]=r[r[i]]; if(r[i] 0&&d[i]>=d[l[i]]) l[i]=l[l[i]]; } long long ans=0; for(int i=1;i