
Acm
mxway
这个作者很懒,什么都没留下…
展开
-
HDU1175连连看
HDU1175题目描述BFS#include#include#includeusing namespace std;int map[1010][1010];int n,m;int ex,ey;//搜索方向int dir[4][2]={{-1,0},{0,-1},{1,0},{0,1}};int flag[1010][1010];struct point{原创 2012-12-20 09:01:39 · 1283 阅读 · 0 评论 -
hdu4287(字典树)
题目大意:手机键盘中与数字2相对应的字母有a,b,c;3相对应的字母有d,e,f。给出一些数字串如34,和一些小写字母串。求小写字母对应的数字串出现的次数。字符串abc对应的数字串是111,dh对应的数字串是34。则小写字符串中111出现一次,34出现一次。程序中也用到简单的hash映射。#include#includeint hash[128];struct TrieNode{原创 2013-06-30 15:41:52 · 1926 阅读 · 0 评论 -
hdu1198--并查集
Problem DescriptionBenny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square h原创 2013-07-09 14:12:56 · 1148 阅读 · 0 评论 -
hdu1558--并查集+判断线段相交
简单的计算几何题,判断两线段是否相交。将相交的两线段使用并查集归到一类中。查询时输出线段对应集合中元素的个数。#includestruct Point{ double x,y;};struct Segment{ Point s,e;}node[1010];int n,parent[1010];int getAbs(int value){ if(value>=0)retur原创 2013-07-09 09:31:12 · 1201 阅读 · 0 评论 -
hdu1395(简单数论题)
题目中给出输入一个整数n,要求一个最小整数的x,使得2^x mod n=1;根据模P乘法逆元:对于整数a、p如果存在整数b,满足a*b mod p=1则称b是a的模P乘法逆元。a存在模P的乘法逆元的充要条件是gcd(a,p)=1,令a=2^x,b=1,p=n则若存在x使用2^x mod n=1则gcd(2^x,n)=1(1)因为要求x的值大于0。则2^x的因子中只有一个2,所以当n原创 2013-05-21 11:50:09 · 3409 阅读 · 0 评论 -
HDU1710(根据前序和中序生成二叉树)
题目分析:前序遍历的顺序是:根节点,左节点,右节点中序遍历的顺序:左节点,根节点,右节点假设前序遍历的顺序是:1 2 4 7 3 5 8 9 6中序遍历的顺序是:4 7 2 1 8 5 9 3 61.根据前序遍历的规则,前序遍历的第一个节点一定是根节点。2.从中序遍历中找到第1步根节点所在的位置,在中序序列中根节点所在位置的左边序列就是二叉树的左子树,右边序列就右子树。原创 2013-05-06 11:54:33 · 1151 阅读 · 0 评论 -
金山西山居初赛(2)第一题美素数--hdu4548
美素数满足两个条件:1.该数本身是素数。2.该数各位数字之和也是素数。题目中的数据范围是1~1百万,如果使用暴力肯定tle。于是我就想到了打表,我把从1到1百万之间的所有美素数打出来。提交后发现,代码太长,没法提交^_^。所以就想到用一个数组在程序初始化的时候来记录满足条件的美素数。在1~1百万之间的美素数个数3万多些。再用二分法从3万个数据中找到下边界,然后循环出满足条件的个数输出。原创 2013-05-19 09:04:47 · 2039 阅读 · 0 评论 -
HDU2054(大数的处理)
这一题很有意思,没有用到任何的算法,主要需要考虑各种情况。如两个数的范围长度可能在10000位以上,另外使用字符串存储时需要注意不能直接判断两个字符串是否相等,因为题目没说两个数是不是整数,如两个数分别是10.0与10.00如果直接比较两个字符串是否相等,就WA。有了上面的思路程序也就好实现了。#include#include//字符串s中是否包含字符cbool Search(char原创 2013-03-21 11:24:51 · 1033 阅读 · 2 评论 -
HDU2952(深度搜索)
这个题目也可以使用广度搜索方式解题。这里写出深度方法的代码和思路#include#includeint dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//四个方向搜索char map[110][110];int flag[110][110];//flag[x][y]>0表示(x,y)处的羊已划分到某个区域中。int H,W;int check(in原创 2013-02-15 16:32:15 · 1916 阅读 · 0 评论 -
HDU1397(以空间换取时间)
题目的大致意思是对于任何一个大于等于4的偶数n,至少存在一对素数p1,p2。使得n=p1+p2,给定一个偶数n,可以分解几对素数之和。n的取值范围为4-32767。#includeint isPrime(int n){ int i; for(i=2;i*i<=n;i++){ if(n%i==0)return 0; } return 1;}原创 2013-02-06 19:04:58 · 1583 阅读 · 0 评论 -
HDU1548(搜索)
/*** BFS*还可以使用DP来解决,不过DP学的不好。没有尝试*/#include#includeusing namespace std;int flag[210],data[210];//flag用来标记当前楼梯所在层数是否已经搜索过。如果已经搜索过就不再加入队列中。//避免重复的搜索int N,A,B;struct Node{ int c原创 2013-02-03 15:50:55 · 1042 阅读 · 0 评论 -
HDU1728--逃离迷宫
/***简单的BFS*/#include#includeusing namespace std;char map[110][110];int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int flag[110][110];//记录x,y坐标节点当前所用的最小的转弯次数。int m,n,sx,sy,ex,ey,MAXValue;原创 2013-01-30 20:55:17 · 565 阅读 · 0 评论 -
HDU2063过山车(二分匹配)
Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSno原创 2012-12-20 12:05:21 · 556 阅读 · 0 评论 -
HDU1026
Problem DescriptionThe Princess has been abducted by the BEelzebub feng5166, our hero Ignatius has to rescue our pretty Princess. Now he gets into feng5166's castle. The castle is a large labyrint原创 2012-12-20 09:11:17 · 1930 阅读 · 0 评论 -
矩阵在编程中的一个小应用
比如我们已经知道f1=1,f2=1,fn=a*fn-2+b*fn-1。用普通方法求fn就是一个循环。从3循环到n,时间复杂度为O(n)。下面用另一种方法求fn的值。设矩阵 A =原创 2013-07-25 13:15:42 · 3502 阅读 · 0 评论