- 博客(61)
- 收藏
- 关注
原创 Nowcoder.兔子的区间密码 ——位运算性质 异或性质
比如给了区间[2,5] 那么就有2 3 4 5这些数,其中 2 xor 5=7最大 所以密码就是7。兔子立马解开了密室的门,发现门外还是一个门,而且数字越来越大,兔子没有办法了,所以来求助你。可爱的兔子摸索了好久,发现密室里的两个数字是表示的是一个区间[L,R]而密码是这个区间中任意选择两个(可以相同的)整数后异或的最大值。00011=00100-1 小性质。只有解开密码,才能够出去。
2024-03-12 23:34:14
701
原创 AcWing 830. 单调栈 运用c++STL stack容器 实现单调栈
给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。
2024-03-05 21:27:26
437
原创 一些算法小技巧tips-提醒
string->int:int stoi(string str) int->string: string to_string(int i) 同理有stof,atoi(char*->int)if(find(vc.begin(), vc.end(), 0)!=vc.end());//序列式容器可以通过algorithm库中find函数查找,未找到返回尾迭代器。// string类成员函数:未找到返回string::npos。主要由最近刷L1和L2的天梯赛往年真题得出的小技巧汇总。
2024-03-05 19:56:59
439
原创 经典树形DP—小红树上染色问题
当以x为父亲节点的树不染红色的方案数是--子树i染红色的方案*自身(一直更新自身所延伸的子树的方案数) 乘法原理。当以x为父亲节点的树染红色的方案数是--子树i染红色的方案*自身+子树i不染红色的方案*自身。很显然这是一个树形DP问题。直接先后序遍历整棵树。
2024-03-04 23:33:23
837
1
原创 关于C++ STL中的find()函数和count()函数的复杂度
因为容器STL采用是map和set内部是红黑树实现的。因此map和set内部的find函数查找时间复杂度是O(logn).vector内部没有find函数,采用的是algorithm的find函数。map::find 和 set::find。是线性的,最坏情况是O(n).能用find就先用find吧。朴素的查找方法,O(n).count函数的复杂度。
2024-02-18 22:51:15
1946
原创 AcWIng 901 滑雪 记忆化搜索
给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。
2024-01-30 18:14:13
454
1
原创 可丽的难题 可丽的数学 (题解)
来源:牛客网现在可丽输入一个长度为 n 的 01 串表示一个二进制数。如果这个数可以被 3 整除,就输出 YES,否则就输出 NO。
2024-01-30 17:58:32
462
1
原创 函数指针与回调函数 初学
则pro=func;其中函数名传的是函数的地址,传入pro函数指针中。假如已经有一个函数void func(int a,string s);形如 void (*pro)(int,string);能完成和func函数内一样的功能。函数指针适用场景——回调函数;再调用pro(a,s);
2023-12-10 16:18:55
346
原创 sizeof() ,strlen(), length() ,size() 函数
*a.length()**计算字符串(string)变量的函数 ,字符数组不可以 ,计算长度也不包括“\0”适用范围:(1)字符串(2)字符、整型等各种数组,(3)int、flooat类型占的字节数。关于siazeof(a)、strlen(a)、a.length()、a.size()**sizeof()**返回一个对象或者类型所占的内存字节数(获取内存空间的大小)a.size()是string类定义的一个返回字符串大小的函数。适用范围:(1)字符串%s(2)字符数组。注意:计算长度不包括“\0”
2023-12-10 15:26:27
412
原创 洛谷P1824 进击的奶牛
Farmer John 建造了一个有 $N$($2 \leq N \leq 10 ^ 5$) 个隔间的牛棚,这些隔间分布在一条直线上,坐标是 $x _ 1, x _ 2, \cdots, x _ N$($0 \leq x _ i \leq 10 ^ 9$)。他的 $C$($2 \leq C \leq N$)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。第 $2 \sim N+1$ 行:每行一个整数,表示每个隔间的坐标。第 $1$ 行:两个用空格隔开的数字 $N$ 和 $C$。
2023-08-22 11:24:47
84
1
原创 杂项111111111
在这个示例中,循环将遍历字符串 "Hello" 中的字符,并逐个打印,直到遇到空字符。for(auto [key,val]:v)cout
2023-08-21 15:46:40
83
1
原创 AcWing 4122. 字符串转换
定一个由小写字母构成的字符串 S。再给定一个由若干个的小写字母按排序构成的字符串 FF。现在,你可以对字符串 S 进行字符转换操作。每次选中其中一个字符(即某个小写字母),将其转换为一个按照字母顺序与其相邻(上一个或下一个)的小写字母。例如,c 可以转换为 b 或 d。额外的,我们将按照循环顺序考虑字母,即我们认为 a 的上一个字母为z,z 的下一个字母为 a。请问,至少需要进行多少次操作,可以使得字符串 S 中的每个字母都出现在字符串 FF 中。
2023-07-13 16:30:22
158
1
原创 近期的小方法以及回顾
符号 & 表明 x 是一个引用变量,能让接下来的代码能够修改数组的内容,而第一种语法不能。回文字符串的话直接用reverse(s.begin(),s.end())函数判断即可。是C++ STL(标准模板库)中容器的一个成员函数,它用于删除容器的最后一个元素。使用unique之后,数组是=1 2 3 4 5 7 8 9(最后三个是随机数组)只能用于那些支持在尾部删除元素的容器。要删除这些容器中的元素,需要使用特定的成员函数,如。这些支持在尾部删除元素的 STL 容器。而unique函数返回的是7的下标。
2023-07-07 13:51:29
94
1
原创 数字序列1
来源:牛客网给定一个长度为 nnn 序列 {a}\{a\}{a},对序列 {a}\{a\}{a} 进行任意排列之后得到新的数组 {b}\{b\}{b},求满足 i∈[1,n],ai≠bii \in [1,n],a_i \neq b_ii∈[1,n],ai=bi 的 iii 最多可能个数。
2023-07-06 15:30:57
158
1
原创 近期的方法与注意事项
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。所以,它们的区别在于它们的类型和用法不同。本题可以把字符串转化成数字(秒),转化的方式可以通过遍历,用强制类型转换,每。可以读入字符串中的空格。不可以读入字符串中的空格 ,遇到空格或者回车就结束。如果你第一个输入的就是空格回车和换行那么cin是会自动忽略并等待输入的。需要注意的是,cin读一个字符串的时候是不读空格,回车和换行的。的缩写,意思是个人的最好成绩。秒),中间用空格隔开。
2023-05-23 18:57:49
79
1
原创 最近的方法与注意事项
run方法中的代码就是线程要运行的代码,运行完毕以后,就不会再次运行,其方法本身并不是无限循环的。而while(true)是为了让run方法中的代码不断重复的运行,也就是让线程不停的运行,便于查看效果。当然,while(true)并不是run()方法必须的,如果线程的run()部分只需要执行一次,则不需要嵌套while(true)循环。由于是比较整数的大小,所以可以通过比较字符串的大小,高位数字的大小可以直接放在前面,又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613。
2023-05-16 21:40:56
76
1
原创 最近刷题学到的一些常用的小方法
设有一数int N;即可完成。如果要求同时要求输入一行n,第二行是再输入n个数,并且题目思路要用循环解决如果是输入一个数,后面再连续输入数,不同行依旧如此}即可!!帮助牛牛计算 1+(1+2)+(1+2+3)+...+(1+2+3+...+n)如图中程序所示,如果sum2在最前面赋初值,那么在第二个for循环中,sum2会一直累加前面累加过的值,若输入n=4;则结果变成了1+((1)+1+2)+(1+(1+2)+1+2+3)+(1+(1+2)+(1+2+3)+1+2+3+4)=35。
2023-04-11 22:51:01
100
2
原创 作为菜鸡在近期c语言学习中一些 忘记的语法 和 以前不知道的语法
printf("不大于它的最大整数为: %d\n", floor_num);printf("不小于它的最小整数为: %d\n", ceil_num);floor是地板的意思,所以floor函数是取比小数小的最接近这个小数的整数,如。%8d是要输出的整数占用8个字符,如果输出123,则会在123前面增加5个空格。ceil是天花板的意思,所以ceil函数是取比小数大的最接近这个小数的整数,如。如果输出的整数占用8个字符以上,则%8d的限制不起作用,会原样输出这个数。例如,要输出'4 % 2 = 0',则。
2023-04-01 21:11:51
246
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