自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(36)
  • 收藏
  • 关注

原创 poj 2153 Rank List

#include#include#include//#include//#include#includeusing namespace std;int sc;int main(){ int n, i, j, m, mi, r; char name

2011-07-31 20:09:12 554

原创 poj 2971 Give Me the Number

#include#includechar codes[][15]={"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "t

2011-07-31 19:09:25 541

原创 zoj 3432 Find the Lost Sock

#includeint main(){ int n,i,j; char str[8],str1[8]; while(scanf("%d",&n)!=EOF) { getchar(); if(n==0)

2011-07-31 17:49:37 479

原创 zoj 2851 Code Formatter

/* 这题没啥难度,但是做的很郁闷 之前的题说以“##”为结束标志,该行无效; 一般没有以“##”开始的有效行,所以一直用s[0]=='#'&&s[1]=='#'为判断标志 今儿载他手里了,还就有以“##”开始的数据行 以后规范点儿吧*/#include#incl

2011-07-31 17:32:38 720

原创 poj 1572 Automatic Editing 字符串

/* 很简单一题,但是因为英语不好,没过(老是超时)*/#include#includestruct node{ char s1[100],s2[100];}q[11];char s[300];void cao(char *p,int i)//原先用string

2011-07-30 18:27:08 454

原创 hdu 1175 连连看

/* 广搜记录到这点拐了几个弯*/#include#includeusing namespace std;struct node{ int x,y;};int dir[4][2]={-1,0, 0,-1, 1,0, 0,1};int n,m,num,s

2011-07-30 09:33:45 284

原创 poj 1256 Anagram

#include#include#includechar a[20];int len;int cmp(const void *a,const void *b)//排序用{ int c,d; char e=*(char *)a,f=*(char *)b; if(e

2011-07-29 11:03:18 454

原创 hdu 1027 Ignatius and the Princess II 全排列

#includeint a[1100];void permutation(int n){ int i,j,k; for(i=n-1;1;i--) if(a[i-1]<a[i])//从后边开始找到第一个比它后面的树小的数 break; j=i-1; for(i=n-1;1;i--) if(a[i]>=a[j])//从后边开始找到不比a[j]小的数 break; k

2011-07-28 20:31:08 457

原创 poj 3083 Children of the Candy Corn

/*这题深搜和广搜都用到了广搜比较简单深搜的时候要注意是左优先还是右优先,还有就是当前的朝向(当前朝向的不同,导致对当前的左和右的方向不同)对本代码来说:d1[4][2]={0,-1, -1,0, 0,1, 1,0}是左优先

2011-07-28 09:20:36 364

原创 hdu1426 Sudoku Killer 深搜

#includeint map[9][9],kong[90][2],kn;int ci=0,f;int he(int i,int j,int k)//判断能填k不能{ int o,p,oo,pp; for(o=0;o<9;o++) if(map[i][o]==k)

2011-07-27 11:16:04 719

原创 hdu1241 Oil Deposits 同poj 2386 Lake Counting

所给实例的“5 5 ”第二个5后还有一个空格,测试的时候出错,但后台数据没有那个空格,可以过#include#includeusing namespace std;struct node{ int x,y;};char map[100][100];int n,m;

2011-07-27 09:45:46 575

原创 poj 1664 放苹果

#includeint f(int x,int y){ if(x<y) y=x;//若苹果数少于盘子数,x个苹果顶多用到x个盘子(种类和用y个盘子一样),,其他的必为空 if(x==0) return 1;//无苹果可放时,只有空一种情况 if(y==1) return 1;//只有一个盘子时,一种情况 return f(x,y-1)+f(x-y,y);//此时x>=y;可分为两种情况

2011-07-27 09:22:55 297

原创 poj 2386 Lake Counting

找到W就从这儿开始广搜,把能连接的W赋成点,广搜到头后,在找W,再广搜,看能广搜几次#include#includeusing namespace std;struct node{ int x,y;};char map[100][100];int n,m;int

2011-07-27 08:58:06 815 2

原创 poj 1731 Orders

用T[m,n]表示对字符串t从下标为m到n之间的部分进行全排列,则T[m,n]可以如下实现:用t[m]先分别与t[m…n]交换,每交换一次后对从下标为m+1到n之间的部分进行全排列开一个二维数组visited[][]来记录交换的历史,比如visited[a[m]-‘a’][a[n

2011-07-26 16:50:41 657

原创 poj 2182 Lost Cows

这题咋分到搜索里边了,看半天也没看出咋搜还有以前的方法#includeint a[8500];int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<n;i++) scanf("%d",&a[i]); a[0]=0;

2011-07-26 14:15:10 314

原创 poj 1129 Channel Allocation

/*类似于图的端点涂色问题,顶多四色,依次试试深搜,依次给每个点涂色*/#include#includeint n,i,color[30];int map[30][30];int he(int j,int k)//判断j涂k苦涩是否合适{ int l; fo

