日常:论我的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所有人的提包和狗牌 ...
随机推荐
- c++中.c_str和.c_data
1 关于.c_str的用法: const char *c_str(); 这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效.因此要么现用先转换,要么把它的数据复制到用户 ...
- 博客图片失效?使用npm工具一次下载/替换所有失效的外链图片
前言 大约一个月前,微博的图片外链失效了,以及掘金因为盗链问题也于2019/06/06决定开启防盗链,造成的影响是:个人博客网站的引用了这些图片外链都不能显示. 目前微博和掘金的屏蔽,在CSDN和se ...
- python 之 配置环境变量、通过pip 安装第三方库
配置环境变量 右击桌面上的“此电脑”—>“属性”—>“高级系统设置”—>右下角“环境变量”—>双击“系统变量”里的“Path”—>点击“新建”—>输入python的 ...
- 解决 Xshell 连接出现 The remote SSH server rejected X11 forwarding request 问题
问题描述 使用 Xshell 5 首次连接虚拟机 CentOS 7.6 出现这样的提示: WARNING! The remote SSH server rejected X11 forwarding ...
- 优化 SQL 查询:如何写出高性能SQL语句
1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...
- springMVC validator验证的使用
http://blog.csdn.net/miketom155/article/details/45058195 1. 实现Validator接口,对数据进行校验 @RequestMapping(va ...
- js 合并2个结构
var conditions = getJsonObj("conditionArea"); var plogId = { ProgId: getProgId() }; $.exte ...
- icomoon字体使用
如何灵活利用免费开源图标字体-IcoMoon篇 by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/w ...
- 当不知道基本数据类型的取值范围时,可以通过max_value等来查询
public class Demo03{ public static void main(String[] args){ System.out.println("int MAX " ...
- PowerShell~执行策略的介绍
首先看一下无法加载ps1脚本的解决方法 事实上也是由于策略导致的 解决方法主是开启对应的策略 set-ExecutionPolicy RemoteSigned 执行策略更改 执行策略可以防止您执行不 ...