自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 UVA 11624 Fire(多源bfs)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-16 16:34:20 346

原创 POJ 2386(dfs+染色)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-15 16:40:11 585

原创 POJ 最近公共祖先(裸LCA)

数据量不大直接走暴力比较简单#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include&l

2022-03-13 17:39:11 109

原创 POJ 3368 最频繁值 (裸ST)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-13 16:41:09 152

原创 POJ 3264 区间最差值(裸ST)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-13 16:38:43 75

原创 POJ 2431 丛林探险(优先队列)

额,错误代码WA得莫名其妙#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<c

2022-03-13 16:37:07 113

原创 POJ 2019二维区间最差值(ST)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-13 16:33:35 132

原创 ST 算法

ST算法采用的是倍增的思想,先用O(nlogn)的时间构造一个二维表之后,可以在O(1)的时间查询[l,r]区间的最值1.ST创建若F[i,j]表示[i,i+2^j-1]区间的最值,区间长度为2^j,则i和j的取值范围是多少呢?若数组的长度为n,最大区间长度2^(k)<=n<2^(k+1),则k=[log2(n)],比如n=8时k=3.在程序中,k=log2(n),也可用通用表达方式k=log(n)/log(2),log()表示以e为底的自然对数算法代码:void S...

2022-03-08 22:03:24 8645

原创 POJ 3253(优先队列)

这道题的思路有点怪 哈夫曼树的思路先取两个最小的,再把这两个的和加入队列,把这两个小的数弹出队列#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>

2022-03-08 09:19:38 126

原创 POJ 2833(优先队列)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-08 09:13:55 150

原创 POJ 1182食物链(带权并查集)

//首先重新定义题目中的关系,A与B的关系是0代表A与B同类。1代表A吃B,2代表B吃A//也就是题目中的d-1//利用传递性,A与B的关系和B与C的关系推出A与C的关系// A与B B与C A与C// 0 0 0// 0 1 1// 0 2 2// 1 0 1// 1 1 2// 1 2 0// 2 0 2// 2 1 0// 2 2 1 //立即推得A与C的关系=(A与B的关系+B与C的关系)%3//接着..

2022-03-06 17:46:24 53

原创 POJ 1988(简单并查集)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-05 19:55:14 138

原创 HDU 1232(简单并查集)

#include<iostream>#include<cstdlib>#include<sstream>#include<cstdio>#include<stack>#include<cstdio>#include<map>#include<set>#include<queue>#include<cstring>#include<cmath>#inclu.

2022-03-05 12:33:49 52

原创 离散概率初步

