- 博客(60)
- 资源 (28)
- 收藏
- 关注
原创 差分约束——HDOJ 1529
HDOJ 1529 Cashier Employment断断续续做了3天才弄明白,真是一道经典题/*HDOJ 1529 Cashier Employments[i]保存从24时刻开始到i时刻的雇佣人数t[i]保存i时刻能够上班的人数r[i]保存i时刻至少需要的人数只要开始工作就要连续工作8小时,有下面的约束条件0 <= s[i]-s[i-1] <= t[i]s[i]-s[
2012-02-29 23:33:01 853
原创 差分约束——HDOJ 1384
HDOJ 1384 Intervals/*HDOJ 1384输入n个区间和n个数字c区间[a,b]间至少有c个数字s[i]表示从0到i之间共有多少个整数 约束条件s[b]-s[a] >= c0 <= s[i+1]-s[i] <= 1要求同时满足这些区间要求的最少的元素个数求下界,用最长路*/#include #include using namespace std;
2012-02-28 22:22:34 1025
原创 优先队列优化Dijkstra算法
//邻接表+优先队列+Dijkstra模版#include #include using namespace std;#define MAXN 101#define INF 999999class Graph; //有向图class Vnode; //头结点class Arcnode //表结点{ friend class Graph; friend class
2012-02-28 15:10:45 4571 5
原创 差分约束——HDOJ 3592
HDOJ 3592 World Exhibition/*HDOJ 3592典型的差分约束问题x <= a-b <= ya-b >= xb-a <= -x全部转化为<=的形式,求上界,最短路*/#include #include #include using namespace std;#define INF 1000009#define MAXN 1005st
2012-02-27 23:11:46 1002
原创 SPFA——HDOJ 1534/3440
HDOJ 1534 Schedule Problem这里不再写分析,题目分析看这里HDOJ 1534分析#include #include #include #include using namespace std;#define MAXN 1010#define INF 1000000001struct edge{ int to; int weight;};v
2012-02-27 00:38:23 927
原创 最短路径——SPFA算法
关于SPFA(Shortest Path Faster Algorithm)算法,网上的实现与叙述已经有很多,所以在这里也不多说,在NOCOW上面有详细述说。这个算法是对Bellman_Ford算法的一个队列优化,减少冗余计算。在计算带有负值边的图的最短路问题时是非常好的选择,当然在差分约束系统问题中也是首选。这个算法的一个特点是,每个顶点可以进队不仅一次,在图中存在负权回路的时候,在
2012-02-26 14:55:38 3361
原创 差分约束——HDOJ 1534
HDOJ 1534 Schedule Problem/*HDOJ 1534 差分约束系统,建图还是那么弱,刚接触了一道题目而已看来还需要多多训练才行。先更具题目的给出的地中情况:FAS, SAF, FAF, SASS:start A:after F: finishFAS x, y 表示x finish after y start设star
2012-02-25 23:22:37 1169
转载 获取系统时间方法
下面是我自己写的一个,和下面的第一种是一样的,剩下的先收藏,可能以后有用#include #include using namespace std;int main(){ time_t _gettime; //time_t 是 long类型 struct tm *timeifo; //tm结构体的内容看下面注释 time(&_gettime); //以秒为最小单位获
2012-02-25 10:38:41 1449
原创 差分约束——HDOJ 3440
HDOJ 3440 House Man/*HDOJ 3440 house man差分约束系统类型的题目,难点在建图把每个房子作为一个顶点,然后按照高度排序每两个顶点之间有两条边,但是两楼间的距离又是处于1到D之间的,所以就规定低的指向高的为D建图按照 下标小->下标大 权值为D由于 大-小>=1 所以 反过来 小-大下表小 权值-1*/#include #include
2012-02-25 01:09:44 1062
原创 最短路径——Bellman_Ford算法
Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。该算法由美国数学家理查德•贝尔曼(Richard Bellman, 动态规划的提出者)和小莱斯特•福特(Lester Ford)发明。Bel
2012-02-22 21:39:56 2336
原创 MST——HDOJ 1102/1875
HDOJ 1102 Constructing Roads/*HDOJ 1102MST基本应用*/#include using namespace std;#define INF 2000int graph[103][103];int lowcast[103];int find[103];int N,sum;void Prim(int v){ int i,j,
2012-02-21 22:14:04 875
原创 MST——HDOJ 1233/1863/1879
HDOJ 1233 还是畅通工程/*HDOJ 1233 还是畅通工程简单的MST就行了*/#include using namespace std;#define INF 99999999int graph[103][103];int sum,N;void Prim(int v){ int lowcast[103]; int i,min,j,k; for(i
2012-02-21 00:23:15 707
原创 MST/UFS——HDOJ 1232
这道题用两种最常用的方法做,一种是用并查集,一种使用图的深度优先遍历HDOJ 1232 畅通工程/*HDOJ 1232 畅通工程用并查集做*/#include using namespace std;#define INF 999int N,M;int p[1005];int rank[1005];int Find(int x){ int y,w,r
2012-02-20 21:47:01 795
原创 HTML笔记 (五)
图像标签()和源属性(Src)在 HTML 中,图像由 标签定义。 是空标签,意思是说,它只包含属性,并且没有闭合标签。要在页面上显示图像,你需要使用源属性(src)。src 指 "source"。源属性的值是图像的 URL 地址。定义图像的语法是:URL 指存储图像的位置。如果名为 "boat.gif" 的图像位于 www.w3school.com.
2012-02-20 00:16:12 735 1
原创 用 Dijkstra算法解决的几道HDOJ题目
HDOJ 2066 一个人的旅行/*HDOJ 2066最短路算法的简单应用*/#include using namespace std;#define INF 9999999int graph[1005][1005];bool find[1005];int dist[1005];int s[1005];int d[1005];int S,T,D;void Sh
2012-02-18 21:00:37 1385
转载 map的几个常用方法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2012-02-18 14:08:30 3836
原创 CLRS中的BFS、DFS、ToPoSort
//算法导论中的广度优先搜索#include #include #include using namespace std;#define WHITE 0 //为访问该结点时#define GRAY 1 //发现该结点时#define BLACK 2 //该结点的所有邻接点都已经访问结束时#define Nil 0#define INF 99999999int
2012-02-15 22:12:46 807 2
原创 STL——HDOJ 1004
HDOJ 1004 Let the Balloon Rise/*HDOJ 1004 STL map的使用*/#include #include #include using namespace std;map ballon;string color;int main(){ int nCase,_max; while(cin>>nCase && nCase) {
2012-02-15 17:53:20 774
原创 动态规划——HDOJ 1003
HDOJ 1003 Max Sum/*HDOJ 1003求最大子序列和,简单DP*/#include using namespace std;struct Sub_len{ int star; int end;}s[100001];int m[100001];int dp[100001];int main(){ int nCase,i,n,j,k,_max
2012-02-15 03:02:14 827
原创 素数的Miller_Rabbin判定算法
伪素数:如果n是一个正整数,如果存在和n互素的正整数a满足a^n-1≡1(mod n){a^n-1次方modn等于1},我们说n是基于a的伪素数。如果一个数是伪素数,它几乎肯定是素数。(即下面的费马小定理)费马小定理是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p
2012-02-14 23:01:34 1293
原创 素数——HDOJ 1262
HDOJ 1262 寻找素数对/*HDOJ 1262 需找素数对为了找出最相近的两个素数,只需要从num/2倒着来找就可以了*/#include bool Isprime(int num){ if(num%2 == 0) return false; for(int i=3;i*i<=num;i++) if(num%i == 0) return false;
2012-02-14 22:10:45 764
转载 素数筛选——爱拉托逊斯筛选法
The Sieve of Eratosthens爱拉托逊斯筛选法思想:对于不超过n的每个非负整数P,删除2*P, 3*P…,当处理完所有数之后,还没有被删除的就是素数。若用vis[i]==1表示已被删除,则代码如下:memset(vis, 0, sizeof(vis));for(int i = 2; i <= 100; i++) for(int
2012-02-14 21:15:46 2802
原创 素数回文——HDOJ 1431
HDOJ 1431 素数回文打表水过。。。/*#include #include using namespace std;const int MAX=100000001;const int SQRT=sqrt(MAX);bool prime[MAX]={1,1};int arr[MAX],len=0;bool Is_Huiwen(int num){ int re_n
2012-02-14 20:58:25 905
原创 素数——POJ 2262
POJ 2262 Goldbach's Conjecture/*POJ 2262Goldbach's Conjecture就是验证哥德巴赫猜想因为目前为止,都没证明它是错的,所以测试的数据肯定不会出现错误的情况。*/#include using namespace std;bool Is_prime(int a){ //素数判断 if(a%2 == 0) ret
2012-02-14 19:30:04 692
原创 离散化——HDOJ 1199
HDOJ 1199 Color the Ball/*HDOJ 1199先离散化,然后再搜索最长的白色区间只存白色区间,是黑的时候,处理过程要将各种情况分清楚。本体看起来就是可以用区间树的,可惜我还不会咯*/#include #include using namespace std;struct white{ int x; int y;}s[3000];bool
2012-02-14 03:23:53 809
原创 图论——HDOJ 1116
HDOJ 1116 Play on Words/*HDOJ 1116考察欧拉回路和欧拉通路的定义:首先要存在欧拉通路和欧拉回路,那么这个图必须是连通图。有向图的欧拉通路:除了有两个顶点,一个入度比出度大一,一个出度比入度大一,其他所有顶点都是出度等于入度有向图的欧拉回路:所有顶点都是出度等于入度由于这道题目是抽象为有向图,所以就只需要考虑有向图的情况就OK咯。用并查集判断是否
2012-02-13 21:59:24 890
原创 图论——HDOJ 1142
HDOJ 1142 A Walk Through the Forest/*HDOJ 11421代表他的office,2代表他的house题目要求的是1到2之间的最短路径的数目。首先就先求出2到所有点的最短路径,然后再求2到1的最短路的数目。下面是题目描述中的一句话He considers taking a path from A to B to be progress i
2012-02-13 20:32:09 1025
原创 并查集——HDOJ 1325
HDOJ 1325 Is it a tree/*HDOJ 1325并查集的基本运用,考察树的基本定义不能有环,不能是森林,每个点的入度最大为1.*/#include using namespace std;const int Max=1001;int rank[Max]; //顶点的秩int p[Max]; //顶点x的父节点int In[Max]; //存储每个
2012-02-13 02:33:34 815
原创 并查集——HDOJ 1272
HDOJ 1272 小希的迷宫/*HDOJ 1272并查集的基本运用。符合要求的情况是:1、图是一个无环的图2、图是连通图特别注意,如果一开始就输入 0 0 是符合要求的*/#include using namespace std;int p[100001]; //p[x]是x的父亲int rank[100001]; //rank[x]是x的秩int Fin
2012-02-12 22:25:11 894
原创 并查集——HDOJ 1213
HDOJ 1213 How Many Tables/*HDOJ 1213 并查集的基本运用,求集合数*/#include using namespace std;int rank[1001]; //元素的秩int p[1001]; //元素的父亲int Find(int x){ int root,y,w; y=p[x]; while(p[y] != y) {
2012-02-12 21:13:56 863
原创 HTML笔记(四)
表单表单是一个包含表单元素的区域。表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。表单使用表单标签()定义。输入多数情况下被用到的表单标签是输入标签()。输入类型是由类型属性(type)定义的。表单本身并不可见。同时,在大多数浏览器中,文本域的缺省宽度是20个字符。表单的动作属性(Actio
2012-02-12 03:11:13 859
原创 大数运算——HDOJ 1002
HDOJ 1002 A+B/*HDOJ 1002大数加法*/#include #include using namespace std;int a[1001],b[1001],sum[1001];int main(){ int nCase,i,j,cf,temp, length_a,length_b,length_sum; string temp_a,temp_
2012-02-11 22:52:23 899
原创 几道HDOJ数学题
HDOJ 1061 题目描述/*HDOJ 1061求n^n 的个位,和求(n%10)^n是一样的,然后再利用快速求幂算法*/#include using namespace std;int digit(int a,int n){ if(n == 0) return 1; if(n == 1) return a; else{ int temp; if(n
2012-02-11 22:20:01 788 1
原创 快速求积、求幂、大数取模
1.快速求积,a*b=a*2*b/2int fast_mul(int a, int b){ int m = 0; while(b){ if(b % 2) { //a*b = a+a(b-1) m += a; --b; } else
2012-02-11 18:08:02 1288
原创 递推——HDOJ 2048&&2049
接着前一篇日志,两道递推题目,主要都是错排公式的运用HDOJ 2048 神、上帝、老天爷/*HDOJ 2048先用错排公式求出对应的错排总数,然后再求下对应的百分比*/#include _int64 fac(int n){ if((n == 1) || (n == 0)) return 1; else return (n*fac(n-1));}int m
2012-02-11 03:08:15 1065
原创 几道递推题目
HDOJ 1465 不容易系列之一/*HDOJ 1465错排公式与 _int64 类型的用法*/#include _int64 C[25];_int64 Count(int n){ if(C[n] != 0) return C[n]; else { C[n-1]=Count(n-1); C[n-2]=Count(n-2); //下面是错排公式 C[n
2012-02-10 22:29:42 729
原创 HTML笔记(三)
表格的表头表格的表头使用 标签进行定义。HeadingAnother Headingrow 1, cell 1row 1, cell 2row 2, cell 1row 2, cell 2在浏览器显示如下:HeadingAnother Headingrow 1, cell 1row 1, cell 2
2012-02-08 03:34:12 899
原创 多重背包的二进制分解思想
在背包九讲里面将多重背包转化为01背包,并且进行时间优化,有利用到一个二进制分解的思想。下面是在网上搜索之后得到的一个关于二进制分解思想的讲解和实现多重背包二进制分解思想讲解/** 在这之前,我空间好像转过一个背包九讲,现在我就只对 01背包和多重背包有点印象了 先说下 01 背包,有n 种不同的物品,每个物品有两个属性 size 体积,value
2012-02-07 22:13:32 5100 1
原创 多重背包——HDOJ 2191
HDOJ 2191 题目描述下面用的是最基本的多重背包转01背包方法做的,没有用单调队列优化,因为还没研究。/*HDOJ 2191多重背包问题,下面是用最基本的转化方法将其转化为01背包问题,未优化的*/#include using namespace std;int main(){ int nCase,Limit,nKind,i,j,k, price[101],
2012-02-07 20:04:13 1141
转载 Notepad++使用教程
转自http://jl453625978.blog.163.com/blog/static/860417052011670247258/1,轻量化,软件下载下来只有6MB,解压后不过10MB左右,其中还包括了语言文件帮助文件等。2,绿色开源,Notepad++是一款符合GPL协议的开源软件,同样可以在官方下载ZIP包解压即用。3,和很多文本编辑器一样,提供了代码补全,代码高
2012-02-07 17:54:47 4166
ios小项目——新浪微博客户端
2012-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人