今日总结:

上午温老师讲了些比较基础的数据结构,刚开始就是单调栈,恰好前两行牛客多校都有单调栈的题,借机也好好学了学,线段树之前也专门学过,但啥啥可持久化,主席树,啥啥啥又给我整蒙了,还是一如既往的,开始听懂了,后面越来越蒙,还是回去把洛谷上的基础专题补补= =。下午自闭场,A题很快想出做法,还是调了好久,一开始TLE??分析复杂度1e5 NlogN应该可以啊???后面把cin改成scanf又,,,,,segment faulse????又改,删了一些无关变量,,AC,,,一把心酸,一个小时过了一个题。。。跟榜看J,队友跟我说了题意,,然而理解错了,,调了好久,按着另一个题意看代码看半天(我不信别人都做出来了我做不出来,偏要做出来为止),最后结束了,才提出问题,结果,,才知道自己理解错题意了,,,我,,????最后回到教室马上改题,改了半天,调代码半天,盯着一小段代码,明明没改a[0]啊,后面怎么a[0]变了??看的我自闭了,最后气的一个一个删,删到头,发现,,数组才开了a[2]???我服了。。然后改了马上交,又wa,我tm??,,,回去路上想了想,多次输入我是不是没有清空数组?马上掏出手机改了改代码交上去AC,,一场比赛一下午一晚上过两题,,我真,,,,,菜是原罪。。。。
补最后的***题
ZOJ - 3735

#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long  ll;
double p[200][200];
double ans[10005][500];
int ro[10005];
int ch[120];
int main()
{
   int m;
   while(~scanf("%d",&m))
   {
        int c=m*(m-1)*(m-2)/6;
       for(int i=0;i<c;i++)
       for(int j=0;j<c;j++)
       scanf("%lf",&p[i][j]);
       int n;
       scanf("%d",&n);
       for(int i=0;i<n;i++)
        cin>>ro[i];
       for(int i=0;i<c;i++)
        ans[0][i]=1.0;
        //cout<<ans[0][2];

       for(int i=0;i<n;i++)
        {
            int x;
            x=ro[i];
            for(int j=0;j<c;j++)
            {
               // cout<<i+1<<endl;
               //if(ans[0][3]!=1) //printf("debug i=%d j=%d\n",i,j);

                ans[i+1][x]=max(ans[i+1][x],ans[i][j]*p[j][x]);
                ans[i+1][j]=max(ans[i][j]*p[j][x],ans[i+1][j]);
            }
        }
       for(int i=0;i<=n+1;i++)
        for(int j=0;j<c;j++)
        {;
            //printf("%d %d %lf     ",i,j,ans[i][j]);
            //if(j==c-1)cout<<"\n";
        }
        double anss=0;
        for(int i=0;i<c;i++)
            anss=max(anss,ans[n][i]);
        printf("%.6lf\n",anss);
   }
}