2011-07-26 13:08:30 343

原创 poj 3185 The Water Bowls

/*深搜*/#includeint cur,i;void fan(int j){ cur^=1<<j; if((j-1)>=0) cur^=1<<(j-1); if((j+1)<20) cur^=1<<(j+1);}int dfs(int j,int step){ if(step==i)//是否一番转个次数 return cur==0?1:0; if(j>=

2011-07-26 11:10:30 590

原创 poj 1915 Knight Moves

/* 简单的广搜,不要犯错就行了*/#include#includeusing namespace std;struct node{ int x,y;};int sx,sy,dx,dy,n;int vis[301][301];int dir[8][2]={

2011-07-26 09:00:47 384

原创 hdu 1010 Tempter of the Bone

/*深搜:郁闷,又把“n*m”写成了“n*n”WA好几次*/#include#includechar map[10][10];int dx,dy,f,t,n,m;int dir[4][2]={0,1, 1,0, -1,0, 0,-1};void dfs(int x,int y,i

2011-07-25 20:52:32 334

原创 hdu 1253 胜利大逃亡

#include#includestruct node{ int x,y,z;};int map[55][55][55],vis[55][55][55],ff;//map[]存地图,vis[i]存走到这儿用了多少步,-1表示还没走过int d[6][3]={1,0,

2011-07-25 17:31:05 662

原创 poj 1753 Flip Game

/*广搜:本代码用到位运算{ ^是异或运算,即二进制对应位上:相同为0,不同为1; 所以要使1010(2)中的右数第一个1变为0,和0010(2)异或即可; 所以a^(1<<i)可以使a的第i位变反 令黑棋为1,则全黑是65535,全白是0 从输入的状态开始广搜}

2011-07-25 09:53:15 311

原创 poj 1182 食物链 并查集

/*和一个城市两个帮差不多,那个是只有两个状态,这道题成三个了找一下合并集合的时候的公式就行了本代码中:rel[i]表示i的等级,集合根的等级是0,2级可以吃1级,1级吃0级,0级吃2级*/#includeint ji[50010],rel[50010];int root(int x){ int t; if(x==ji[x]) return x; t=ji[x]; ji

2011-07-24 17:32:09 321

原创 poj 1703 Find them, Catch them 并查集

