自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(104)
  • 资源 (3)
  • 收藏
  • 关注

原创 UVA - 141 - The Spot Game

题意:给一个棋盘,两个人下棋,规则是可以放棋子,也可以拿棋子,在规定的步数内,谁先让棋盘出现重复谁就输。如果棋盘的两个状态通过旋转可以重合,则这两个状态重复。思路:1.HASH保存每个状态,每走一步就检查是否重复并保存4个状态(4个方向)。        2.输出结果。        3.注意空棋盘的情况,还有一种情况是左转右转相同,所以要一个辅助标记initial。右转9

2013-03-16 16:54:16 559

原创 UVA - 10591 - Happy Number

看了不下8遍题目,终于看懂了,这一堆的of把人都搞昏了。注意digit与integer的区别,这里的digit指的是整数的每一位数。若在构成循环之前,有一个Si(i>=1)的值为1,则这个数是快乐的。7->49->97( 97=4*4+9*9)->130 (1*1+3*3+0)->10->14 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4中

2013-03-16 16:52:14 638

原创 UVA - 10887 - Concatenation of Languages

题意:把两个集合的单词拼起来,然后数一共有多少个单词。思路:拼接后直接HASH即可。注意:题目没有给出空串的情况,这里WA了6次,唉,检查了很多遍都不知道哪错了,后来上了论坛才知道有空串的情况,真是恶心。eg: accad{a,ac,acc}{ccad,cad,ad}->{accad,acad,aad,acccad,accccad}53 3aacacccca

2013-03-14 19:51:55 429

原创 UVA - 10125 - Sumsets

题意:从给定的集合中找到最大的d,其中d满足d=a+b+c,a,b,c都是集合的元素。思路:数据规模较小,直接暴力O(n^4).#include#include#includeint flag,tmp,n;int num[1003];int cmp_int(const void *_a,const void *_b){ int *a=(int *)_a;

2013-03-14 19:50:01 437

原创 UVA - 10391 - Compound Words

题意:从词典中找出由两个词组成的合成词。思路:利用HASH建立词典,遍历所有词,分解每个词,若分解后的词都能找到,则输出。注意找到后break退出循环,否则可能多输出一遍。这里WA了3次。#include#include#define MAX 1000003char word[120000][50];int head[MAX],next[MAX],num;int hash(cha

2013-03-10 10:59:11 403

原创 UVA - 10282 - Babelfish

题意:一本词典,上面有外文词汇和对应的英文词汇。题目给出外文词,让翻译成英语。思路:利用HASH建立词典,拿到需要翻译的词时,算出HASH值查找即可,若找不到则输出eh。注意与第一个词匹配的情况,这里WA了两次。。。。。。#include#include#define MAX 1000003char english[MAX][11],foreign[MAX][11];char me

2013-03-09 19:54:10 411

原创 UVA - 188 - Perfect Hash

题意:跟题目一样,就是给一个字符串,构造一个完美的HASH函数,其中这个HASH函数的算法已经给出了,题目要求C值。思路:1.gets读取字符串,注意单词间可能有多个空格            2.算出每个单词的权值            3.根据题目中的算法,写出循环,求出C,再根据题目要求输出即可。#include#include#include#includ

2013-03-09 17:48:04 440

原创 UVA - 704 - Colour Hash

题意:类似于魔方的那种智力玩具(不过这个是二维的),通过旋转与最后状态匹配即可。编号顺序:左轮顺时针,右轮逆时针。思路:1.BFS,每转一次记录一个状态,利用HASH判重。         2.超过16步就退出。目标状态:  0 3 4 3 0 5 6 5 0 1 2 1 0 7 8 7 0 9 10 9 0 1 2 1旋转一次的状态(方便写出旋转函数):LWC:

2013-03-09 10:07:12 418

原创 UVA - 321 - The New Villa

题意:从客厅走到卧室,到达卧室后,除卧室之外的灯全关。还有一点就是走到哪个房间,那个房间的灯必须亮着。思路:1.BFS输出距离最短的,每次只记录一个状态,类似于穷举。        2.开灯算一步。关灯算一步。从一个房间走向另一个房间算一步。        3.从客厅开始。        用当前位置和灯的状态HASH判重即可。注意只有一个房间的情况,真的是太坑了,W

2013-03-07 21:17:15 412

