- 博客(64)
- 收藏
- 关注
原创 UVA 11624
/*Joe works in a maze. Unfortunately, portions of the maze havecaught on re, and the owner of the maze neglected to create a reescape plan. Help Joe escape the maze.Given Joe's location in the
2016-11-15 21:33:08
484
转载 STL map用法讲解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2016-10-31 13:25:58
433
原创 [dijkstra//vis数组变形输入]昂贵的聘礼
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %lluSubmit StatusPractice POJ 1062Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁
2016-10-30 22:15:54
501
原创 [有向图Dijkstra模板]Silver Cow Party
/*Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit Status Practice POJ 3268DescriptionOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N
2016-10-27 14:30:22
316
原创 [次小生成树]The Unique MST
/*Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %lluSubmit Status Practice POJ 1679DescriptionGiven a connected undirected graph, tell if its minimum spanning tree is
2016-10-25 10:57:13
314
原创 浅谈最小生成树的两种算法
最近写了一个专题,最小生成树问题。这是一个比较水了专题,别人都不看在眼里面,哎差距啊。废话不多说,写写我看到的kruskul和prime算法的区别与联系:kruskul这个算法是建立在并查集的基础上的,只是在find函数中做了少量的修改,很容易理解,prime算法呢,则是要不断的更新。在做题方面的话,kruskul和prime是可以相互转化的,特别是在给出一个点的坐标的时候,可以将这点
2016-10-25 10:55:37
1115
原创 [BFS+prime]Borg Maze
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmitStatusPracticePOJ 3026DescriptionThe Borg is an immensely powerful race of enhanced humanoids from the del
2016-10-23 19:59:03
305
原创 [prime模板]
#include#include#include#include#includeusing namespace std;#define INF 0x3f3f3f3f#define MAXN 110int map[MAXN][MAXN], lowcost[MAXN];bool visit[MAXN];int nodenum, sum;void prim(){ int te
2016-10-21 22:03:19
332
原创 (BFS模板)A计划
/*Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 2102Description可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,
2016-10-20 15:48:16
339
原创 简单DFS 哈密顿绕行世界问题
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmitStatusPracticeHDU 2181Description一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。
2016-10-18 22:55:50
360
原创 实现双栈共享
一、实验要求和目的要求:使用visual C++软件实现双栈共享数组,编写其POP&PUSH过程。要求输入1-100的整数,取3的整数倍压栈到S1,其余到栈S2,栈满后,再分别弹出到栈空,输出栈POP结果及过程中上下溢出的信息。目的:学习栈的实现和POP&PUSH的编写。 二、数据结构 定义一个长度为maxsize的数组,栈S1和栈S2的分别指向数组的第一个和最后一个存储单
2016-10-15 16:32:21
1639
原创 循环单链表的合并
# include using namespace std;struct NODE{ int data; struct NODE * next;};struct NODE * creat();struct NODE * merge(struct NODE * p1, struct NODE * p2);void traverse(struct NODE * p);int
2016-10-15 16:22:02
597
原创 Find The Multiple
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 27297 Accepted: 11361 Special JudgeDescriptionGiven a positive integer n, write a program to find out a nonzero
2016-09-20 23:57:44
226
原创 (kuangbin BFS)Catch That Cow
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmitStatusPracticePOJ 3278DescriptionFarmer John has been informed of the location of a fugitive cow and w
2016-09-19 22:38:52
218
原创 (kuangbin BFS)Dungeon Master
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmitStatusPracticePOJ 2251DescriptionYou are trapped in a 3D dungeon and need to find the quickest way out! Th
2016-09-19 22:17:36
212
原创 (kuangbin DFS)棋盘问题
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %lluSubmitStatusPracticePOJ 1321Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定
2016-09-19 21:27:26
439
原创 (BFS/DFS)POJ 1979 Red and Black
Time Limit: 1000MS Memory Limit: 30000KTotal Submissions: 31376 Accepted: 17119DescriptionThere is a rectangular room, covered with square tiles. Each tile is colored either
2016-09-17 22:05:37
237
原创 还是回文
时间限制:2000 ms | 内存限制:65535 KB难度:3描述 判断回文串很简单,把字符串变成回文串也不难。现在我们增加点难度,给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费。那么,将字符串变成回文串的最小花费是多少呢?输入多组数据第一个有两个数n,m,分别表示字符的种数和字符串的长度第二行给出一串字符,接下来n行,每行有一个字符(a~
2016-09-16 21:27:08
188
原创 非洲小孩
时间限制:1000 ms | 内存限制:65535 KB难度:2描述 家住非洲的小孩,都很黑。为什么呢?第一,他们地处热带,太阳辐射严重。第二,他们不经常洗澡。(常年缺水,怎么洗澡。)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)每个小孩有一个时间段能够洗澡。并且,他们是可以一起洗的(不管你是男孩是女
2016-09-02 23:12:28
311
转载 C++中队列与优先队列的使用方法
C++ Queues(队列)、Priority Queues(优先队列)C++ Queues(队列)C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一个元素4.pop() 删除第一个元素5.push() 在末尾加入一个元素6.size(
2016-08-29 00:35:11
775
原创 NYOJ 171 聪明的KK
聪明的kk时间限制:1000 ms | 内存限制:65535 KB难度:3描述 聪明的“KK”非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌。展馆由五部分组成,馆内影院播放名为《一眨眼的瞬间》的宽银幕短片,反映了建国以来人民生活水平和城市居住环境的惊人巨变。可移动“沙丘”变戏法 的灵感源于其独特而雄伟的自然
2016-08-23 19:10:36
275
原创 01背包问题
方式一:首先是利用二维数组的方式,这个可以参考 http://www.tudou.com/listplay/zX_M3M3RL5A/XaOy3xM2klU.html 这个视频,讲的很好,很详细。具体的思路就是knapsack函数用来求二维数组每个元素的值,从(1,1)开始,就是当有一件商品的时候,背包的重量从1~W,什么时候能放下,就放入,不能放下就继续往下。当有两件商品的时候,依旧如
2016-08-17 15:30:44
257
原创 最长公共子序列
最长公共子序列时间限制:3000 ms | 内存限制:65535 KB难度:3描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最
2016-08-15 19:08:02
309
原创 segment tree (HDOJ 1166 敌兵布阵)
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 77678 Accepted Submission(s): 32739Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以
2016-08-15 16:34:43
201
原创 中缀表达式转后缀表达式
我们把平时所用的标准四则运算表达式,即“9+(3-1)*3+10/2"叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+” 规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级
2016-08-10 20:19:10
229
原创 大数阶乘
#include int main(){ int carry,n,j; int a[40001]; int digit; int temp,i; while(scanf("%d",&n)!=EOF){ a[0]=1;digit=1; for(i=2; i<=n; i++) { for(carry=0,j=1;
2016-08-09 14:22:48
192
原创 kruskal算法
自我感觉这是并查集的应用,有关并查集,我在《集训第四天》的总结中写过了,可以参看下边是克鲁斯卡尔算法:#include#include#include#include#includeusing namespace std;#define MAX 1000int father[MAX];int v, l;struct Kruskal //存储边的信息{ int a;
2016-08-08 17:35:23
189
原创 qsort bsearch的应用
# include int a[100005];int compare1(const void *a, const void *b){ int *pa = (int *)a; int *pb = (int *)b; int num1 = *pa; int num2 = *pb; return num1 - num2;}int compare2
2016-08-06 17:38:20
233
原创 C语言实现的全排列算法
程序的主要思路是:1.把第1个数换到最前面来(本来就在最前面),准备打印1xx,再对后两个数2和3做全排列。2.把第2个数换到最前面来,准备打印2xx,再对后两个数1和3做全排列。3.把第3个数换到最前面来,准备打印3xx,再对后两个数1和2做全排列。可见这是一个递归的过程,把对整个序列做全排列的问题归结为对它的子序列做全排列的问题,注意我没有描述Base Case怎么处理,你需要
2016-08-06 10:16:13
39220
5
原创 寻找最大数
寻找最大数时间限制:1000 ms | 内存限制:65535 KB难度:2描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,比如当n=92081346718538,m=10时,则新的最大数是9888 输入第一行输入一个正整数T,表示有T组测试数据每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过1
2016-08-05 20:30:17
598
原创 并查集的删除
合纵连横时间限制:1000 ms | 内存限制:65535 KB难度:3描述乱世天下,诸侯割据。每个诸侯王都有一片自己的领土。但是不是所有的诸侯王都是安分守己的,实力强大的诸侯国会设法吞并那些实力弱的,让自己的领土面积不断扩大。而实力弱的诸侯王为了不让自己的领土被吞并,他会联合一些其他同样弱小的诸侯国,组成联盟(联盟不止一个),来共同抵抗那些强大的诸侯国。 强大的诸侯国为了瓦解这
2016-08-05 20:20:58
582
1
原创 +-字符串
+-字符串 时间限制:1000 ms | 内存限制:65535 KB 难度:1描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。输入多组测试数据 每组数据有两行,每行包含一个由”+”和”-“
2016-08-05 20:08:26
189
原创 又见导弹拦截
#includeint dp[3010];int main(){ int n,i,j; int max; int h[3010]; while(scanf("%d",&n)&&(n!=-1)) { for(i=0;i<n;i++) { scanf("%d",&h[i]);
2016-08-05 14:52:07
193
原创 最长上升子序列
这个问题的话,代码如下,你需要做的就是看着代码,然后自己走一遍,什么都会了。#include #define MAX 1000int seq[MAX+10];int seqlen[MAX+10];int main(){ int i,j,k,N,max,maxlen=1; for(i=1;i<=9;i++) seqlen[i]=1;
2016-08-04 14:03:40
152
原创 动态规划:最长上升子序列
问题描述一个数的序列bi,当b1 你的任务,就是对于给定的序列,求出最长上升子序列的长度。 解题思路如何把这个问题分解成子问题呢?经过分析,发现 “求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度”是个好的子问题――这里把一个上升子序列中最右边的那个数,称为该子序列的“终点”。虽然这个子问题和原问题形式上并不完全一样,但是只要这N个子问题都解决了,那么
2016-08-03 21:22:05
213
原创 已知两种二叉树的遍历,求第三种
#include #include int k;void build(int n,char *s1,char *s2,char *s);int main(){ char s1[100],s2[100],s[100]; while(scanf("%s%s",s1,s2)==2) { k=0; int n=strlen(s1);
2016-08-03 21:02:14
440
原创 NYOJ 小猴子下落
小猴子下落时间限制:3000 ms | 内存限制:65535 KB难度:3描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走
2016-08-03 20:14:01
492
原创 01背包问题
#include #include int c[1005]; //重量int w[1005]; //价值int dp[1005]; //[重量] 表示背包在当前重量下最大能容纳的价值int main(){ int n,v; int i,j; while(scanf("%
2016-08-02 10:07:04
204
原创 关于快速幂取余运算问题
p次方求和时间限制:1000 ms | 内存限制:65535 KB难度:3描述 一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。输入第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p,输入保证0输出输出1^p+2^p+3^p+……+n^p对10003取余的结果,每个结果单独占一行。样例输入210 110
2016-07-31 11:43:49
573
原创 C语言中比较好的方法
/*删除一个字符串中相同的字符*/# include int main(){ char s[27]; gets(s); int i, j, k; for (i=0; i<26; i++) { for (j=k=i+1; j<26; j++) { if (s[i] != s[j]) s[k++] = s[j]; } s[k] = '\0'; }
2016-07-28 10:21:20
333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人