自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青竹梦

青色的竹子,紫色的梦

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 稳定婚姻问题

假设有一百个男人和一百个女人, 每个男人都凭自己好恶给每个女人打分, 我最爱a, 其次爱b, 再次爱c...每个男人打的分不同, 你最爱的可能是我最讨厌的, 我最爱的可能是他不甚喜欢的. 每个女人也同样给每个男人打分. 让你寻找所有的男女组成稳定的搭配。要求:不存在两个非伴侣的异性对彼此的评价比对各自伴侣的评价还要高。比如a-b是情侣。c-d是情侣。不能存在b感觉c比a好的同时,c

2013-01-27 18:20:25 961 2

原创 poj-1276-Cash Machine-多重背包进行二进制转换

题意:给总钱数mon,面额的种类数n;每种面额有a张,面值大小为b;求根据给出的面值组合出一个数,要求是小于等于mon的最大值。做法:用二进制转化。比如说a=1124;b=10;可以把这种货币转化成1*10 2*10 4*10  8*10 16*10 32*10 64*10 128*10 256*10 512*10 101*10面额的钞票,每种一张,共11种。因

2013-01-26 20:24:42 718

原创 poj-2533-Longest Ordered Subsequence-最长上升子序列

题意:求最长上升子序列做法:最长上升子序列。、、、、注意:注意数组范围#include#include#includeusing namespace std;int main(){ int n,i,j; int a[100001]; cin>>n; for(i=1;i<=n;i++) { cin>>a[i];

2013-01-26 11:08:56 1037

原创 poj-3176-Cow Bowling-dp

题意:给你一堆数,让你从上往下走,走最长的一个路径到达最下面。做法:从下往上走。dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1])#include#include#includeusing namespace std;int main(){ int n,i,j; int dp[351][351]; cin>>n;

2013-01-26 10:31:13 910

原创 poj-1159-Palindrome-学习滚动数组

