日常:论我的T3是如何苟掉的
说起来都是泪啊
T3的bfs一直不对,我想死。
考试时候苟了两个小时,死活找不到错误(因为lca和离散化都码出来了,太乱)
最后把bfs单独提出来,发现在bfs里面输出的f[ly][0]都是正确的,到外面就彻底崩掉,全是0。
又调了一节课,终于发现
数组越界了。。。
错误代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#include<queue>
#define rint register int
using namespace std;
int n,m,a,b,tot,first[100005];
int deep[100005],f[100005][18];
struct node{
int u,v,nxt;
}edge[100005];
inline void add(int u,int v)
{
++tot;
edge[tot].u=u;
edge[tot].v=v;
edge[tot].nxt=first[u];
first[u]=tot;
}
inline void bfss()
{
queue <int> q;
deep[1]=1;
q.push(1);
while(!q.empty())
{
int lq=q.front();q.pop();
for(rint i=first[lq];i;i=edge[i].nxt)
{
int ly=edge[i].v;
if(ly==0)continue;
if(deep[ly])continue;
deep[ly]=deep[lq]+1;
f[ly][0]=lq;
cout<<ly<<":fa:"<<f[ly][0]<<endl;
// cout<<f[20][0]<<endl;
for(rint j=1;j<=18;++j)
{
f[ly][j]=f[f[ly][j-1]][j-1];
printf("f[%d][%d]=%d\n",ly,j,f[ly][j]);
}
q.push(ly);
}
}
return ;
}
int main()
{
scanf("%d %d",&n,&m);
for(rint i=1;i<n;++i)
{
scanf("%d %d",&a,&b);
add(a,b);add(b,a);
}
bfss();
cout<<f[20][0]<<endl;
}
正确代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#include<queue>
#define rint register int
using namespace std;
int n,m,a,b,tot,first[100005];
int deep[100005],f[100005][18];
struct node{
int u,v,nxt;
}edge[100005];
inline void add(int u,int v)
{
++tot;
edge[tot].u=u;
edge[tot].v=v;
edge[tot].nxt=first[u];
first[u]=tot;
}
inline void bfss()
{
queue <int> q;
deep[1]=1;
q.push(1);
while(!q.empty())
{
int lq=q.front();q.pop();
for(rint i=first[lq];i;i=edge[i].nxt)
{
int ly=edge[i].v;
if(ly==0)continue;
if(deep[ly])continue;
deep[ly]=deep[lq]+1;
f[ly][0]=lq;
cout<<ly<<":fa:"<<f[ly][0]<<endl;
// cout<<f[20][0]<<endl;
for(rint j=1;j<=17;++j)
{
f[ly][j]=f[f[ly][j-1]][j-1];
printf("f[%d][%d]=%d\n",ly,j,f[ly][j]);
}
q.push(ly);
}
}
return ;
}
int main()
{
scanf("%d %d",&n,&m);
for(rint i=1;i<n;++i)
{
scanf("%d %d",&a,&b);
add(a,b);add(b,a);
}
bfss();
cout<<f[20][0]<<endl;
}
我想去死怎么办。。。
日常:论我的T3是如何苟掉的的更多相关文章
- NOI前训练日记
向别人学习一波,记点流水帐.17.5.29开坑. 5.29 早晨看了道据说是树状数组优化DP的题(hdu5542),然后脑补了一个复杂度500^3的meet in the middle.然后死T... ...
- 雅礼集训1-9day爆零记
雅礼集训1-9day爆零记 先膜一下虐爆我的JEFF巨佬 Day0 我也不知道我要去干嘛,就不想搞文化科 (文化太辣鸡了.jpg) 听李总说可以去看(羡慕)各路大佬谈笑风声,我就报一个名吧,没想到还真 ...
- Glide Golang包管理
Golang的包管理乱得不行,各种工具横空出世,各显神通啊.用了几个下来,发现 Glide 是比较好用的,使用了 vender 来进行管理,多个开发环境的版本不冲突,功能强大,配置文件也足够简单. 初 ...
- FJOI2019全记录(福建省选)
Day 0 最后一个早上,早读完后就到机房里,复习了左偏树和计算几何,然后真的不知道还要做什么了(FFT和一些数论的结论昨天复习过了 也许还要去学一点新东西(?),像Krusk重构树什么的.(一直没有 ...
- iPhone换电池是原装电池好还是换第三方大容量电池好?
转:https://www.xianjichina.com/news/details_60791.html 最近这段时间苹果降速门事件持续发酵,闹得满城风雨.尽管苹果公司两次致歉,很多果粉都去更换电池 ...
- Google工作法
本文转自:https://www.yuque.com/heqingbao/msfy2c/zg56gm 这几天去上海参加Google开发者大会,利用空闲时间读了一本快餐书,书名叫<Google工作 ...
- 0927CSP-S模拟测试赛后总结
84pts rank28 经历了一个阶段的持续低迷,终于回到自己之前的位置了啊. 尽管依旧不是太靠上,但是还是证明了我的努力. 宿舍三人的风水轮流转之谈终究只是戏言和巧合.嘟嘟和Lockey都进第一机 ...
- [Go疑难杂症]为什么nil不等于nil
现象 在日常开发中,可能一不小心就会掉进 Go 语言的某些陷阱里,而本文要介绍的 nil ≠ nil 问题,便是其中一个,初看起来会让人觉得很诡异,摸不着头脑. 先来看个例子: type Custom ...
- [日常] NOIWC 2018爆零记
开个坑慢慢更(逃 (然而没准会坑掉?) day 0 大概 $8:30$ 就滚去雅礼了qwq 过去的时候发现并没有人...进报到处楼门的时候还被强行拍照围观了一波OwO 然后就领了HZ所有人的提包和狗牌 ...
随机推荐
- vs 2015 community Blend和devenv启动的区别
使用Blend启动会有部分功能无法显示 如:SVN管理插件,工具栏 使用devenv启动会全部显示
- BZOJ1787 meet
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1787 水题,但是结论很有趣. 题目求的是距离三个点之和最小的点. 这个很显然是在三个LCA上, ...
- 任务28:RequestDelegate管道实现思路
任务28:RequestDelegate管道实现思路 管道的实现机制 RequestDelegate是管道的核心.ApplicationBuilder就是接收了很多个RequestDelegae把它拼 ...
- eclipse快捷键设置
文章斋词水电费 55 48 Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开 ...
- bzoj 5498: [2019省队联测]皮配【dp】
是个神仙dp-- 参考:https://www.luogu.org/blog/xzz-233/solution-p5289 设f[i][j][k]是前i个有限制的城市,所有学校中选蓝色阵营有j人,有限 ...
- 自定义层or网络
目录 Outline keras.Sequential Layer/Model MyDense MyModel Outline keras.Sequential keras.layers.Layer ...
- noi,ac第五场部分题解 By cellur925
题目质量还是不错的,只是我太菜了== 传送门 T1:序列计数(count) 题目描述 长度为n+1的序列A,其中的每个数都是不大于n的正整数,且n以内每个正整数至少出现一次. 对于每一个正整数k=1, ...
- BZOJ4653(区间离散化+线段树+决策单调尺取)
写得很好的题解 一眼过去很像是:排序,然后从前向后扫,有这个区间时插到树里,过去以后再删除.然后事实也是这样做的…… 具体起来: 1.如果考虑暴力的话,一种想法是枚举左端和右端要选取的区间(如果我们按 ...
- 128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度.例如,给出 [100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4].返回所求长度: 4.要求你的算法复杂度为 O ...
- 150 Evaluate Reverse Polish Notation 逆波兰表达式求值
求在 逆波兰表示法 中算术表达式的值.有效的运算符号包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰计数表达.例如: ["2", "1&quo ...