自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ3414广搜&回溯

<br />//bfs+回溯#include<iostream>#include<algorithm>#include<queue>#include<stack>using namespace std;int a,b,c;int res;bool visited[110][110];struct node{ int a,b;//1,2中的水 int steps; int flag;//标记经过的操作 node *pre;//上步状态};st

2011-04-13 18:07:00 879

原创 POJ3126Prime Path 基本广搜

<br />#include<iostream>#include<queue>#include<string>#include<stdio.h>#include<ctype.h>#include<stdlib.h>using namespace std;int prime[10000];int visited[10000];int a,b;void Is_Prime()//素数打表{ prime[0]=1;prime[1]=1; for(int i=2;i

2011-04-12 15:31:00 526 1

原创 poj3278基本广搜

<br />#include<iostream>#include<algorithm>#include<queue>#define MAX 100001using namespace std;int N,K;bool map[MAX];struct node{ int x; int steps;};int bfs(){ queue<node> que; node pre; pre.x=N; pre.steps=0; map[pre.x]

2011-04-09 16:10:00 530

原创 POJ1321 深搜

<br />深搜,掌握的不很熟练,递归点老弄不好,加油吧。<br />#include<iostream>using namespace std;char map[8][8];bool rol[8];//标记列是否已放过int n,k;int count;//满足的条件的个数void dfs(int r,int steps){ if(steps==k)//如果已走k步 { count++; return; } if(r>=n) return;//如果越

2011-04-08 23:14:00 587

原创 poj3009深搜最小步数

 本题是用深搜求两点之间的最短路的基本应该,不过形式比较新,起初我用的是广搜,所有数据和discuss上的数据都过了却不能AC,无奈只好求助深搜。广搜的bug可能是并发前进时于障碍物相撞后障碍物消失,可能应该其他步的轨迹。还有就是我原来用的是#include using namespace std;提交居然CE,老说我的min有问题,后来换成#include 就无条件过了&。&还有就是昨天的博文竟然没有发上,狂倒,人品不及会升啊》》》》》》怨妇了这么久,把代码安葬下,甩把鼻涕,继续在搜索的浮云中滚掘轱辘爬—

2011-04-08 16:43:00 5749 4

原创 POJ3083 广搜&模拟

晕死,费了我昨天一晚上和今天零零碎碎的一天就做出来这么一道水题,180行代码,搞得我好纠结。本题要求输出从S到E的最短路,沿左边墙和沿右边墙走的步数。求S到E的最短路用广搜,沿墙走用模拟。因本题中模拟部分让我费尽周折,起初思路不够成熟在急着敲代码,不幸夭折N次,而后仔细理清思路后,终于在N+1次AC。以沿左边墙走为例,介绍下模拟的思路:1、首先设选择方向Ldir[4][2]为左上右下.light为左方,right为右方,front为前方2、从起点出发,找到其相邻的墙,左沿墙能走通,由墙所在的方向为左确定前方

2011-04-06 20:01:00 2154

原创 新年第一题ZOJ Problem Set - 1629

<br />#include<stdio.h>int n,m;int main(){ int i,j,a; while(scanf("%d",&n)!=EOF) { a=1; for(i=2;i<=n;i++) { j=i-1; a=a+(i+1)*i/2+(j+j%2)*((i+1)/2)/2; } printf("%d/n",a); } return 0;}<br />每新增加一行,将该行中的正三角和倒三角分开归纳,

2011-03-06 15:12:00 586

转载 经典博弈(转)

http://blog.csdn.net/bool_isprime/archive/2010/08/10/5801934.aspxpku2234 Matches game!!!!!hdu1846 brave game. if(n%(m+1)==0)n是必败点 !!!!!!pku2484 A Funny Game. if(n>=3)n是必败点 !!!!!!hdu1851 A Simple Game!!!!!!for(i=1,s=0;ihdu1847 GoodLuck in CET-4 Everybody.if

2010-08-15 12:40:00 665

原创 hdu 2540 遮挡判断 (生气版)

<br />为什么这样能过,甚至b/a连double型都用转换<br />#include<iostream>#include<cmath>#include<algorithm>using namespace std;typedef struct{ int x,h;}zhuzi;zhuzi zhu[100010];bool cmp(const zhuzi a,const zhuzi b){ return a.x<b.x;}int main(){

