ACM-ICPC-小知识
wind_bow
.。
展开
-
template class T 什么意思
不多说,直接上代码#include<bits/stdc++.h>using namespace std;template < class T >//template < typename T >T mmm( T a, T b ){return a < b ? b : a;}//在这就相当于一种类型int main(){int x=...转载 2018-07-24 20:26:17 · 10563 阅读 · 0 评论 -
组合数学 错排问题【装错信封问题】【递归】
n个人,每个人都有一件礼物想送给他人,他们决定把礼物混在一起,然后每个人随机拿走一件,问恰好有m个人拿到的礼物恰好是自己的概率是多少? 输出结果保留8位小数,为了保证精度,我们用字符串作为返回类型。 输入:n,m (0<n<100, 0<=m<=n) 例如: n = 2,m = 1,输出:0.00000000; n = 99,m = 0,输出:0.36787944 .......转载 2018-12-24 10:52:01 · 7459 阅读 · 0 评论 -
STL之nth_element()(取容器中的第n大值) 线性求第K大
nth_element()函数 线性求第K大 头文件:#include<algorithm>作用:nth_element作用为求第n大的元素,并把它放在第n位置上,下标是从0開始计数的,也就是说求第0小的元素就是最小的数。 如:a[start,end]元素区间。排序后a[n]就是数列中第n+1大的数(下标从0開始计数)。要注意的是a[start,n),...原创 2019-01-25 12:54:50 · 298 阅读 · 0 评论 -
高精度板子 Orz
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int INF=0x3f3f3f3f;const ll LLINF=0x3f3f3f3f3f3f3f3f;const double PI=acos(-1.0);const double eps=1e-6;const int MAX=...原创 2019-01-25 13:06:36 · 332 阅读 · 0 评论 -
万能头文件里面的一些不为人知的函数
虽然gcd好写 但是万能头文件里面居然有 不用写#include<bits/stdc++.h>using namespace std;int main(){ long long a=1000,b=24; cout<<__gcd(a,b);}原创 2019-01-21 21:12:07 · 1258 阅读 · 0 评论 -
two pointers
two pointers是算法编程中一种非常重要的思想,但是很少会有教材单独拿出来将,其中一个原因是它更倾向于是一种编程技巧,而长得不太像是一个是“算法”的模样。two pointers的思想十分简介,但却提供了非常高的算法效率。 以一个例子引入:给定一个递增的正整数序列和一个正整数M,求序列中的连个个不同位置的数a和b,使得它们的和恰好为M,输出所有满足条件的方案。例如给定序列{1,2,3...转载 2019-03-08 16:18:39 · 117 阅读 · 0 评论 -
The second part of the STL
string priority_queue pair set map 简单介绍原创 2019-03-15 17:45:35 · 466 阅读 · 0 评论 -
震惊!Vector两行代码求逆序对,六行代码过普通平衡树!
转自 https://www.cnblogs.com/zwfymqz/p/7788554.html#_label1Vector两行代码求逆序对首先我们想一下冒泡排序的过程,我们不难发现,对于每一个元素,我们实际上是让他不停的和前面的元素比较,交换。也正是因为这个过程决定了在冒泡排序的过程中:一个位置的数的前面的数一定是递增的(从小到大排的话)那么我们在交换的时候,直接二分找到一个...转载 2019-03-21 14:17:05 · 743 阅读 · 1 评论 -
The first part of the STL
目录queuequeue简单介绍queue举例stackstack用法示例vector函数介绍用法示例dequequeuequeue简单介绍queue举例#include<bits/stdc++.h>//#include<queue>using namespace std;queue<in...原创 2019-03-18 19:38:55 · 371 阅读 · 0 评论 -
(小规模)b牌棋盘完美覆盖数
(小规模)b牌棋盘完美覆盖数 考虑一个普通的国际象棋棋盘,它被分成8*8(8行8列)的64个正方形。设有形状一样的多米诺骨牌,每张牌恰好覆盖棋盘上相邻的两个方格(即1*2的骨牌)。那么能否把32个这样的1*2骨牌放到棋盘上,使得任何两张牌均不重叠,每张多米诺骨牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为被多米诺骨牌的完美覆盖。这是一个简单的排列问题,人们能够很...转载 2019-01-08 15:43:35 · 828 阅读 · 0 评论 -
c语言的double类型printf %lf 显示0.00000问题
在编写c primer plus的课后程序题的时候遇到了问题:c语言的double类型printf %lf 显示0.00000。。于是在网上找到了答案。。转自:http://book.51cto.com/art/200901/106880.htm问:有人告诉我不能在printf中使用%lf。为什么printf()用%f...转载 2018-10-30 08:09:42 · 4098 阅读 · 0 评论 -
进制转化的函数
1,strtol() strtol() 函可将n进制数转换为10进制,用来将字符串转换为长整型数(long),其原型为:long int strtol (const char* str, char** endptr, int base); error存储第一个转换失败以及以后的的字符串;例如:把11221由二进制转换为十进制:num=strtol(s,&err...转载 2018-09-01 16:22:33 · 348 阅读 · 0 评论 -
输入输出外挂模板
其实当做一些题的时候 遇到一些输入很多数据的时候 可以考虑一下输入输出外挂,这个还是很实用的,有些题都可以用这个水过,哈哈^_^,注意的是 这些都是整数….不过,我还是没有成功水过...#include <iostream>#include <cstdio>#include <cstring>using namespace std;const ...转载 2018-07-25 20:49:33 · 295 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str...转载 2018-07-30 09:46:23 · 144 阅读 · 0 评论 -
C++中set map的用法
set的基本操作函数:1. begin()--返回指向第一个元素的迭代器2. clear()--清除所有元素3. count()--返回某个值元素的个数4. empty()--如果集合为空,返回true5. end()--返回指向最后一个元素的迭代器6. equal_range()--返回集合中与给定值相等的上下限的两个迭代器7. erase()--删除集合中的元素...转载 2018-07-30 09:50:44 · 447 阅读 · 0 评论 -
C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin2、cin.get()3、cin.getline()4、getline()5、gets()6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字...转载 2018-07-30 09:51:30 · 84 阅读 · 0 评论 -
C++ 里利用 std::ios::sync_with_stdio(false) 解决TLE问题
关于用C++里面的cin读取数据,我们都知道它的速度相对于C里面的scanf是比较慢的。。。首先,我随机生成了10000000个整数#include<stdio.h>#include<stdlib.h>int main(){ FILE *f=fopen("data.txt","w"); for (int i=0;i<10000000;i...转载 2018-08-04 08:42:42 · 354 阅读 · 0 评论 -
C++ bitset——高端压位卡常题必备STL
bitset存储二进制数位。bitset就像一个bool类型的数组一样,但是有空间优化——bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。bitset中的每个元素都能单独被访问,例如对于一个叫做foo的bitset,表达式foo[3]访问了它的第4个元素,就像数组一样。bitset有一个特性:整数类型和布尔数组都能转化成bitset。bi...转载 2018-08-04 15:46:14 · 277 阅读 · 0 评论 -
离散化的思想和它的两种代码与区别
离散化是什么:一些数字,他们的范围很大(0-1e9),但是个数不算多(1-1e5),并且这些数本身的数字大小不重要,重要的是这些数字之间的相对大小(比如说某个数字是这些数字中的第几小,而与这个数字本身大小没有关系,要的是相对大小)(6 8 9 4 离散化后即为 2 3 4 1)(要理解相对大小的意思)(6在这4个数字中排第二小,那么就把6离散化成2,与数字6本身没有关系, 8,9,4亦是如此)(2...转载 2018-08-01 20:39:51 · 228 阅读 · 0 评论 -
C++ STL lower_bound & upper_bound
background首先,lower_bound和upper_bound是C++ STL中提供的非常实用的函数。其操作对象可以是vector、set以及map。lower_bound返回值一般是>= 给定val的最小指针(iterator)。upper_bound返回值则是 > 给定val的最小指针(iterator)。vector中的lower_bound & upp...转载 2018-08-07 10:14:11 · 162 阅读 · 0 评论 -
前缀和交换操作
基于蓝桥杯J题 灵能传输a[i-1]+=a[i]a[i+1]+=a[i]a[i]-=2*a[i]/////////////////////sum[i]表示前i项和(前缀和)执行完操作后因为 a[i-1]+=a[i]所以sum[i-1]=sum[i]因为a[i]-=2*a[i]所以sum[i]=sum[i-1]a[i+1]+=a[i]sum[i+1]不变实质:s...原创 2019-03-24 17:28:57 · 524 阅读 · 0 评论