操作3死循环30pts人没了求助

P6136 【模板】普通平衡树(数据加强版)

EDqwq @ 2021-01-26 15:26:52

int find(int x){
    int now = rt,ans = 0;
    while (1){
        if (x < w[now]){
            now = son[now][0]; 
            continue;
        }
        ans += size[son[now][0]];
        if (x == w[now]){ 
            splay(now); 
            return ans + 1;
        }
        ans += num[now];
        now = son[now][1];
    }
}

by EDqwq @ 2021-01-26 15:27:11

需要全部代码我就发qwq

太长了


by Terac @ 2021-01-26 15:43:12

您貌似没判找不到该数的情况


by EDqwq @ 2021-01-26 15:46:41

@水の殤璃 这道题不是保证有答案吗


by Terac @ 2021-01-26 15:48:15

我把break删了30分(


by EDqwq @ 2021-01-26 15:49:35

@水の殤璃 我什么也不改交上去也是30分

很显然


by MatrixCascade @ 2021-01-26 15:56:24

给个完整代码吧,您没加公开计划我看不了您代码(((

顺便提醒一句,长可以发剪贴板里,用完再删(


by EDqwq @ 2021-01-26 16:01:45

@MatrixCascade https://www.luogu.com.cn/paste/ehtpovu4


by Terac @ 2021-01-26 16:07:57

@林深时x见鹿

int find(int x){
    int now = rt,ans = 0;
    while (1){
        if(!now) 
            break;
        if (x < w[now]){
            now = son[now][0]; 
            continue;
        }
        ans += size[son[now][0]];
        if (x == w[now]){ 
            splay(now); 
            break;
        }
        ans += num[now];
        now = son[now][1];
    }
    return ans + 1;
}

by EDqwq @ 2021-01-26 16:10:18

@水の殤璃 orz

此帖完结


by 传奇英雄 @ 2021-01-26 16:45:09

萌新你个锤子。


| 下一页