【团体程序设计天梯赛】L1~L2实战反思合集(C++)

目录

实战反思汇总记录

L1-104 九宫格 - 团体程序设计天梯赛-练习集

L1-101 别再来这么多猫娘了! - 团体程序设计天梯赛-练习集

 L2-001 紧急救援 - 团体程序设计天梯赛-练习集

 L2-002 链表去重 - 团体程序设计天梯赛-练习集

L2-003 月饼 - 团体程序设计天梯赛-练习集

L2-004 这是二叉搜索树吗? - 团体程序设计天梯赛-练习集!重

L2-005 集合相似度 - 团体程序设计天梯赛-练习集

L2-006 树的遍历 - 团体程序设计天梯赛-练习集 //已知后和中序构建二叉树,然后层序遍历

L2-008 最长对称子串 - 团体程序设计天梯赛-练习集

L2-009 抢红包 - 团体程序设计天梯赛-练习集

L2-011 玩转二叉树 - 团体程序设计天梯赛-练习集

L2-012 关于堆的判断 - 团体程序设计天梯赛-练习集

L2-013 红色警报 - 团体程序设计天梯赛-练习集

L2-050 懂蛇语 - 团体程序设计天梯赛-练习集

值得重看!L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集


实战反思汇总记录

仔细审题,想好再写

L1-104 九宫格 - 团体程序设计天梯赛-练习集

易忽略的错误:开始习惯性地看到n就以为是n*n数组了,实际上应该是9*9的固定大小数组,查了半天没查出来

L1-101 别再来这么多猫娘了! - 团体程序设计天梯赛-练习集

New:最后那两个长字符串测试点的处理,不要在一开始就将违禁词替换成“<censored>”,而是先替换成“-_-”这样的比较短的字符串,否则违禁词多的时候,不断地改成长替换词,会加重下一次查找操作的负担。故先替换成短的,最后在输出前再替换成题目要求的

string类型常用方法

getline(cin, str);//在此之前如果单独用过cin>>, 则需要在二者之间用一次getline“清空缓存”,才能够成功用getline接收

int pos = str.find( to_find, start_pos);

str.replace(pos, len, "to_replace_with")

 L2-001 紧急救援 - 团体程序设计天梯赛-练习集

尝试DFS:开始使用DFS来遍历求解,但 DFS 存在大量重复计算,像同一节点会被多次访问并重复计算路径信息,导致时间复杂度高,部分测试点未通过

改用迪杰斯特拉:为了求解,设置了很多的辅助数组,对于他们本身的初始化、以及对于起始点S的初始化赋值容易出错,需要小心

迪杰斯特拉相当于是用一次过程找出了所有点的信息,最后只需要按要求输出D对应的信息即可

迪杰斯特拉算法,通过储存每个点的信息,为后续的其他点的信息求取打下了坚实基础,用空间换取了大量时间

图论问题,应思考是否可以在dijistra的基础上改进来实现

 L2-002 链表去重 - 团体程序设计天梯赛-练习集


//混乱时,先文字写出大致的思路,然后将这思路一条条实现
//printf("%05d\n", cur_node.nxt_address);//补零输出
//段错误一般是数组访问越界导致,比如Del为空时,Del[0]是非法访问

L2-003 月饼 - 团体程序设计天梯赛-练习集

//需要结构体的存储一般可以拆成多个vector来操作,但涉及到依据某一项来整体排序就不能分别存储,结构体起到了打包排序的效果

struct Node{
    int a;
    bool operator<(const Node& other)const{
        return a < other.a;
    }
};


//精度要求高:

警惕考虑小数的问题:用double存储,且注意,两个int相除自动按int存储,要用double强转才能变成double

//int与double做乘法,得到double(向精度更高的转化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值