2010-08-15 11:57:00 556

原创 第k个序列,简单数学题(转东山)

<br />输入k后让k--,即把原本的(1,2,…n)视为第0个序列。<br />举例说明我的程序:<br />5 1<br />23<br />k--后为22<br />mark原本全为0,- - - - - (mark从1到5原本都为0)<br />22/4! =0<br />         余22/3! =3<br />                     余4/2! =2<br />                               余0/1! =0<br />          

2010-08-14 20:43:00 468

转载 对ACM初学者的意见及推荐ACMer看的书

<br />一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。<br />下面给个计划练练:   <br />第一阶段:练经典常用算法,下面的每个算法打上十到二十遍,同时自己精简代码。因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.   <br />1.最短路(Floyd、Dijstra,BellmanFord)   <br />2.最小生成树(先写个prim,krusc

2010-07-27 09:03:00 733

原创 HDU1198(不必暴力,并查集应用,0MS)

<br /> Sample Input2 2DKHF3 3ADCFJKIHE-1 -1 Sample Output23//本题和HDU畅通工程类似,只不过畅通工程给出了数的连通关系,//而此题需要自己判断连通关系,即两个水管是否可以连接到一起#include<stdio.h>//记录水管的形状,每种水管用一个由'0'和'1'组成的长度为4的字符串代表,//分别表示上下左右四边是否有接口,'0'无,'1'有char a[11][5]={"1010","1

2010-07-19 14:47:00 2662 6

原创 TJU 3007 D Decoding(精简版)

TJU 3007  DDecodingChip and Dale have devised an encryption method to hide their (written) text messages. They first agree secretly on two numbers that will be used as the number of rows (R) and columns (C) in a matrix. The sender encodes an intermediate f

2010-07-18 08:46:00 1293

原创 HDU1022(精简代码)

HDU1022(经典)描述:和PKU 1363 Rails大同小异,只不过输如车的个数,车的开始顺序,结束顺序,输出能否实现,如能输出过程。#include#includeusing namespace std;int main(){ int n,i,j,k; bool t[1010];//存进出栈情况 char a[1010],b[1010]; while(cin>>n>>a>>b) {

2010-07-17 09:48:00 3285

原创 PKU1050 To the Max(以尽可能短的代码写尽可能高的效率)

PKU1050 To the Max参考资料:题目的意思很简单,在一个矩阵里面找它的子矩阵,使得子矩阵数值之和到达最大。其实就是最大子段和问题在二维空间上的推广。先说一下一维的情况吧:设有数组a0,a1…an,找除其中连续的子段,使它们的和达到最大。假如对于子段:9 2 -16 2  temp[i]表示以ai结尾的子段中的最大子段和。在已知temp[i]的情况下,求temp [i+1]的方法是:如果temp[i]>0 temp [i+1]= temp[i]+ai(继续在前一个子段上加上ai),否则temp[

2010-07-15 18:18:00 630

原创 PKU1664 放苹果

<br />PKU1664 放苹果<br />题意描述:<br />把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。<br />输入:<br />第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。<br />输出:<br />对输入的每组数据M和N,用一行输出相应的K。<br /> <br />#include<stdio.h><br />int digu

2010-07-15 11:14:00 683

原创 第一轮训练总结

第一轮训练结束,自己完成的不太好,20道题到目前只做了17道,还有1664, 1011,1050没过。不过这三天收获也是蛮多的,因和学长毗邻,可谓近水楼台先得月,我从他们那里学到了许多好的方法,请教也比较容易,不用通过网络,直接跨越时空,一摆头就可以问了,嘻嘻,,,,,,,PKU的题味道的确不一般,比较干,水题很少,每做一道都有撑着的感觉,太顶饿了,像我们这些如饥似渴的“狼”们,最需要这样的食物了。刚开始做的时候,自己不注意总结,每做一道题基本上都把代码毁了,向来没有存代码的习惯,都是直接从OJ上找的,可是

2010-07-14 22:07:00 838 2

原创 PKU1013 Counterfeit Dollar

<br /> <br />PKU1013 Counterfeit Dollar<br />描述:12枚金币中有一枚是假币,除重量与真币不同外其它特征均相同,用一个天平每次称相同个数的金币,称三次既能确定假币。金币分别用A~L代表。<br />输入:第一行输入n,表示有n组测试实例,每组测试实例包括三行,每行三个字符串,分别指左边的金币,右边的金币,天平右侧是下降、上升、平衡。<br />输出:代表假金币的字母和假币比真币偏重还是偏轻。<br /> <br />思路:这道题开始的思路是模拟,用一个数组存金币的

2010-07-14 21:07:00 514

转载 使用freopen函数,减少调试时反复输入数据

<br />简述使用freopen的方便之处:把数据存到in.txt中,可以避免重复输入,输出结果不必存入out.txt中,直接打印更方便直观。<br /><br /> <br />当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 <br />        使用freopen函数可以解决测试

2010-07-14 10:04:00 928 1

原创 防超时小技巧

经常在提交代码时会出现超时的情况,尤其是比赛时,超时一次就罚时20分钟,实在让人心疼。为了减少超时的情况出现,可以先将程序运行的时间打印出来和时间限制对比,如果超过时间限制,就不要提交了,要考虑可以进一步完善了。。。。。打印运行时间的最简单方法#include #include int main(){        clock_t start,end;        int i;        start=clock();           ...........//程序         end=cloc

2010-07-13 21:31:00 839 1

原创 PKU1012 Joseph 约瑟夫问题

<br />PKU1012 约瑟夫问题<br />题意:2*k个人围成一个圈,前k个人为好人,后k个人为坏人,要求:每查m个人,并将第m个人杀掉,当杀第一个好人时坏人已全部杀光,输出此时m的值<br /> <br />分析:先引入Joseph递推公式,设有n个人(0,...,n-1),数m,则第i轮出局的人为f(i)=(f(i-1)+m-1)%(n-i+1),f(0)=0;<br />依次我们可以来做测试,只要前k轮中只要有一次f(i)<k则此m不符合题意。<br />接下来我们考察一下只剩下k+1个人时候

2010-07-13 20:50:00 1003 1

原创 PKU1088 滑雪

PKU1088 雪地求高度一直下降的最大长度注:记忆化搜索 #include#includeint dif[4][2]={{0,-1},{0,1},{-1,0},{1,0}};int c,r,len;int Max[101][101],a[101][101]; int find(int i,int j){ int ii,jj,k,max=0; if(Max[i][j]) return Max[i][j];

2010-07-13 14:37:00 393

原创 PKU1008

PKU1008两种日历的相互转换。第一种:一年19个月,1~18月每月20天,第19月5天,每月从0号开始,各月有自己的名称。第二种:一年260天,每天由一个数字和一个名称表示,数字1~13,以13为周期循环,名称共20个,以20为周期循环 #include#include#include#includeint main(){ int n,i,j,days,year; char month[20]; char

2010-07-13 10:32:00 514

原创 PKU1001

<br />PKU1001<br /> <br />求double型数字的n次方,即R^n,其中0.0 < R < 99.999,0 < n <= 25。<br />注:小于0的结果输出时小数点前不输出0;小数点后的多余0不输出<br /><br /><br />#include<stdio.h>#include<string.h>#include<stdlib.h>void Mult(char fal[],char a[],char b[])//大数乘法{ int i,j,len1,l

2010-07-13 10:11:00 1059

原创 大数相乘

<br />void Mult(char fal[],char a[],char b[]){ int i,j,len1,len2,afal[210]; len1=strlen(a); len2=strlen(b); memset(fal,0,sizeof(fal)); memset(afal,0,sizeof(afal)); for(i=len1-1;i>=0;i--) { for(j=len2-1;j>=0;j--) afal[len1+len2-i-j-2]

2010-07-13 08:03:00 442

原创 2010-zzuli暑假集训选拔赛四场总结

<br />四场比赛的题目前已完成19题,还有5道没做。<br /> <br />总的来说,这次选拔赛的题不算难,但陷阱比较多,常常会因为某个细节没有想到而wa;另外有些题自己根本看不懂题意或是误解题意(尤其是英文题),导致无法进行。<br /> <br />一道一道的抠着四套题的过程中,发现除了要掌握较多的算法和技巧之外,还要尽力有自己独特的思路,要多做题,提高代码能力,尤其是字符串处理的题,需要考虑的情况较多,代码能力的要求较高。<br /> <br />有一点不明白:字符串处理时,有些情况标程忽略了,

2010-07-11 22:05:00 475 2

原创 求最长递增子序列的长度

<br />#include<stdio.h> #define N 10001int main() { int a[N],i,j,k,n; while(scanf("%d",&n)!=EOF&&n) { for(i=0;i<n;i++) scanf("%d",a+i); j=0; for(i=1;i<n;i++)

2010-07-11 11:36:00 465

原创 大数相加模板

void fun(char sum[],char a[],char b[]){ int i,j,lena,lenb,len,ls[300]; memset(ls,0,sizeof(ls)); strrev(a);strrev(b); lena=strlen(a); lenb=strlen(b); len=lena for(i=0;i for(;i for(;i for(j=0;j {  if (ls[j]>=10) { ls[j+1]++; ls[j]-=10; } } if (ls[i]>0) i++; 

2010-07-11 09:56:00 524

原创 打炮弹之神奇算法

打导弹Time Limit:1000MS  Memory Limit:65536KTotal Submit:46 Accepted:10 Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都 不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套

2010-07-10 22:05:00 1033

转载 C++ 排序函数 sort(),qsort()的用法【转】

C++ 排序函数 sort(),qsort()的用法想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表:  函数名 功能描述  sort 对给定区间所有元素进行排序  stable_sort 对给定区间所有元素进行稳定排序  partial_sort 对给定区间所有元素部分排序  partial_sort_copy 对给定区间复制并排序  nth_element 找出给定区间的某个位置对应的元素  i

2010-07-06 23:17:00 925

原创 求两个字符串的最长公共子序列的长度(动态规划)

# include# include# define N 1000int str[N+2][N+2];int max(int a,int b){ if(a>=b) return a; else return b;}int main(){ int i,j,la,lb; char str1[N+1],str2[N+1]; while(scanf("%s%s",str1,str2)!=EOF) {  la=strlen(str1);  lb=strlen(str2);  for(i=0;i   str[0][i]

2010-06-29 23:42:00 1703

原创 搜索之广度搜索【迷宫搜索】(输出一条路径)

<br /> #include<stdio.h> nchar map[9][9],m,n; nint stepi[100],stepj[100]; nint flag=0; nint si,sj, di,dj; nint dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; nvoid dfs(int si, int sj,int cnt) n   int i; n   if(si>=n||sj>=m||si<0||sj<0) return; n   if(si==di && sj=

2010-06-11 21:43:00 471

原创 搜索之广度优先【三维迷宫】(判断从一点能否到达另一点,最少走几步)

//迷宫搜索之广度优先【判断是否能从一点到达另一点,能走几步】#include#include#include#include #includeusing namespace std;#define N 11typedef struct{ int x,y,z,steps;}triPoint;char map[N][N][N];int n;triPoint start, end;int dir[6][3]={{1,0,0}, {-1,0,0}, {0,1,0}, {0,-1,0}, {0,0,1}, {0,0

2010-06-10 21:17:00 568

原创 搜索之深度优先【迷宫搜索】(判断是否n步恰好可以到达某点)

//【深度优先,判断是否n步恰好可以到达某点】# include # include # include char map[9][9]; int n,m,t,di,dj; bool escape; int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; void dfs(int si,int sj,int cnt) {    int i,temp;    if(si>n||sj>m||si   if(cnt==t&&si==di&&sj==dj)  {escape=1; ret

2010-06-10 20:30:00 591

原创 六之星

六之星Time Limit:1000MS  Memory Limit:65536KTotal Submit:217 Accepted:43 DescriptionTom每当寂寞的时候就会看天上的星星,有一天他突然想天上的星星是否会有六个星星在一条直线上。To simple the problem,我们把蓝天作为一个n行m列的格子。每个格子里有星星就用“*”表示,没有用“^“表示。你能计算出有六个连续的星星在一条直线上吗?Input首先输入一个整数t,表示有t组例子; 每组例子有两部分组成。 第一部分:两个整

2010-06-10 19:47:00 478 2

Jira的Gadget使用介绍

Jira的Gadget使用介绍Jira的Gadget使用介绍Jira的Gadget使用介绍

2013-09-09

空空如也

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

TA关注的人

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