原创 UVA - 310 - L--system

题意:在D0L这样一个系统中存在一个有限的集合(包含字母),一个P集合(字母的映射)和一个初始串。题目给定一个初始串,叫你判断是否能通过不断映射构成目标串或者包含该目标串的串。例如a->aa,b->bb,初始串为ab,目标串为aaabb,这样的话,初始串根据映射衍化(注意,扩展时必须同时采用两规则):ab(a->aa,b->bb)->aabb->aaaabbbb 这样就得到了含有目标串的串,输出Y

2013-03-01 21:05:22 406

原创 UVA-10085 - The most distant state

跟白书上介绍的8迷问题十分相似,只是这道题需要记录移动的步骤,而且是求最大可移动的步数。思路:1.保存每一步的状态。2.HASH查找有无重复状态。3.记录最远能达到的状态。主要算法:利用BFS遍历所有状态。#include#include#include#define MAXSTATE 1000003int origin[3][3],current[3][3],final[3][3

2013-02-28 15:48:44 282

原创 UVA - 10422 - Knights in FEN

好久没有做题了,唉,一晃大学就只有一年了。考研还是保研还是工作,好难确定#include#include#includechar dest[5][5]={{'1','1','1','1','1'},{'0','1','1','1','1'},{'0','0',' ','1','1'},{'0','0','0','0','1'},{'0','0','0','0','0'}};char

2013-02-28 15:44:38 273

原创 IT前辈们的忠告和感悟

不知道是宿舍的网有问题还是我的电脑有问题(这个问题纠结了我一个周末,没有得到解决),反正好些网站(例如acmicpc.info,  note.youdao.com)上不去(我们寝室的其他电脑能上),我插其他宿舍的网,那些网站又能上了。好在能上CSDN,闲话少说,我把《我是一只IT小小鸟》看完了,前辈们精彩的成长历程,让我获益匪浅。我摘抄了书中最精华的部分,现在分享给大家,希望对大家有用。

2012-11-19 17:13:02 549

原创 UVA - 101 - The Blocks Problem

/*测试后提交时忘记去掉测试的输出了。。结果WA了一次总体太说题目不是很难,关键是细心,模拟好每一步。写成一个函数太复杂,分块实现,结构清晰明了*/#include#includeint stack[30][30];int top[30],tag[30];int Search(int n){ int i; for(i=0;i<=top[tag[n]];i++)

2012-10-19 09:17:37 367

原创 UVA - 127 - "Accordian" Patience

题目链接/*注意每次移动后都从头开始!*/#include#include#includeint top[52];char stack[52][52][3];int Match(char a[],char b[]){ if(a[0]==b[0]||a[1]==b[1])return 1; return 0;} int find(int i,int n){

2012-10-19 09:16:32 304

原创 UVA - 10397 - Connect the Campus

题目链接题意是要你用最短的缆绳连接校园里的所有建筑,其本质是一个最小生成树的问题。题目给出的已经安装好的缆绳权值赋零,然后用邻接矩阵存储图,计算各点直接的距离,再用Prim算法求出最小生成树上的所有权值之和即可。#include#include#include#define MAX 2147483647typedef struct no{ int x,y;}Node;

2012-10-18 21:44:22 316

原创 UVA - 10048 - Audiophobia

/*题目比较简单,就是求一条通路上的最小权值。一条通路的权值是这条通路上最大的那个边值题目数据量也比较小,利用邻接矩阵存储数据然后直接FLOYD求通路权值即可。*/#include#include#includeconst int MAX=2147483647;int graph[110][110];int max(int a,int b){ return a>b?a:b;

2012-10-15 22:17:27 427

原创 UVA -10034 - Freckles

题目链接:UVA - 10034由于每两个点都可以直接相连,边比较稠密,用prim算法比较好。邻接矩阵存储图。#include#include#includedouble node[110][2];double graph[110][110];double sum;double lowcost[110];//记录当前集合到各点的最小权值 int nearvex[110];

2012-10-10 21:45:40 301

原创 UVA - 567 - Risk

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=116&page=show_problem&problem=508/*题目比较简单,就是BFS求最短路,使用邻接表存储图。注意根据题目要求输出。*/#include#include#define OUT freopen("

2012-10-09 21:23:44 307

