学习笔记
RIPwangh
山东理工大学本科学生
展开
-
poj-3041-Asteroids -二分图的最大匹配
Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conveniently locate原创 2015-08-07 09:18:04 · 559 阅读 · 0 评论 -
STL-set-用法
set的各成员函数列表如下:c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器c++ stl容器set成员函数:clear()--清除所有元素c++ stl容器set成员函数:count()--返回某个值元素的个数c++ stl容器set成员函数:empty()--如果集合为空,返回truec++ stl容器set成员函数:end()--返回指向最后原创 2015-10-05 20:35:01 · 622 阅读 · 0 评论 -
快次幂
#include #include#includeusing namespace std;const int MOD=1e9+7;void solve(int n){ long long ans=1; long long a=2; while(n) { if(n&1) { ans=(ans%MOD*原创 2015-10-07 10:46:07 · 552 阅读 · 0 评论 -
随机数
#include #include #include using namespace std;int main(){ double random(double,double); srand(unsigned(time(0))); cout << int(random(0,50))<< endl; return 0;}double rando原创 2015-10-06 16:09:42 · 357 阅读 · 0 评论 -
UVALive 7004-10.1训练赛
题意: 就是给你一个点p,再给你几个多边形的顶点,让你去判断在多边形的边上,还是内部,还是外边模板题CODE#include #include#include#include#include using namespace std;const double eps = 1e-8;const double PI = acos(-1.0);int sgn(d原创 2015-10-07 21:24:43 · 381 阅读 · 0 评论 -
CodeBlocks中程序的多文件组织
一个程序只有一个main函数的时候过去了,我们有了自定义函数。 一个程序只用一个文件的时候也要过去了。当一个程序中的函数多起来时(main函数只能有一个,自然是具有一定规模的项目中要有不少自定义函数),需要将这些函数分门别类地存储到不同的文件中去。 这样组织的程序是易于管理和维护的。 本文讲在CodeBlocks中如何进行程序的多文件组织。 文后有本文示例的代码。从资源中下转载 2015-09-21 22:30:31 · 657 阅读 · 0 评论 -
二分————
int mid; int x = 0, y = n-1; bool flag = 0; while(x { mid = x+(y-x)/2; if(ls[mid] == key) {原创 2015-09-22 19:44:02 · 437 阅读 · 0 评论 -
二叉树的遍历--递归和非递归
PS:数据结构老师让写下二叉树的后序遍历的非递归算法,结果把所有的都写了一下CODE#include#include#include#include#include#includeusing namespace std;typedef struct Binode{ char data; struct Binode *l, *r;};typedef st原创 2015-10-29 20:06:28 · 457 阅读 · 0 评论 -
C++文件的操作
#include#include#include#include#include#includeusing namespace std;int main()///对ASCLL文件的操作{ int a[10]; ofstream outfile("f1.dat",ios::out); if(!outfile) {原创 2015-12-03 16:40:48 · 638 阅读 · 0 评论 -
矩阵快速幂---递推题的快速计算
昨天晚上矩阵小王子给我们讲了一下矩阵快速幂,学习了一下,写了一个模板。PS:原创链接1:思想矩阵快速幂的思想就是跟数的快速幂一样,假如我们要求2^11,次方,我们可以把 11 写成 1+2+8 ,也就是2^0 + 2^1 + 2^3 。那么把一个O(n)的时间复杂度降到了log(n)矩阵快速幂的思想和数的快速幂是一模一样的,就是要自己实现矩阵的乘法,然后可以套数的快速幂的模转载 2015-10-07 10:53:21 · 517 阅读 · 0 评论 -
背包之01背包、完全背包、多重背包详解
首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟下,再大一些就不可能了,所以,诸如递归,动态规划之类的,不能细想,只能找局部关系。 1.汉诺塔图片(引至转载 2015-08-21 16:24:03 · 698 阅读 · 0 评论 -
二分图--最大匹配
二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。二分图的最大匹配:匈牙利算法 完美匹配: 如果所有点都在匹配边上,称这个最大匹配是完美匹配。 最小覆盖: 最小覆盖要求用最少转载 2015-08-07 10:29:13 · 547 阅读 · 0 评论 -
为什么计算机采用二进制而不是八进制或者十六进制
电子计算机能以极高速度进行信息处理和加工,包括数据处理和加工,而且有极大的信息存储能力。数据在计算机中以器件的物理状态表示,采用二进制数字系统,计算机处理所有的字符或符号也要用二进制编码来表示。用二进制的优点是容易表示,运算规则简单,节省设备。人们知道,具有两种稳定状态的元件(如晶体管的导通和截止,继电器的接通和断开,电脉冲电平的高低等)容易找到,而要找到具有10种稳定状态的元件来对应十进制的转载 2015-08-21 13:59:43 · 8915 阅读 · 0 评论 -
HDU 3729-I'm Telling the Truth-周赛4补题-二分图最大匹配-邻接表
题意: 新学期开学,老师想知道各个同学的分数,同学们不想把自己的真实分数告诉老师,只和老师说自己的排名在哪个范围内,有些同学和老师说的数据是不真实的,现在让你找到说的信息是真的同学的数目和序号,有多种情况要选择序号字典序大那种,注意,每个排名只有一个同学思路: 二分图的最大匹配; 要注意是要字典序大的,所以要反着搜CODE#include#include原创 2015-08-24 10:12:56 · 552 阅读 · 0 评论 -
KMP
#include #include char s[1000050],t[1000050];int next[1000050];void getnext(){ int i=0,j=-1; next[0]=-1; while(t[i]!='\0') { if(j==-1||t[i]==t[j]) {原创 2015-08-11 11:17:38 · 355 阅读 · 0 评论 -
处理阶乘问题
处理阶乘有三种办法:(1) 传统意义上的直接递归,n的规模最多到20+,太小了,在本题不适用,而且非常慢(2) 稍快一点的算法,就是利用log()化乘为加,n的规模虽然扩展到1000+,但是由于要用三重循环,一旦n规模变得更大,耗时就会非常之严重,时间复杂度达到O(n*m*(n-m)),本题规定了n,m用unsigned int32类型,就是说n,m的规模达到了21原创 2015-08-26 10:01:30 · 1419 阅读 · 0 评论 -
优先队列的结构体排序-重载运算
#include#include#include#include#include#include#include#define mod 100100using namespace std;struct node{ int x, y; bool operator { return x>a.x;//最小值优先原创 2015-08-27 19:29:12 · 1636 阅读 · 0 评论 -
SDUT-3302-效率至上-RMQ||线段树
RMQ:可以去寻找一个区域中的最小的值那样也可以去寻找最大的值啊RMQ #include#include#include#include#includeusing namespace std;int mn[51000][50];int mx[51000][50];int ls[51000];int n, m;void RMQ_min()///小的{原创 2015-08-29 11:16:23 · 1002 阅读 · 0 评论 -
最小生成数
给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1) 克鲁斯卡尔算法图的存贮结构采用边集数组,且权值相等的边在数组中排列次序可以是任意的.该方法对于边相对比较多的不是很实用,浪费时间.(2) 普里姆算法图的存贮结构采用邻接矩阵.此方法是按各个顶点连通的步骤进行,需要用一个顶点集合,开始为空集,以后将以连通的顶点陆续转载 2015-07-27 11:16:16 · 670 阅读 · 0 评论 -
字符串哈希函数
基本概念所谓完美哈希函数,就是指没有冲突的哈希函数,即对任意的 key1 != key2 有h(key1) != h(key2)。设定义域为X,值域为Y, n=|X|,m=|Y|,那么肯定有m>=n,如果对于不同的key1,key2属于X,有h(key1)!=h(key2),那么称h为完美哈希函数,当m=n时,h称为最小完美哈希函数(这个时候就是一一映射了)。在处理大规模字符串数据时,转载 2015-08-12 11:25:17 · 481 阅读 · 0 评论 -
java 的知识点
1. 多组输入 Scanner reader = new Scanner(System.in); while( reader.hasNext()) // 相当于 scanf("~scanf()");原创 2016-03-11 09:14:43 · 462 阅读 · 0 评论