笔记
Demoo.
来记录不会的题啦
展开
-
MEX函数
我们令id从i下标开始,令j=0,当j!=op的话我们就mp[a[++id]]++;然后如果我们想算一个数组,从a[i]开始到哪个下标他的mex是op的话。mex(l,r)指的是从l~r这一段里的数中没有出现过的最小非负整数。最后算出来的id就是从下标为i开始长度最短的mex值是op的区间。当j被标记过的时候j++,否则j就是最小mex值。那我们要算的话用一个map来标记他在不在数组里。从l到r,mp【i】++,标记一下。...原创 2022-08-17 22:29:52 · 1218 阅读 · 3 评论 -
位运算(lowbit)
1.找到一个数x的2进制表示的第k位是几,最低位为第0位右移运算符:>>,将x的二进制表示数右移,>>k就是右移了k位那么求一个数的2进制表示的第k位是几就先将他右移k位再&1x>>k&12.lowbit运算作用:返回从左往右数最后一位1,(最右边一位)如10100,变为100,1010110变为10(返回的是十进制数)可以用来计算一个数x中1的个数,先con=0;然后当x不为0时循环,x=x-lowbit(x),意思是x减去了他原创 2022-05-27 10:35:25 · 294 阅读 · 1 评论 -
关于字符串函数
前置条件:#include<string>string q=s.substr(k);把从s的下标为k的字符开始一直到结尾string sub2 = s.substr(i, k);从下标为i开始截取k位假设:string s = “0123456789”;string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = “56789”string sub2 = s.substr(5, 3); //从下标为5开始截取长度原创 2022-03-27 16:48:25 · 540 阅读 · 2 评论 -
2779: 小A与泉水
题目描述小A遇到了一座神奇的泉水,在泉水中洗涤会大幅增加他的精力。在一次洗涤中,泉水增加力量的数值为当前力量二进制表示中的最低位的1对应的值。例如:如果当前力量为9(1001 最低位1对应的值为1),增加的力量为1;如果当前力量为12(1100 最低位1对应的值为100),增加的力量为4。小A想要将他的力量变为2的幂次数,他需要在泉水中洗涤多少次呢?输入多样例测试第一行输入T(T<=100,000),代表样例数;剩余T行,每行输入一个数n(n<1,000,000,原创 2022-03-31 11:17:41 · 191 阅读 · 0 评论 -
7-8 单词倒置
小明终于等来了好朋友的来信,但打开来信就傻眼了,居然看不懂,原来好朋友把信中的每个单词都翻转了顺序,例如“Happy”在朋友的信里变成了“yppaH”。请你编写程序帮助小明还原来信内容吧。输入格式:输入一个字符串,以回车结束。该字符串长度不超过100,包含多个单词,单词之间有一个或多个空格。输出格式:输出一行,即单词翻转后的字符串,注意每对单词之间的空格数量保持不变。输入样例:yppaH wen raey输出样例:在这里给出相应的输出。例如:Happy ne原创 2022-03-16 22:59:45 · 245 阅读 · 0 评论