原创 2011福州赛区区域赛 - A - Xiangqi - HDU - 4121

/*好恶心的一道题,说明自己细节考虑得还不够。最恨的就是这种不难的题还做不对。经过7个小时的苦苦检查后,终于找到了错误的地方,棋盘恢复上一状态的时候竟然只恢复了一个点,太傻了!!!改过之后终于AC了。1.需要考虑红子被黑将吃掉的情况。2.考虑飞将军的情况。把能杀掉的点都标记为-1,有棋子的点为1,其余点为0.穷举黑将走的4个方向,若4个方向的标记都为-1(能被杀掉),则被将死,否则将不

2012-10-07 21:24:38 836

原创 2012杭州赛区网络赛 - 1005 - Finding crosses - HDU - 4414

/*暴力DFS+BFS,先DFS求出中心点,中心点的条件是它周围有四个点然后BFS判断是否为十字架,判断条件:'#'数量=4*层数+1自制测试样例:5o#oo#####oo#o#ooo###ooo#o5o#oo####ooo#o#ooo###ooo#o5oo#oooo#oo#####oo#oooo#oo3o#o###o#o0211*/#

2012-09-23 17:00:18 1842 1

原创 2012金华赛区网络赛 - 1004 - A very hard Aoshu problem - HDU - 4403

#include#include#include#include#includeusing namespace std;map hash;char num[50],Left[50],Right[50];char *pright;long long lmax,lmin,rmax,rmin,Scount;long long ATOLL(const char *s){ i

2012-09-22 20:13:55 1063

转载 POJ - 3468 - A Simple Problem with Integers

#includeusing namespace std;struct CNode{ int L,R; CNode *pLeft,*pRight; long long nSum; long long Inc;};CNode Tree[1000000];int nCount=0;int Mid(CNode *pRoot){ return (pRo

2012-09-20 22:06:57 231

转载 POJ - 3321 - Apple Tree

#include#includeusing namespace std;#define MY_MAX 220000int C[MY_MAX];typedef vector VCT_INT;vectorG(MY_MAX/2);int Lowbit[MY_MAX];bool HasApple[MY_MAX/2];int Start[MY_MAX];int End[MY_MAX];

2012-09-20 22:06:23 263

转载 POJ - 2528 - Mayor's posters

#include#include#includeusing namespace std;int n;struct CPost{ int L,R;};CPost posters[10100];int x[20200];//海报的端点瓷砖编号 int hash[10000010];//hash[i]表示瓷砖i所处的离散化后的区间编号 struct CNode{ in

2012-09-20 22:04:42 665

转载 POJ - 1195 - Mobile phones

#includeusing namespace std;#define MY_MAX 1100int Tree[MY_MAX*3][MY_MAX*3];int S;void Add_x(int rooty,int rootx,int L,int R,int x,int a){ Tree[rooty][rootx]+=a; if(L==R)return; int

2012-09-20 22:03:29 246

转载 POJ - 1151 - Atlantis

#include#include#include#includeusing namespace std;double y[210];struct CNode{ int L,R; CNode *pLeft,*pRight; double Len; int Covers;};CNode Tree[1000];struct CLine{ do

2012-09-20 22:02:18 250

原创 UVA - 10603 - Fill

/*白书上有讲解,实现的时候注意细节地方的处理。倒水的代码是重复的。隐式图的BFS应用。题意是输出到达d或最接近d的值d'时的总倒水量以及d或d'注意用vis数组记录已经访问过的状态,由于是BFS搜索,所以每个状态记录的都是其最小倒水量*/#include#include#define ATOB 1#define ATOC 2#define BTOA 3#define BTOC

2012-09-18 22:23:55 319

原创 2012成都赛区网络赛 - 1009 - Buildings - hdu - 4296

#includeusing namespace std;long long sum,lmax,swmax; int main(){ long long N,s,w; int i; while(cin>>N) { sum=0; lmax=0; swmax=0; for(i=0;i<N;i++)

2012-09-16 18:45:06 2360

原创 2012成都赛区网络赛 - 1009 - Food - hdu - 4292

#includeusing namespace std;long long sum,lmax,swmax; int main(){ long long N,s,w; int i; while(cin>>N) { sum=0; lmax=0; swmax=0; for(i=0;i<N;i++)

2012-09-16 18:40:14 63