1.如果样本空间由有限个等概率的简单事件组成,事件E的概率可以用组合计数的方法得到:P(E)=|E|/|S|。2.可以从相反的方向考虑。比如:要计算“23个人中至少有两个人生日相同”的情况有多少种。这个数目不太好直接统计,所以统计“任何两个人的生日都不相同”的数目,然后用总数减去它即可。公式不难得到:P(E)=|E|/|S|=(|S|-|E|')/|S|。3.在概率计算中要注意double溢出。(解决方案可以是边乘边除,而不是先乘再除)。4.条件概率: P(A|B)=P(AB)/P(B) ..

2022-02-10 10:50:08 782

原创 欧拉phi函数

1.小于n且与n互素的整数个数。给出正整数n的唯一分解式n=p1^a1*p2^a2*p3^a3...pk^ak,求1,2,3...n中与n互素的数的个数。#include<bits/stdc++.h>using namespace std;typedef long long ll;int euler_phi(int n){ int m=(int)sqrt(n+0.5); int ans=n; for(int i=2;i<=m;i++) .

2022-02-08 17:11:46 803

原创 唯一分解定理

任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1^a1*P2^a2*P3^a3......Pn^an,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。C++代码实现:#include<bits/stdc++.h>using namespace std;typedef long long ll;#define maxn 10000001bool number[maxn+5];ll prime[m..

2022-02-06 23:41:36 711

原创 C++ STL map和multimap最全入门

map和multimap提供了操作<键,值>对的方法,存储一对对象,即键对象和值对象,键对象是用于查找过程中的键,值是与键对应的附加数据。例如,若键是单词,对应的值是表示单词在文档中出现次数的数字,这样的map就成了统计单词在文本中出现次数的频数表;map中的元素不允许重复,而multimap中的元素允许重复。虽然set/multiset集合中的元素只包括键,而map映射中的元素则由<键,值>对构成,但map/multimap提供的操作也是针对各元素中的键进行的,其操作方法与

2022-01-28 21:30:16 805

原创 C++ STL set和multiset

在set关联式容器中,元素是按关键字有序存储的,容器遍历就以此顺序进行。因此,关联式容器不支持push_front和push_back之类的操作,这些操作与它的排序规则相冲突,它不会按这样的方式存取数据,没有支持这些操作的必要。集合类multiset和set提供了数字(包括字符及串)集合的操作,集合中的数字称为关键字,不需要有另一个值与关键字相关联。set和multiset会根据特定的排序准则,自动将元素排序,亮着提供的操作方法基本相同,只是multiset允许元素重复而set不允许重复。如果向set集

2022-01-27 20:32:14 963

原创 pair容器

pair也是一种顺序容器,pair由<键,值>构成的值对数据类型。pair值对pair是在头文件utility中定义一个值对模板类型,主要用来把两个有关联的数据组合成一个数据结构,两个数据可以是同一类型或者不同类型。例如,pair<int,float>把一个int和一个float组合成一种数据结构。(1)pair对象构造,模板参数中的T1,T2可以是任意数据类型pair<T1,T2> p1;pair<T1,T2> p2(v1,v2); .

2022-01-26 22:13:31 2025

原创 C++ string最全入门

STL中的string是一种特殊类型的容器,除了可以作为字符类型的容器外,更多的是作为一种数据类型----字符串,可以像int,double之类的基本数据类型那样定义string类型的数据,并进行各种运算。此外,string具有字符串的查找,替换,取子串,插入子串等处理能力。1.string对象的定义和初始化string c; //定义字符串c,不含任何字符。string c1("this is a string"); //定义字符串c1,并用指定字符串初始化其内容string c2=c1;

2022-01-26 13:47:09 551

原创 C++ STL stack最全入门

堆栈(stack)是一种较简单的常用容器,是一种受限制的向量,只允许在向量的一端存取yua取元素,后进栈的元素先出栈,即LIFO(last in first out)。STL中的堆栈提供的主要操作如下:push() //将一个元素加入栈中,加入的元素放在栈顶top() //返回栈顶元素pop() //删除栈顶元素简例:#include<bits/stdc++.h>using namespace std;int main(){ stack<int.

2022-01-24 16:40:38 363

原创 C++ STL List最全入门

2.listSTL中的list是一个双向链表,可以从头到尾或从尾到头访问链表中的结点,结点可以是任意数据类型。链表中节点的访问尝尝通过迭代器进行。可用front成员函数找到list的第一个元素,用back找到list的最后一个元素。迭代器iterator用于指向链表的节点,通过它可以遍历整个链表。(1)链表的构造(模板参数T时链表的数据类型)list<T> c //建立一个空链表clist<T> c1(c2) //建立与c2同型的链表c1(c2的每个元素都被复制)

2022-01-23 21:04:58 469

原创 C++ STL vector 最全入门

shusort (a,a+8,great<int>),sort (a,a+8,less<int>) <>中的数组类型可以变动由第1,2个参数指定的数组区间,采用第3个参数指定的比较方式进行排序。 如果没有指定第3个参数时,默认采用less方式排序。下面介绍容器(container)STL的容器包括顺序容器,关联容器,容器适配器。顺序容器:向量(vector),链表(list) 和双端队列(deque)关联容器: 集合(set),多重集合(multi

2022-01-23 10:55:03 342

原创 快速幂算法初步入门

快速幂算法初步入门 快速幂算法能够帮我们算出质数非常大的幂,快速幂算法的核心思想就是每一步都把指数分成两半,而 相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后 表示的结果却一直不会变。3^10=3*3*3*3*3*3*3*3*3*3//尽量想办法把指数变小来,这里的指数为103^10=(3*3)*(3*3)*(3*3)*(3*3)*(3*3)3^10=(3*3)^53^10=9^5//此时指数由10缩减一半变成了5,而底数变成了...

2022-01-17 09:41:12 116 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除