2017年08月02-03日

https://vjudge.net/contest/175622#problem/B
这题自己没想到二分。。想的方法也是没有记忆化的。。。
只能看题解。。挺好的。。。http://blog.csdn.net/wdcjdtc/article/details
/39177905
结果我的还是wa了。。。醉了。。
然后去检查,发现这里的mem(dp,-1)不能只弄一次。。而是每个样例都要弄。。为什么,,这个地方不是优化的地方吗。。别人不是用模板做的,没法学。。

https://vjudge.net/contest/174091#problem/C
哎。这么一样的提,我还是做了那么久,一个bug居然一直没有找出来。。我的B不能两个地方都定义了。。
结果还是wa。。算了,,时间不是用来debug的。。。终于过了,看了师兄的,原来我太傻逼了。。 我的B-1 不能忘了进制位要-1.。。

https://vjudge.net/contest/174091#problem/E
这题自己也没做出,,对于样例我的答案少一。交上去当然wa。。
有个地方自己逗比了,应该一边dfs 的时候要一边取模,这样就不会把dp开的那么大。。可能就可以加一维?而且看别人的,这里居然要处理前导0?。。
然后只能照着大佬师兄的打。。并且发现自己原来没有好好分析题目。。一些重要的mul我没有。。

https://vjudge.net/contest/175622#problem/F
这题看师兄的代码写的真好。。
敲了就交了。。

突然又不知道该学什么好。。。感觉高斯我是没有办法做的了。。这些时间
(1)lca (2)treap(3)网络流,费用流,

然后就开始打div2来加深,好
lca的三种方法。。
其中的倍增法的模板。:
做之前的那个D - Misha, Grisha and Underground

int n,q;
const int maxn=1e5+10;
int LG=17;
int tot,head[maxn];
    int anc[maxn][20];
int depth[maxn],fa[maxn];
struct Edge{
    int v,nxt;
}edge[maxn];
void add(int u,int v){
    edge[tot].v=v;edge[tot].nxt=head[u];
    head[u]=tot++;
}
void dfs(int u,int d,int par){
    depth[u]=d;
    anc[u][0]=fa[u];
    for(int i=1;i<=LG;++i){
        anc[u][i]=anc[anc[u][i-1]][i-1];
    }
    for(int i=head[u];~i;i=edge[i].nxt){
        int v=edge[i].v;
        if(v==par)continue;
        fa[v]=u;
        dfs(v,d+1,u);
    }
}
int lca(int u,int v){
    if(depth[u]<depth[v])swap(u,v);
    for(int i=LG;i>=0;i--)
        if(depth[v]<=depth[anc[u][i]])u=anc[u][i];
    if(u==v)return u;
    for(int i=LG;i>=0;i--){
        if(anc[u][i]!=anc[v][i]){
            u=anc[u][i];
            v=anc[v][i];
        }
    }
    return anc[u][0];
}

int dist(int u,int v){
    return depth[u]+depth[v]-depth[lca(u,v)]*2;
}
int main(){
    sf("%d%d",&n,&q);
    mem(head,-1);tot=0;
    fa[1]=1;
    rep(i,1,n-1){
        int u;sf("%d",&u);
        add(u,i+1);
        add(i+1,u);
    }
    dfs(1,0,1);
    rep(i,1,q){
        int a,b,c;sf("%d%d%d",&a,&b,&c);
        int ab=dist(a,b),bc=dist(b,c),ca=dist(a,c);
        pf("%d\n", max(ab+ca-bc,max(ab+bc-ca,bc+ca-ab))/2+1);
    }
}

自己单位时间做的题目的质量和数量都太低了,要提高

https://vjudge.net/contest/175681#problem/C
今天的多校重现赛,,这题其实非常像我们的校赛的那道我最终也还是没有做出来的题目。。。
用到了链表,,然而我现在又忘了怎么弄。。现在当初那道题目我也不会

这种题应该很经典的。。。一定要会。看来我的什么滑动窗口啊,什么单调队列的什么一定要搞一搞,弄到像普通的数据结构一样就不怕了。。
https://vjudge.net/contest/175681#problem/H
这题好像打表就可以看出来。。可是我真的不会打表

Codeforces Round #426 (Div. 2) C题
参考,这个的。自己还是太菜了

http://blog.csdn.net/sunmoonvocano/article/details/76408971

Codeforces Round #426 (Div. 2) D题

这可这的是一道好题啊。。看了题解都看了挺久,而且自己也没有做过这样的dp+线段树的题
参考http://blog.csdn.net/ssimple_y/article/details/76410328
居然有一个博客的代码是错的。让我敲了那么久。。
这题的相当于所有的dp【i】【j】都存在了线段树中,所以不会超时,,
更新的话是通过last+线段树的操作更新的。

果然有。。
https://vjudge.net/problem/CodeForces-675E
这题做的也很可怕,,因为我居然没有发现自己的错误的地方,其实并不是裸的rmq。。 所以这个地方用线段树也许更加的直观。
参考http://blog.csdn.net/libin66/article/details/51484474K

明天要补敲的提(都已经看过的了)

(多校的三道题)
找几个要打表的提,学下怎么打表
https://vjudge.net/contest/175681#problem/H

参考http://blog.csdn.net/algzjh/article/details/76571580
其中的mu是莫比乌斯函数。。学习下他的打表是怎么写的。。

(前提要把链表搞清楚,, 然后顺便吧单调站和单调队列等等弄懂,做题)
https://vjudge.net/contest/175681#problem/C
参考,还是不太懂。。。。。(等着补?)
http://www.cnblogs.com/fightfordream/p/7272100.html
这题居然是思维题。。确实我也想不出。而且少了我模仿别人的代码的时候,少了LL的地方很坑。

https://vjudge.net/contest/175681#problem/E

CF 的提
看看自己的二分敲得可不可以。。
http://codeforces.com/contest/832/problem/C
结果自己居然没有把式子列好。。看来还是有点畏惧啊。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值