题意:给你一串字符串,让你求最少加入几个字符,才能使得这个字符串是个回文串。做法:设a[i]是这个字符串,b[i]是这个字符串的逆序串。那么a[i],b[i]的最长公共子序列就是所求的字符串里拥有的最大的回文串。然后用总串长减去最大的回文串长度即为所求。求最长公共子序列的公式为:dp[i][j]=max(dp[i-1] [j],dp[i][j-1])if(a[i]=

2013-01-26 09:14:29 2622 3

原创 poj-1260-Pearls-dp

这道题目我真是无力吐槽了。,,题意:从质量差到质量好的顺序给你需要买的珍珠的数量和单价。让你求如何花最少的钱买到所有的珍珠(质量差的可以用质量好的来替换);买一种单价为p的珍珠n个花费(n+10)*p;即每种珍珠需要多花10*p的钱。做法:用dp【i】表示买到第i种珍珠花的钱。则:dp【i】=min(dp【i】,dp[j]+(sum[i]-sum[j]+10)*p[i]

2013-01-25 19:40:58 985

原创 poj-1836-Alignment-dp-最长最短子序列问题

题意:给你一排士兵,然后给你他们的身高,让你求最少剔除几个士兵之后,剩下的士兵的每一个士兵都能看见最左边的风景或者是最右边的风景。做法:按照题意就是求最少剔除几个士兵,才是得一排士兵的高度组成一个三角形。求出最大上升子序列lens【i】,最大下降子序列lenx【i】。如果以一个士兵i为三角形的头的话,那么这排士兵最多可以保留lens【i】+lenx【i】-1个人。那么求出最

2013-01-25 16:07:54 1367

原创 poj-3267-The Cow Lexicon-dp

题意:给你一个字符串,做为被查字符串。然后给你一系列的字符串,作为字典。然你从被查字符串中去除掉字典中含有的字符串,可以是不连续的~~求:被查字符串最小剩下多少个字符。做法:dp[i]代表第i字符后面的字符去除掉字典后剩下几个字符。dp[i]=min(dp[i],dp[i+1]+1,dp[k+1]+k+1-i-lens);k代表从第i个字符,往后走,可以找到的一个字

2013-01-25 14:57:23 667

原创 poj-1129-Channel Allocation-四色定理

题意:给你一个n,代表电台的数量。电台的编号是从A到Z。然后给你他们之间的邻接关系,让你求出最小需要的频率数。要求任意两个相邻的电台之间不允许用同一频率。做法:由于范围比较小,所有爆搜都没关系。但是如果电台的数量比较大的话,就需要运用四色定理了。四色定理:对于任意一张地图,最多只使用四种颜色就可以把地图任意两个相邻的国家染成不同的颜色。对于这道题目可以看成给电台染色

2013-01-25 08:50:06 1055

原创 poj-3087-Shuffle'm Up-模拟

题意:给你两堆纸牌,让你通过数次洗牌动作使得洗牌之后的序列为给定序列。输出最小的洗牌次数。洗牌方法:把第二堆的第一张放在最下面,让后放第一堆最下面的那张,;轮流放。洗完之后,把下面的n张作为第一堆,上面的n张作为第二堆。做法:模拟纸牌的放法,一步步的放,当序列符合的时候就终止放。当纸牌的顺序和一开始的顺序相同的时候就输出-1。注意:注意寻找循环结。#incl

2013-01-24 20:14:47 818

原创 poj-3126-Prime Path-bfs

题意:给你两个素数,让你通过一系列的变化,从第一个素数变化到第二个素数。变化规则:每次只能变换一位,并且在进行一次变换之后的数依然是素数。让你求最小需要变化的次数,思路:由于是四位数,所以只需要遍历所有情况便可。让输出最小需要变化的次数,用bfs比较简单。注意:注意bfs里面的限制条件别写错了就好~#include#include#include

2013-01-24 17:22:18 575

原创 poj-1321-棋盘问题-回溯

题意:给你一个棋盘,#的地方可以放棋。*的地方不能放棋。让你把k个棋子放入这个棋盘上,要求两个棋子之间不可以同行或者同列。做法:和八皇后的问题很像。不可以同行,那么每一行至多有一个棋子。可以对棋子的方法进行回溯。从第一行往下放,放下一个棋子之后,把棋子所在的列标记一下,然后接着在下一行放棋子。直至棋子放完。注意:主要注意一下回溯函数的结束标志。#include

2013-01-24 16:48:47 639

原创 poj-3009-Curling 2.0-dfs

终于A了,一上午就A了一道题目,好没有成就感·········题意:溜石游戏。在一给定大小的矩形冰面上,散布若干石块,给定石头的初始位置和终点,求从起点到达终点的最小步数,超过10次则视作不可达。其中规则如下,若石头与石块有相邻则不能向该方向滑动;每次溜石只能到达有石块的地方,且将其立即敲碎;若出界则视作失败。做法:对每一步到达的终点进行四个方向的搜索,直至搜到3或者搜索结束。

2013-01-24 10:58:12 1790

原创 poj-3253-哈夫曼树

题意:John要修理牧场周围的篱笆。根据他的测量,他需要N块木板(1 做法:把所有的需要的板子排序。取最小的加起来,放进需要的板子里面。重复操作#include#include#include#includeusing namespace std;int main(){ __int64 i,n,j; __int64 a[20

2013-01-23 21:20:16 1159

原创 cf-#163-总结

郁闷啊,本来能交第三题的。。。自己的思维能力还是有缺陷,打代码的能力不行。虽然打字速度还凑合着,但是没有大局观。必须提高由思想转化成代码的速度。做法就是多打代码~~~~

2013-01-23 01:39:21 878 2

原创 poj-2676-Sudoku-dfs(其实就是爆搜。。)

题意:额,题意就是数独,大家都玩过,添数独。做法:从头往后搜数独中不存在的数,每个数都有1~9,9种情况。对于每一种情况,先看一下这个位置是否可以放这个数。如果可以放的话,就放下去,继续搜下一个数,如果不可以,就放下一步。注意:注意搜到就要及时退出。否则就要超时。还有从后往前搜是0MS,从前往后搜就是468MS。。。囧#include#include#i

2013-01-22 19:42:05 1069

原创 poj-1416-Shredding Company-dfs

题意:给你两个数n,m;n表示最大数,m则是需要切割的数。切割m,使得切割之后的数的和小于等于n。求出最大的切割方法;例: 50 1234612346可以切割为 1 2 34 6和为43,这个数小于n。12346也可以切割为1 2 3 4 6和为16,这个数也小于n;但是43大于16,所以去43而不取16;做法:dfs(int x,int num,int y)

2013-01-22 18:52:32 623

原创 poj-1080-形如下表dp

题意:给你两串字符串,然后让你找到这两个字符串的最小匹配。做法:dp问题。dp公式:map[i][j]=max3(map[i-1][j-1]+sale[xx][yy],map[i-1][j]+sale[xx][4],map[i][j-1]+sale[4][yy]);#include#include#include#includeusing namespace std;in

2013-01-22 09:57:27 554

原创 TC-srm567-500分题目

这个题目当时没有提交,现在想了想当时的思路。感觉我这样做是可以出结果的。题意:给你两个数n,m;让你求这小于等于这两个数的平方根的和的平方是一个整数的个数,实际上就是求满足1我的做法:对于x从1到n遍历:x=xx*xx*numx;//x的值可以分为一个xx的平方数乘以numx。y=yy*yy*numx;//x的值可以分为一个y的平方数乘以numx。#in

2013-01-22 08:28:54 1337

原创 topcoder-srm567-250分-第一次纪念

第一次做topcoder,用的很不是习惯。写一下自己的模版:#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;class $CLASSNAME${pub

2013-01-22 08:22:02 916

原创 poj-3252-数学

题意:给你两个数x,y,让你求这两个数之间的循环数的数量。循环数:把数转换为二进制,对于二进制,0比1多或者相等的数为循环数。做法:先分别求出0~x的循环数个数a,再求出0~y有的循环数个数b;结果为b-a;求0~x的循环数个数:假如x转化为2进制之后有5位;x=10100;则先求出位数为1,2,3,4位的二进制数中有多少个循环数;         求法:比如说位数

2013-01-21 17:14:47 625

原创 poj-1850-数学

题意:给你一串字母,求他们应该是第几位。a - 1 b - 2 ... z - 26 ab - 27 ... az - 51 bc - 52 ... vwxyz - 83681 前面的字母一定比后面的字符小。如果比后面的字母大,就输出0;做法:定义一个函数f(x,y,z)表示字符串一共有z个长度,第一个字母从x搜到y的结果。比如对字符

2013-01-21 15:47:37 764

原创 poj-2531-暴搜+回溯

题意:给你一个图,图中任意两点的距离都给你了。然后让你把这个图的所有的点分成两个子集。要求两个子集之间的所有点的距离和最大。做法:题目数据小,n《=20,所以依次枚举一个子集中有1~20个元素的情况。对于每种情况,距离等于一个子集中的点,到其他任意点的距离和减去子集中任意两点的距离和#include#include#includeusing namespace std

2013-01-21 14:26:50 1032

原创 poj-1942-组合数学

题意:一个a*b的矩阵,问从左下点沿矩阵的边走到右上点有多少种不同的走法,每次只能向右走或者向上走。做法:一共走了a+b步。对于每步进行分析:每步可能走横,也可能走竖。但是一定会走a个横,b个竖,所以总共共有:C(a,a+b)种情况。#includeint main(){ long long m,n,x,y,sum,i; while(scanf("%ll

2013-01-21 14:21:19 709

原创 poj-3414-bfs

题意:给你三个数:a,b,c让你通过一系列的动作,初始时,A=B=0;使得A=c或者B=c;动作:1,A=a;2,B=b;3,A=0;B=B;4,A=A,B=0;5,A=(B往A中走,最大不超过a),B=走剩下的。6,B=(A往B中走,最大不超过b),A=走剩下的。做法:总共就有6中情况,bfs就行。注意当A,B都满了的时候,不走5,6;#inc

2013-01-21 10:35:35 420

原创 poj-3083-bfs+左转优先+右转优先

题意:给你一个图,有起点st,终点end,可走点'.',不可走点‘#’;让你分别求出,左转优先,右转优先的路径长度,和最短路径。做法:左转优先和右转优先是模拟走的过程。最短路用的bfs。注意:1,图的点(x,y)和其对应的位置转化。2,,左转优先走的顺序是:左,前,右,后;3,注意边缘情况,判断点是否可达。#include#include#include

2013-01-21 09:42:54 1060

原创 poj-1426-bfs取余

题意:给一个数n,让你找出一个只有1,0,组成的十进制数,要求是找到的数可以被n整除。做法:假如n=6;1余n=1;10余n=1*10%6=4;11余n=(1*10+1)%6=5;100余n=4*10%6=4;101余n=(4*10+1)%6=5;110余n=5*10%6=2;111余n=(5*10+1)%6=3;可以推知10。。。。01余n=(10。。

2013-01-19 20:15:13 2952 4

原创 poj-3278-bfs

bfs的问题。注意一下数据范围,水过~~~~#include#include#include#include#include#includeusing namespace std;int lens;void bfs(int st,int end){ int visit[100005]; memset(visit,0,sizeof(visit)); qu

2013-01-19 11:52:13 597

原创 poj-2488-dfs

题目大意:给一个棋盘的长和宽,让你选择一条路径,可以让“马”走完整个棋盘。做法:遍历棋盘的每一个点作为起点。从起点开始,dfs每条可能的路径。由于当存在多条路径的时候,输出字典序小的那条路径,所以,在dfs的时候,一定要先遍历字典序小的路径。当遍历到一条可行路径的时候输出这条路径。#include#include#includeusing namespace st

2013-01-19 11:32:29 480

原创 poj-2513-字典树+欧拉路+并查集

这道题目是多个数据结构的集合体,考察了字典树,欧拉路,并查集。判断一个无向图有欧拉路的标准:1,图是联通的2,图的各个节点的度,只有0个或者只有2个是为奇数个的。判断图的联通:创建并查集,如果所有的点的祖先都是同一个点的话,则为联通图。#include#include#includeusing namespace std;struct list{ int

2013-01-19 10:15:49 579

原创 poj-3349-哈希

个人表示对哈希完全的无语,做题速度完全取决于你的运气。取模取的巧的话,就可以很快的解出来,而像我这样,连续re了好几次的,也需要人品啊~~~#include#include#includeusing namespace std;#define max 100001struct list{ int a[6]; struct list *next;}*hash[m

2013-01-18 20:04:01 451

原创 poj-2299-逆序数-归并排序

归并排序,不大熟,复习一下~~#include#include#include#include#includeusing namespace std;__int64 minn[500001];__int64 mix[500001];__int64 ss;void dos(int x,int y,int m){ int i,j,k; i=x; j=

2013-01-18 17:42:39 481

原创 poj-3436-记录路径的最大流-edmondskarp

上午终于把最大流搞懂了,下午独立的做了一道题目,这道题目牵扯到如何记录最大流流过的路径问题。想了好久,然后有好好的探索了一下edmondskarp算法的核心思想,发现每次的增光路都可以作为条通径。这样的话就简单了,每次添加增光路的时候,用另一个数组记录一下增光路的添加路线,到后来用的时候,再依次从数组中取出增光路的添加路线。#include#include#include#i

2013-01-18 14:57:12 1561

原创 poj-1459-最大流-edmondskarp算法

搞了许久的最大流终于有眉头了,非常高兴~~题意:有多个发电站,有多个用户,发电站和用户之间有多个中转站。首先输入,总共点的个数,发电站的数目,用户数,边数。对于每个边,输入两个点,为边的两点,然后输入此边允许的一个最大流量。对于每个发电站,和每个用户来说,输入一个点,此点为发电站的后继点或者用户的前驱点,然后输入一个最大流量;做法:设立一个源点sp,一个节点fp。sp指

2013-01-18 09:26:16 1282 3

zookeeper的设计原理及应用

该文件详细的介绍了zookeeper的设计原理,主要对选举和事务进行说明。还列举了一些应用场景,值得一看

2018-03-22

餐饮管理系统设计说明书

餐饮管理系统设计说明书,有详细的说明。 第一部分 引言 1.1 开发背景与现状 当今世界已进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。越来越多的管理人员意识到信息管理的重要性。

2014-12-08

空空如也

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

TA关注的人

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