随笔分类 -  语言(CPP)

摘要:今天写树形dp,用匿名函数出现了极其玄学的报错,modernCPP给我上了一课 note: 'solve()::<lambda(auto:23, int, int)>::~()' is implicitly deleted because the default definition would b 阅读全文 »
posted @ 2024-02-26 15:26 加固文明幻景 阅读(26) 评论(0) 推荐(0) 编辑
摘要:今天做题的时候搞范围循环,发现不能对 vector 数组元素引用。 报错 vector<bool> prev(26, false); for (bool& x : prev) x = true; [错误] 非常量引用的初始值必须是左值 这很反常识,因为其他元素的 vector 我都是用这样来操作元素 阅读全文 »
posted @ 2024-02-02 11:20 加固文明幻景 阅读(91) 评论(0) 推荐(0) 编辑
摘要:简述 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>,其中学生姓名用string类型,作 阅读全文 »
posted @ 2024-01-02 21:01 加固文明幻景 阅读(930) 评论(0) 推荐(0) 编辑
摘要:P1572 计算分数 看似数学题,实则数学思路很好想,主要是字符串处理难。 就只谈谈读入,读入一堆分数,又要判 / 又要判正负号。 纯用字符串一个个搞,麻烦的要死。 这时候就要借用语言本身对于数字的处理,对于数字就直接读数字类型,然后中间的读字符类型,这样判断正负号等难题都交给语言本身了。 scan 阅读全文 »
posted @ 2023-12-05 10:00 加固文明幻景 阅读(8) 评论(0) 推荐(0) 编辑
摘要:位运算实现 swap 异或的性质 aa=0a0=aab=baa = a ^ b; b = a ^ b; a = a ^ b; 证明 a=(ab)\[b=(a \oplus b) \o 阅读全文 »
posted @ 2023-12-02 14:33 加固文明幻景 阅读(100) 评论(0) 推荐(0) 编辑
摘要:原码、反码、补码与 memset 再探 概述 三个计算机用来表达负数的形式。 原码 通过第一位的 0 来直接表示正数,1 来直接表示负数。 然而计算机并不用这种方式。 反码 即把要表示的负数的绝对值对应的二进制全部取反来表示。 坏处是 0 有两种表达方式,全 0 和全 阅读全文 »
posted @ 2023-12-02 11:26 加固文明幻景 阅读(47) 评论(0) 推荐(0) 编辑
摘要:P1955 [NOI2015] 程序自动分析 基本思路 考虑到了不等号的不可传递性,所以决定只开相等的并查集。 然后突发奇想,觉得可以在找父亲的过程中判断是不是冲突。 然而这样就不能路径压缩,显然超时。 并且,根本没看清楚数据范围,实际上这题的数很大,裸开数组会爆炸。 这是一开始的代码 #inclu 阅读全文 »
posted @ 2023-11-28 19:25 加固文明幻景 阅读(47) 评论(0) 推荐(0) 编辑
摘要:P3879 TJOI2010 阅读理解 基本想法 开一个 map 组成的数组,然后每篇文章分配一个 map。查找的时候在每次都跑一遍。 显然 MLE 了。 改进 既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个 map<string, vector<int>>。 但是同一篇文章 阅读全文 »
posted @ 2023-11-28 16:08 加固文明幻景 阅读(4) 评论(0) 推荐(0) 编辑
摘要:STL之map 学籍管理 题目描述 您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 105 条): 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 \(\te 阅读全文 »
posted @ 2023-11-27 18:12 加固文明幻景 阅读(10) 评论(0) 推荐(0) 编辑
摘要:STL之set 木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作: 进货,格式1 Length:在仓库中放入一根长度为 Length(不超过 阅读全文 »
posted @ 2023-11-27 17:42 加固文明幻景 阅读(8) 评论(0) 推荐(0) 编辑
摘要:while (l <= r) { mid = l + (r - l) >> 1; ...... } 这样是错误的! 由于>>的优先级问题,应用如下格式。 while (l <= r) { mid = l +( (r - l) >> 1); ...... } 阅读全文 »
posted @ 2023-10-24 20:36 加固文明幻景 阅读(9) 评论(0) 推荐(0) 编辑
摘要:iterator是通用的遍历容器的方式 通用模板 anySet <a...> as; anySet <a...>::iterator it = as.begin(); for (; it != as.end(); it++) { cout <<(*it);//即迭代器it指向的元素 } 四种迭代器 阅读全文 »
posted @ 2023-10-23 16:49 加固文明幻景 阅读(145) 评论(0) 推荐(0) 编辑
摘要:传址调用 void swap(int* p1, int* p2) { int temp = *p1; *p1 = *p2; *p2 = temp; } int main() { swap(&x, &y); } 引用调用 void swap(int& p1, int& p2) { int temp = 阅读全文 »
posted @ 2023-10-06 10:00 加固文明幻景 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示