2017-Sp04-team2

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

== 流水账 ==
yzc和cjb经过了绝望的早上,决定拉上4队吉祥物jww同学打cf的Bubble Cup X[FINAL].  开场yzc从A开始看,cjb从J开始,jww从中间开始. yzc判断A是签到题,迅速打了一发,获得wa,然后发现全世界都在wa,怀疑数据错了,遂放弃. cjb灵魂出窍看了G,表示G是真 签到题,上机打,不久'''G1y24'''. yzc上机写B,发现题意读错,迅速调整一波,没过样例,怀疑人生,细想之下发现bug,下机突然想到正确做法,上机改了一发提交后wa了. 此时jww和cjb讨论出了D和I,jww拿奶茶,yzc发现bug,把正在写D的cjb赶下来改后'''B2y58'''. cjb写D,调过之后wa了,cjb把代码打印给yzc和jww研究,cjb敲I的树上莫队板子,不久后发现数个小bug,调整后终于变成了TLE,cjb怀疑人生,在队友怂恿下把floyd改成了dijkstra,又假装自己优化了常数,又获得了N发TLE,最后cjb发现自己二分图敲成了傻逼,修改后'''D11y125'''. yzc在cjb敲的树上莫队上改了统计答案的函数,提交后wa,发现输出没有I64d,最后'''I2y145'''. yzc上机写之前讨论的E,cjb和jww研究F,cjb使用了大杀器后找到了公式,yzc敲E敲得怀疑人生,jww换下写F,很快写完后wa了两发,yzc期间几次上机调E,最后'''E1y221'''. 三人一起看F,yzc发现n和m反了,修改后终于'''F5y231'''.cjb上机敲了一波A的进阶贪心,wa 9. 期间jww和yzc想出了C,jww上机敲C,疯狂提交,最后yzc和jww一起调整了代码,jww最后5min发现自己的傻逼错误,终于'''C7y296'''. 最后全场rk45.
== 总结 ==
=== chenjb ===
晚上三个人算是加训吧,在218,一台电脑刚Bubble Cup,开场自己就签了个到然后很快想出了D和I,只可惜自己的二分图姿势似乎不太对,贡献了几发罚时,比较抱歉,三个人打比赛感觉时间一下子充裕起来,除了罚时好像没有太注意(因为是加训有点随便),感觉前中后期都做得还行,讨论起来很顺畅,或许双打也是一种修行?(对于我和yzc绝对是苦修了...)

=== oipotato ===
我是cjb的儿子!
=== jyw  ===
我也是cjb的儿子!
== 题解 ==
二分图正确姿势:[[BR]]
bool dfs(int u)
{
    for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点
        int v = edges[*i].to;
        if (!check[v]) {     // 要求不在交替路中
            check[v] = true; // 放入交替路
            if (matching[v] == -1 || dfs(matching[v])) {
                // 如果是未盖点,说明交替路为增广路,则交换路径,并返回成功
                matching[v] = u;
                matching[u] = v;
                return true;
            }
        }
    }
    return false; // 不存在增广路,返回失败
}
== 补题 ==

流水账

yzc和cjb经过了绝望的早上,决定拉上4队吉祥物jww同学打cf的Bubble Cup X[FINAL]. 开场yzc从A开始看,cjb从J开始,jww从中间开始. yzc判断A是签到题,迅速打了一发,获得wa,然后发现全世界都在wa,怀疑数据错了,遂放弃. cjb灵魂出窍看了G,表示G是真 签到题,上机打,不久G1y24. yzc上机写B,发现题意读错,迅速调整一波,没过样例,怀疑人生,细想之下发现bug,下机突然想到正确做法,上机改了一发提交后wa了. 此时jww和cjb讨论出了D和I,jww拿奶茶,yzc发现bug,把正在写D的cjb赶下来改后B2y58. cjb写D,调过之后wa了,cjb把代码打印给yzc和jww研究,cjb敲I的树上莫队板子,不久后发现数个小bug,调整后终于变成了TLE,cjb怀疑人生,在队友怂恿下把floyd改成了dijkstra,又假装自己优化了常数,又获得了N发TLE,最后cjb发现自己二分图敲成了傻逼,修改后D11y125. yzc在cjb敲的树上莫队上改了统计答案的函数,提交后wa,发现输出没有I64d,最后I2y145. yzc上机写之前讨论的E,cjb和jww研究F,cjb使用了大杀器后找到了公式,yzc敲E敲得怀疑人生,jww换下写F,很快写完后wa了两发,yzc期间几次上机调E,最后E1y221. 三人一起看F,yzc发现n和m反了,修改后终于F5y231.cjb上机敲了一波A的进阶贪心,wa 9. 期间jww和yzc想出了C,jww上机敲C,疯狂提交,最后yzc和jww一起调整了代码,jww最后5min发现自己的傻逼错误,终于C7y296. 最后全场rk45.

总结

chenjb

晚上三个人算是加训吧,在218,一台电脑刚Bubble Cup,开场自己就签了个到然后很快想出了D和I,只可惜自己的二分图姿势似乎不太对,贡献了几发罚时,比较抱歉,三个人打比赛感觉时间一下子充裕起来,除了罚时好像没有太注意(因为是加训有点随便),感觉前中后期都做得还行,讨论起来很顺畅,或许双打也是一种修行?(对于我和yzc绝对是苦修了...)

oipotato

我是cjb的儿子!

jyw

我也是cjb的儿子!

题解

二分图正确姿势:

bool dfs(int u)

{

for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点

int v = edges[*i].to;

if (!check[v]) { // 要求不在交替路中

check[v] = true; // 放入交替路

if (matching[v] == -1 || dfs(matching[v])) {

// 如果是未盖点,说明交替路为增广路,则交换路径,并返回成功

matching[v] = u;

matching[u] = v;

return true;

}

}

}

return false; // 不存在增广路,返回失败

}

补题