原创 UVA - 565 - Pizza Anyone?

/*直接按客人喜好进行回溯就可以了,交POJ会WA。POJ貌似不是多解*/#include#include#includechar like[20][100],pizza[50];int vis[20];int n,flag; int DFS(int cur){ int i,j,k; if(flag)return 0; //This sentence is ve

2012-09-12 16:54:31 353

原创 2012天津赛区网络赛 - 1010 - Intelligent IME - HDU - 4287

/*一开始用暴力解决,果断TLE,然后想着建立一棵搜索树即可,一开始因为DEVC的原因,调试时开的是另外一个程序,我竟然没发现,没处理好指针,RE了很多次后来又没注意到7:p,q,r,s WA了一次,改了后终于AC了,耗时3小时。。。 */#include#include#includeint N,M;char number[5001][10],dict[5001][10]; t

2012-09-09 22:19:57 3012 1

原创 UVA - 529 - Addition Chains

/*去uva论坛参考了sohel的回答,利用 当前值*2^最深层数求得此子树的最大值,若最大值都小于N,则直接剪掉该子树。虽然AC时间只有0.020s,但是有些点测试时还是比较慢。*/#include#include#includeint path[20];int n,min,now[20];int DFS(int cur,int value){ int i; i

2012-09-08 22:00:51 338

原创 UVA - 387 - A Puzzling Problem

/*深度思考效果果然不一样,一个小时就完成了所有代码。先统计Puzzle的大小,再递归填充,如果能填满则输出怎样填的.虽然样例过了,但是一直WA。上了论坛也无济于事,题目给出方块是4x4的,这里没有注意到,一开始我还统计方块大小。。。WA了六次后参考别人代码时才找到低级错误,以为最后一块递归完就满足题意了,其实不然,还需要检查一下所有格子是否填满,填满则说明可以拼成正方形。*/#inc

2012-09-06 15:33:41 495

原创 UVA - 185 - Roman Numerals

/*1.转换数字 2.判断罗马等式 3.回溯穷举阿拉伯等式,统计、输出 耗时一天,自己做出来了,很爽。WA了两次,原因:一开始理解错题意,还以为不考虑0Assume that zero will never appear on its own or as a leading digit, and that no two Roman numerals map onto the same Ar

2012-09-02 11:35:19 558

原创 UVA - 10112 - Myacm Triangles

#include#include/*由于数据量较小,利用穷举即可,判断一个点是否在三角形内部时,用面积策略容易实现*/double AcquireS(double x1,double x2,double x3,double y1,double y2,double y3){ return fabs(0.5*((y3 - y1)*(x2 - x1)-(y2 - y1)*(x3 - x1

2012-08-29 21:41:18 315

原创 UVA - 10387 - Billiard

//镜面反射,画画图,找到角度与路程的关系即可得解#include#include#define PI 3.141592653589793238462643383279502884197169399375105820974944592307816406286 int main(){ double a,b,s,m,n; double A,velocity,route;

2012-08-29 21:40:37 349

原创 UVA - 375 - Inscribed Circles and Isosceles Triangles

/*利用角度求解*/#include#include#define MIN 0.000001#define PI 3.141592653589793238462643383279502884197169399375105820974944592307816406286int main(){ double B,H,C,sum,r,a,temp; int i,j,n;

2012-08-29 21:39:01 333

原创 UVA - 579 - ClockHands

#include/*12:00为起点,时针转过角度-分针转过角度即可,处理时注意输出<=180*/int main(){ int H,M; double angle,ha,ma; while(scanf("%d:%d",&H,&M)&&(H!=0||M!=0)) { angle=0; printf("%d:%d\n",H,M);

2012-08-29 21:38:22 237

原创 UVA - 10250 - The Other Two Trees

/*即为已知正方形的对点,求另外两个点,注意精度,float的精度是不够的*/#include#includedouble Dis(double x1,double y1,double x2,double y2){ return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);} int main(){ double ax1,ay1,ax2,ay

2012-08-29 21:37:41 281

数据结构:B-树源代码

实现了严蔚敏版《数据结构》上的B-树,通过千万随机数测试。

2013-01-03

《C++\C_程序员实用大全(精华版)》源代码

《CC++C_程序员实用大全(精华版)》源代码

2011-03-18

空空如也

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

TA关注的人

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