![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小知识点
文章平均质量分 73
九羽-
日有所进,月有所变,终有所成。
展开
-
做过最有意思的交互题
做过最有意思的交互题一栋楼,楼外有n盏灯,楼内有n个开关,灯和开关一 一对应,但是开始并不知道哪个开关对应那盏灯。现在你有一种操作是:打开若干开关,然后去楼外面看看哪些灯亮了。问如何在30次操作之内,得到所有200000盏灯和开关的对应关系。思路:考虑按照二进制位来开灯,第一次操作把编号二进制第1位为1的灯打开,第二次操作把编号二进制第2位为1的灯打开. 这样记录某盏灯分别在第几次亮了就能得到他对应的编号了。 比如第一盏灯在第1,2,5次亮了, 那么它对应的开关编号是10011,就是19.原创 2020-09-09 21:00:16 · 261 阅读 · 0 评论 -
random_shuffle() 随机化函数
random_shuffle() 随机化函数STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的)srand(time(0)); 这个是设置时间种子,加了这句才能保证每次都是随机的,不然就不太随机。#include<bits/stdc++.h>using namespace std;int main(){ srand(time(0)); int a[5] = {5,2,2,4,1}; random_shuffle.原创 2020-08-02 13:15:06 · 3745 阅读 · 0 评论 -
待补知识点( 2020-06-25 )
待补知识点( 2020-06-25 )算法竞赛专题解析(4):杜教筛--以及积性函数的前世今生https://blog.csdn.net/weixin_43914593/article/details/104229700Berlekamp-Massey算法https://blog.csdn.net/qq_39972971/article/details/80725873...原创 2020-06-25 21:13:28 · 128 阅读 · 0 评论 -
如何使用Chrome截图整个网页
如何使用Chrome截图整个网页1、按键盘快捷键F12,打开开发人员工具功能。2、在开发工具页面同时按下Ctrl + Shift + P,出现输入指令的工具栏3、在工具栏输入Capture full size screenshot4、点击键盘回车键,会自动下载网页截图。...原创 2020-05-28 10:19:08 · 945 阅读 · 0 评论 -
闰年判断
闰年判断int isyear(int y) {//判断平年闰年 if ( y%400==0 || ( y%4==0 && y%100!=0 ) ) return 1; return 0;}原创 2020-03-20 21:07:33 · 170 阅读 · 0 评论 -
【 c++ STL 】结构体如何用multiset
结构体如何用multiset c++语言中,multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。自定义类型的数据呢?不只是int类型,multiset还可以存储其他的类型诸如 string类型,结构(struct或class...翻译 2020-03-15 14:19:52 · 963 阅读 · 0 评论 -
Codeforces - 1315D( multiset )
Codeforces - 1315D( multiset )题目链接:https://codeforces.com/contest/1315/problem/D前置知识:迭代器分为正的和反的两种,s.begin() = s.rend() , s.end() = s.rbegin() ///位置大约是这样,但指针的位置好像有偏差,具体的自己本地出一个数组用multiset跑一下就好了。...原创 2020-03-06 20:43:24 · 314 阅读 · 0 评论 -
关于 floor 函数的返回值
关于 floor 函数的返回值一直以为floor函数的返回值是int,直到今天做题wa了。有这么一道简单的题,计算面积,输出答案四舍五入为整数。WA3代码 ↓printf("%d\n",floor(0.5*ans));AC代码 ↓printf("%d\n", (int)floor(0.5*ans));printf("%.0f\n", floor(0.5*ans)...原创 2020-02-18 21:22:22 · 2157 阅读 · 1 评论 -
DFS - spfa 判负环 ( L - The Shortest Path )
L - The Shortest Path ( DFS - spfa 判负环 )题目链接:http://codeforces.com/gym/101498/problem/LInput33 31 2 -12 3 -33 1 -54 51 3 01 2 -22 3 33 4 14 1 -14 41 2 52 3 -33 4 -31 4 2Outp...原创 2020-02-05 20:30:01 · 425 阅读 · 0 评论 -
全排列 next_permutation() 函数的用法
全排列 next_permutation() 函数的用法在头文件<algorithm>里。用处:可产生数列1~n的全排列。用之前先把全排列的数组按从小到大的顺序排列代码:#include <bits/stdc++.h>using namespace std;int main(){ int n; while(scanf("%...原创 2020-02-03 09:00:09 · 223 阅读 · 0 评论 -
I - Matrix God ( 矩阵乘法性质 )
I - Matrix God ( 矩阵乘法性质 )题意:给一个数n,和三个矩阵a,b,c 长宽都为n。判断矩阵a*矩阵b是否等于矩阵c。思路:由于矩阵乘法的复杂度为O(N^3);而部分验证又不能保证结果正确。我们巧妙地利用矩阵乘法的结合律:使其变为1*N和N*N的矩阵乘法,使复杂度降低为O(N^2); 即随机构造矩阵X(1*N),Y(N*1),那么问题成为验证X*A*B*Y==X*C*...翻译 2020-01-10 08:38:39 · 226 阅读 · 0 评论 -
关于malloc无法申请string类的问题
关于malloc无法申请string类的问题今天在写二叉排序树的时候,发现有个小问题总是Runtime Error,是关于结构体中string和mllloc相遇的问题。我在二叉树中存的数据是string类型的,但在申请内存是调用了malloc来申请内存,导致报错,换成new之后就解决问题了。typedef struct node { string date; int ...原创 2019-12-20 21:25:38 · 781 阅读 · 0 评论 -
Let's do these problems
HDU Search Resulthttp://acm.hdu.edu.cn/search.php?field=problem&key=2019%D6%D0%C9%BD%B4%F3%D1%A7%B3%CC%D0%F2%C9%E8%BC%C6%BE%BA%C8%FC%A3%A8%D6%D8...原创 2019-11-29 17:38:04 · 176 阅读 · 0 评论 -
犯过的低级错误
犯过的低级错误1. 变量重新改值后,又使用了未改值的值 例如: a[i].date = 0; yu -= a[i].date; 应改为 yu -= a[i].date; a[i].date = 0;2. 题目要求输出n个数,结果少输出了 cout << "Yes" << endl; ...原创 2019-11-15 15:55:42 · 93 阅读 · 0 评论 -
Memory Limit Exceeded为何困扰了我四个小时没找出错
啊啊啊啊啊啊啊啊啊啊啊啊啊啊快被自己蠢死了一道bfs的题,很简单,思路都出来了但写出代码来一直Memory Limit Exceeded当天晚上找来一个小时都没找出错来。十天过后的今天又是楞找楞半天没看出来,只好比这网上ac的代码一点一点查。但思路没问题啊咋就Memory Limit Exceeded啊啊啊啊啊好吧,思路真的没问题,错误是在一遍一遍提交错误中偶然发现的。而且不止一...原创 2019-03-23 21:08:55 · 16025 阅读 · 5 评论 -
常用技巧——离散化
常用技巧——离散化推荐阅读:https://www.cnblogs.com/sun-of-Ice/p/9419857.html代码:#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ int a[10]={1...原创 2019-06-19 21:01:26 · 264 阅读 · 0 评论 -
优先队列解决多次累加问题
优先队列解决累加问题**树-堆结构练习——合并果子之哈夫曼树Problem Description在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所...原创 2019-07-23 17:02:35 · 320 阅读 · 0 评论 -
c++ set
c++ set推荐阅读:https://blog.csdn.net/qq_38984851/article/details/81270436set的特点:1、set中的元素都是排好序的2、set集合中没有重复的元素例如: int a[10] = { 1,2,5,4,3,5,4,2,3,1} 在set中就是 1,2,3,4,51.头文件#include &l...转载 2019-07-28 20:40:45 · 953 阅读 · 0 评论 -
C++中unique函数(离散化会用到)
C++中unique函数(离散化会用到) 总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址,代码:#include <bits/stdc++.h>using namespace std;int main()...原创 2019-08-09 20:15:58 · 658 阅读 · 0 评论 -
Codeforces - 1133F1 (vector代替邻接表存图)
Codeforces - 1133F1 (vector代替邻接表存图)题目链接:http://codeforces.com/problemset/problem/1133/F1题意:n个点m条无向边,求一个最大度数尽可能大的生成树。n是2e5的思路 :选择度数最大的点,bfs跑一边把边输出就好了。注:因为n是2e5的,所以不能用二维数组存图,用邻接表存有不太会,这里学到了...原创 2019-08-16 14:50:09 · 184 阅读 · 0 评论 -
C - Big Number HDU - (大数取模string & %)
C - Big Number HDU - (大数取模string & %)题目链接:https://cn.vjudge.net/problem/HDU-1212代码:#include<bits/stdc++.h>using namespace std;const int maxn=32768;int a[maxn]= {0};int main(){...转载 2019-08-17 19:33:43 · 185 阅读 · 0 评论 -
求一个大数的所有因数( 复杂度O(sqrt(n)) )
求一个数的所有因数1.寻找配对,在平方根停下i遍历1-sqrt(n),若i为约数,则n / i也为约数。如果你观察一个数字的各个因数,你可以发现因数总是成对存在。换句话说,你可以通过一个数的两个特定的因数的乘积 得出这个数。如果你已经知道了一个因数,你可以用这个数/因数来得出它的另一个因数。再看图,一个数n有若干因数,那么一定是两个因数的乘积能够得到n。这里n = 80,那么求...原创 2019-08-27 08:52:22 · 3769 阅读 · 2 评论 -
字符串转整数,atoi函数
字符串转整数,atoi函数标准C库函数#include <stdlib.h>原型 : int atoi( const char *str );功能:将字符串str转换成一个整数并返回结果。参数str 以数字开头,当函数从str中读到非数字字符则结束转换并将结果返回。例如:int num = atoi(“1314.012”);int值为1314注意:使用该函数时要注意...转载 2019-06-09 19:41:56 · 451 阅读 · 0 评论 -
c++优先队列priority_queue
优先队列priority_queue..priority_queueq; 默认优先级从到大到小priority_queue<int,vector,greater > q; 优先级从小到大自定义的方式暂时不讲。..优先队列的操作向队列中加入一个元素 q.push(x);删除队首元素 q.pop();查询队首元素 x=q.top();判断队列是否为空 b=q.e...原创 2019-06-02 19:38:12 · 157 阅读 · 0 评论 -
浅谈枚举二进制数
问:现在有一个最多100位的整数,只由1和0组成,我们这么枚举所有的情况呢?答:暂不考虑越界,因为在具体题目中一般需要模一个数,但用long long肯定不行。第一个数是1 , 之后乘以10或乘以10+1. 见下面的二叉树 1 / \ 10...原创 2019-05-23 21:03:50 · 490 阅读 · 0 评论 -
(tolower/toupper)函数实现字母的大小写转换
#include <iostream>#include <string>#include <cctype>using namespace std;int main(){ string str= "THIS IS A STRING"; for (int i=0; i <str.size(); i++) // string类的长度...原创 2019-05-14 19:58:30 · 2333 阅读 · 1 评论 -
关于ACM校赛的注意事项
1.用scanf而不用cin的情况输入数据有多组(数据组数不超过 30),到 EOF 结束。对于每组数据:第一行输入两个以空格分隔的整数 n 和 mn (1 <= n <= 100000) 表示 486 要到达的目标时间点(起始目标点 0,hurt[0] = 0,每次前进一个时间点)接下来一行输入 n 个以空格分隔的整数,表示 hurt[i]。表示 486 在当前时间点会...原创 2019-05-19 19:53:48 · 637 阅读 · 0 评论 -
用scanf而不用cin的情况
scanf是格式化输入,printf是格式化输出。cin是输入流,cout是输出流。效率稍低,但书写简便。效率低的原因可以自行百度。数据量大的题目最好一开始就用scanf,printf写,不要等超时了再回来改。举例。从零开始的异世界生活Time Limit: 2000 ms Memory Limit: 65536 KiBProblem Description486 作为有史以来...原创 2019-05-19 19:42:18 · 988 阅读 · 0 评论 -
C++ lower_bound 与 upper_bound 函数
头文件: #include 二分查找的函数有 3 个: 参考:C++ lower_bound 和upper_boundlower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。upper_bound(起始地址,结束地址,要查找的数值) 返回的是数值 最后一个 出现的位置。binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在...原创 2019-05-13 21:10:16 · 337 阅读 · 0 评论 -
c++getline函数的使用
getline() // 接受一个字符串,可以接收空格并输出。有些题目需要读入一行的字符串,包括空格。但在c++中无法使用gets函数,所以需要使用getline函数 #include<iostream> #include<string> using namespace std; int main () { string str; ...原创 2019-05-13 20:21:29 · 5831 阅读 · 0 评论 -
关于最大值的设定0x3f3f3f3f
https://blog.csdn.net/jiange_zh/article/details/50198097转载 2019-02-19 15:51:28 · 692 阅读 · 0 评论 -
c++的队列实现
队列#include <iostream>#include <queue>using namespace std; // 这几个头文件必不可少int main(){ queue <int> q; // 使用前需定义一个queue变量,且定义时已经初始化 while(!q.empty()) q.pop(); // 重复使用时...转载 2019-02-18 21:26:15 · 104 阅读 · 0 评论 -
链表的排序
链表的排序用冒泡排序来做 for ( j=head-&amp;gt;next; j; j=j-&amp;gt;next ) { for ( k=j-&amp;gt;next; k; k=k-&amp;gt;next ) { if ( j-&amp;gt;date &amp;gt; k-&amp;gt;date ) {原创 2019-02-17 20:11:36 · 136 阅读 · 0 评论 -
三元运算符?:
1在C里面只有一个三元运算符,型如a>b ?a:b 里面有两个符号,先是问号,再一个冒号,意思是,先判断a>b,如果为真(值为1),则反回a,如果为假(值为0),既a<b,反回b.1...原创 2019-02-16 14:57:00 · 134 阅读 · 0 评论 -
关于两个double类型数的大小判断
大于小于是可以像整数那样直接判断的,但是不可以判断两个double是相等的。因为double类型的表示往往是不精确的(近似表示). 有精度范围的那种. 如果是运算结果,即使都是0.0,也不保证相等!一般用一个容差e(很小的值)那么a和b相等就可以表示为if ( fabs(a-b) < e )return true;...原创 2019-02-16 14:53:08 · 8981 阅读 · 0 评论 -
C++自带string类的常用方法
#include<iostream>#include<string>using namespace std;int main(){ string str1 = "hello"; string* str2 = new string("hello"); string str3 = "world"; //获取字符串长度 int ...转载 2019-05-14 20:00:53 · 181 阅读 · 0 评论 -
C++map函数的用法
https://blog.csdn.net/sevenjoin/article/details/81943864转载 2019-05-14 20:35:25 · 56025 阅读 · 2 评论 -
C++迭代器的使用和操作总结
https://www.cnblogs.com/maluning/p/8570717.html转载 2019-05-14 20:42:27 · 171 阅读 · 0 评论 -
CodeBlocks常用操作快捷键
CodeBlocks常用操作快捷键编辑部分:Ctrl + A:全选Ctrl + C:复制Ctrl + X: 剪切Ctrl + V:粘贴Ctrl + Z:撤销Ctrl + S:保存Ctrl + Y / Ctrl + Shift + Z:重做Ctrl+Shift+C:注释掉当前行或选中块Ctrl+Shift+X:解除注释Tab:缩进当前行或选中块Shift+Tab:减少缩进按...转载 2019-05-30 19:49:27 · 209 阅读 · 0 评论 -
ACM输入输出超级外挂
虽然还不懂,这东西干啥用怎么用,但我知道先马住就对了。https://blog.csdn.net/weixin_39453270/article/details/82221615https://blog.csdn.net/qq_36368339/article/details/75810215https://blog.csdn.net/qq_28954601/article/details/...翻译 2019-05-18 19:41:44 · 453 阅读 · 0 评论