2017.10.23 測試總結并今日總結

来源:互联网 发布:最好的数据恢复 编辑:程序博客网 时间:2024/06/05 03:57

2017.10.23 – Day 15

測試總結:

T1:就是一個Fibonacci sequence,然而自己預處理時預處理少了…


附:

部分代码(前):
这里写图片描述

inline void make(){       f[0]=0,f[1]=1;    for(int i=2;i<=39;++i)        f[i]=f[i-1]+f[i-2];}

部分代码(后):

这里写图片描述

inline void make(){       f[0]=0,f[1]=1;    for(int i=2;i<=45;++i)        f[i]=f[i-1]+f[i-2];}

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述


T2:↓↓↓std給的正解 ↓↓↓
这里写图片描述

表示自己考試時第一想法是LCA,但是仔細想想又覺得然并卵…
於是打算打一個30分的暴力走人。

↓↓↓對於暴力給的題解(30%)↓↓↓
这里写图片描述

表示自己連暴力不會…


可是!出題人并沒有想到還有一種神奇的暴力叫做 –> 二維 Dijkstra+堆

int dis[3025][3025];
inline void make(int x){    memset(visit,0,sizeof(visit));    priority_queue< pair<int,int> >que;    que.push(make_pair(0,x));    dis[x][x]=0;    while(!que.empty())    {        pair<int,int> s=que.top();        que.pop();        visit[s.second]=true;        for(int u=first[s.second];u;u=edge[u].next)            if(!visit[edge[u].to]&&dis[x][edge[u].to]>dis[x][s.second]+edge[u].len)            {                dis[x][edge[u].to]=dis[x][s.second]+edge[u].len;                que.push(make_pair(-dis[x][edge[u].to],edge[u].to));            }    }   }
inline void check(int x,int y){    int cnt=0;    for(int i=1;i<=n;++i)        if(dis[x][i]==dis[y][i])            ++cnt;    cout<<cnt<<endl;    }
if(m<=3000)         for(int i=1;i<=n;++i)            make(i);    for(int i=1;i<=m;++i)    {        int a,b;        a=read(),b=read();        if(a==b) cout<<n<<endl;        else     check(a,b);    }

这里写图片描述


↓↓↓哦?題目中還有一種情況↓↓↓
这里写图片描述


於是開開心心 20min –> 40分 入手~

这里写图片描述


T3:表示“拆網線”是個什麽鬼?为啥要拆网线去取暖?

考後出題人說他出的數(樹)據長這樣:
这里写图片描述

这里写图片描述这里写图片描述这里写图片描述

恩恩…


題解表示這只是一道簡單的DP:
这里写图片描述


當然也有大佬用貪心的高超姿勢…AC AK了…以及網絡流的…
这里写图片描述


自己表示自己一點思路都沒有…

这里写图片描述


交一個期望0分的暴力…(只能過樣例)

inline void work(){    if(k&1) cout<<((k+1)>>1)<<endl;    else    cout<<(k>>1)<<endl;}

結果?

这里写图片描述

2333333333333333333333333333333……………………
这里写图片描述


呵呵…這次測試大概就是這樣的了,呵呵…
这里写图片描述

原创粉丝点击