首页 > 其他分享 >警钟敲烂

警钟敲烂

时间:2024-02-08 12:00:12浏览次数:24  
标签:pre ... return last int 警钟 敲烂 inline

做题常见错误

亿些神奇的错误

警钟敲烂

关于链式前向星

  1. 用了链式前向星的题的最后几个点TLE/MLE/RE等等非常神奇的错误,一般都是链式前向星数组开小了

  2. 有多个图时最好吧Edge封装成Graph结构体

    struct Graph {
        struct Edge {
           int from, to, pre; 
           int w;
        } es[maxn];
        int last[maxn], cnt;
    
        inline void addEdge (int u, int v, int w) {
            es[++cnt] = Edge { u, v, last[u], w };
            last[u] = cnt;
        }
    
        inline int from (int i) { return e[i].from; }
        inline int to (int i) { return e[i].to; }
        inline int pre (int i) { return e[i].pre; } 
        inline int w (int i) { return e[i].w; }
    };
    
  3. 双向边...

没用的数组别留着

初始化

  1. 一定要初始化

  2. 位置不要放错

关于树上信息的统计

一般使用dfs

void dfs (int now)
{
    // if (vis[now]) return; // 最好不放在这里
    for (int i = last[now]; i ; i = pre[i])
    {
        int t = to[i];
        if (vis[t]) continue;

        /* ... 树上信息统计(自上而下) ... */

        dfs (t);

        /* ... 树上信息统计(自下而上) ... */       
    }   
}

vis判断是否是父亲时要把它放在for循环中int t = to[i];的后面而不是新的一遍递归的开始

十年OI一场空, 不开long long见祖宗

2023.07.09 22:29 at QBXT SC 有幸见了两次祖宗

改ll要改全!!

upd: 现在已经改成类似jiangly的写法 i64

P2891 Dining

我认为这题必须单独拿出来当典型

同时犯两个有关返回值毒瘤错误调了2天晚上大概6h, 我真的...

  1. \(Dinic\)返回值竟然被搞成了\(bool\), 呵呵

  2. 返回值缩进写错了, 竟然每遍for都要return, 呵呵呵呵呵呵

if / for / while后面不要加分号

这都什么毒瘤错误啊!!!!!

多测?!!

清空

离散化

vector离散化的话

正确写法是

inline void descrete () {
    vector <int> temp;
    for (int i = 1; i <= n; i++) {
        temp.push_back (a[i].s);
        temp.push_back (a[i].t);
    }
    sort (temp.begin (), temp.end ());
    m = unique (temp.begin (), temp.end ()) - temp.begin();

    for (int i = 1; i <= n; i++) {
        a[i].s = lower_bound (temp.begin (), temp.begin() + m, a[i].s) - temp.begin() + 1;
        a[i].t = lower_bound (temp.begin (), temp.begin() + m, a[i].t) - temp.begin() + 1;
    }
}

注意是temp.begin() + m

取模取模取模

pushUp!!! pushDown!!!

要用儿子结点的信息的时候必须先 pushDown

标签:pre,...,return,last,int,警钟,敲烂,inline
From: https://www.cnblogs.com/RainbowAutomaton/p/18011707

相关文章

  • 【警钟撅烂】不知道第几个
    网络流建立虚拟源点汇点编号分别为0,n+1然后初始化的时候从1到n....调题调了两个小时啊哈哈,被自己,蠢笑啦~#include<bits/stdc++.h>usingnamespacestd;constintN=605;constintM=2505;constintINF=(int)0x3f3f3f3f;intedgeid=1;inthead[N];structedg......
  • 【警钟撅烂】6
    写二分图匹配匈牙利板子洛谷3386WA#2百思不得其解翻看讨论区并ctrlf发现同样情况的帖子发现原因是函数内循环遍历的是左侧点有如下感受1.wssb2.洛谷的数据怎么这么水以上,警示后人附WA代码#include<bits/stdc++.h>usingnamespacestd;constintN=505;con......
  • 【警钟撅烂】1
    警示后人定义结构体之后记得加分号!!!事件事故概述2024年1月1日17点52分记某人尝试速通Febonacci矩阵加速递推定义结构体后没加分号导致CE若至错误调试耗时15分钟PS:加上分号后无编译AC,当事人非常开心以上,引以为戒(附CE代码)#include<bits/stdc++.h>usingnamespacestd;......
  • 【警钟撅烂】3
    正在完成线性基板子题始终WA#2#3#4#5百思不得其解遂撅洛谷讨论区,得前人警示:位运算记得打括号补上括号,遂AC以上,警钟长鸣附WA代码#include<bits/stdc++.h>usingnamespacestd;#definellunsignedlonglonglld[100];intn;voidInsert(llx){ for(inti=62;i......
  • 【警钟撅烂】5
    2024年1月24日15点49分正在完成高斯消元板子题ALL#WA翻出董晓逐行比对一眼丁真遂发现判断无解时括号打歪了if(fabs(a[i][i]<eps))蒸乌鱼解决此问题耗时20min以上,警示后人附WA代码#include<bits/stdc++.h>usingnamespacestd;constdoubleeps=0.000001;const......
  • 警钟敲烂
    以下是作者考场上遇到过的挂分的原因:空间开小,空间开大直接MLE。忘记判无解。忘开longlong。本地与评测机的环境不同导致的错误,包括:sizet的返回值是long,这东西在32位机上是int,在64位机上是longlong,因此如果出现在max/min中一定要强转类型,不然很有可能C......
  • 千里之堤溃于蚁穴,质量问题警钟长鸣
    千里之堤溃于蚁穴,质量问题警钟长鸣是能用就行,还是精益求精?水文一篇,一点点小感慨。事情缘由如下:缘起早上来,打开代码就看到了一个提交。改动上没啥问题,不过用到了ES2015的新语法,老旧浏览器上语法不识别,会直接导致整个文件挂掉,马上通知了开发立即修复。之所以对这个问题这......
  • 警钟长鸣
    变量名记得不要起得太常见,容易被CE\(!=\)优先级大于^滚动数组要记得清零背包问题的状态设计是刚好全部装满的,最后答案需要遍历求\(\text{max}\)当统计方案数时,记得关注方案是否重复设定最小/最大值时,看一下这个值是否足够小/足够大一定要记得开longlong!......
  • 警钟长鸣-----找零钱
    蒟蒻的我在这个题上花了40分钟还超时了(悲不说了先上超时的代码:1#include<bits/stdc++.h>2usingnamespacestd;3intres,n,a[]={1,2,5,10,20,50,100},x;4voiddfs(intst,intnum,intid)5{6if(st==0){res++;return;}7if(st<0||num>100||id>6)r......
  • “人工智能教父”从谷歌离职!称后悔发展AI,为世人敲响警钟?
       在加入谷歌的第十年、深度学习迎来爆发式发展的当下,被誉为“人工智能教父”的GeoffreyHinton已从谷歌离职,只是为了告诫人们AI已经变得很危险。    公开资料显示,GeoffreyHinton在2013年加入谷歌,曾任副总裁,研究机器学习算法十多年,把深度学习技术带进了谷歌的多项业务,直接......