/*将敌人和朋友并到一个集合中,用另外一个数组(rel[i])存放i和集合代表元素(就是ji[i]中存的)的关系。如果两个元素不在统一集合内,说明他们关系不清楚;如果两个元素在同一个集合内: 1.他们和集合代表元素的关系相同,他们则是朋友 2.不同

2011-07-24 10:13:12 812 1

原创 poj 2379 ACM Rank Table

很简单的一道题,让我WA了n次,没想到给的数据还可以是不安时间先后的,搞得都没兴趣了,代码很乱,懒得改了#include#include#includestruct team{ int no,time,sol,cuo[25];}t[1010];struct ti{

2011-07-23 17:46:27 1198

原创 hdu 1272 小希的迷宫 并查集

#includeint vis[100010],ji[100010];int f;int root(int a){ while(ji[a]!=a) a=ji[a]; return a;}void bing(int a,int b){ int aa,bb;

2011-07-23 12:58:52 396

原创 zzuli 1208 二叉树(1)

#include#includetypedef struct tree{ char c; struct tree *l,*r;}t,*lt;char s[1010];int i=0;lt h;lt sol(){ lt cur=(lt)malloc(size

2011-07-23 11:01:25 427

原创 zzuli 1209 二叉树(2)

#include#includetypedef struct tree{ char c; struct tree *l,*r;}t,*lt;char s[1010];int i=0,shen,mshen;lt h;lt sol(){ lt cur=(lt)

2011-07-23 11:00:32 381

原创 zzuli 1210 二叉树(3) 用线索化二叉树和中跟输出两种方法

我先用的是把中跟输出的结果放到数组里,然后输出它的前面的和后面的#include#includetypedef struct tree{ char c; struct tree *l,*r;}t,*lt;char s[10100];int i=0;lt h;l

2011-07-23 09:35:49 618

原创 poj 1250 Tanning Salon 和hotel一样

#include#includeint main(){ int ss[30];//带表人物状态,0-该人不在这儿,1该人已入住,-1人满了没入住在这里等待 int chu,zhu,n,i; char s[1000]; while(scanf("%d",&n),n)

2011-07-22 13:10:16 387

原创 独木舟上的旅行 贪心

试图让最重的和最轻的同坐一条船,不行的话,只能最重的独用一条船#include#includeint per[330];int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int mai

2011-07-22 11:17:08 403

原创 矩形嵌套 DP

原先没看出来,后来发现和议题很像,都是胴体规划,那题是给你一些点的坐标,找到最多的点连成的显示单调的#include#includestruct asd{ int a,b,c;}ju[1010];int cmp(const void *a,const void *b)

2011-07-22 11:14:33 385

原创 poj 1423 Big Number

求n!有个公式把n!对10求对数,向上取整就得到位数了#include#includedouble p=acos((double)-1),e=exp((double)1);int main(){ int n,z; double a; scanf("%d",&n); while(n--) { scanf("%d",&z); a=0.5*log10(2*z

2011-07-22 09:00:19 425

原创 poj 2023 Choose Your Own Adventure 用队列广搜 用栈深搜 用递归深搜 三种方法均测试过

题目大意:输入一个整数n,表示有n组测试数据,每组第一行输入一个整数x表示该组测试一共有x页,接下来输入x行,每行表示一页,每页或者以C开头,或者以E开头,中间用引号括起一段文字,注意第一行必须以C开头,以C开头的末尾输入两个数字a,b表示该页完后可以跳转到第a页或第b页,以E开

2011-07-21 11:01:27 1281

原创 poj 1035 Spell checker

先给一个词典然后给单词,错的单词通过改、增、删一个字母,输出正确的单词#include#includechar word[10010][20],s[20];int ha(int i,char *p){ int j,k; int l=strlen(word[i]),le

2011-07-21 08:45:52 353

原创 poj 3292 Semi-prime H-numbers

#includechar n[250010]={0};int num[250010];void f(){ int i,j; for(i=1;i<=251;++i) { if(!n[i]) { /* a,b是素数,a*b=c,则c是和数, 故(4

2011-07-20 21:12:28 381

原创 POJ 2236 Wireless Network

是一道简单的并查集的题,把所有在最大距离范围内的、修好的电脑并到一个集合里,然后根据查找的两台电脑是否在同一集合里判断能否连接上。结果错把z打成x,昨天一直没发现,今天改代码的时候次发现。手误害死人啊。#includestruct hjkhk{ int t,x,y,z;//

2011-07-20 13:13:02 400

空空如也

空空如也

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

TA关注的人

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