- 博客(10)
- 收藏
- 关注
原创 hdu 1078
<br />#include <stdio.h><br />#include <string.h><br />int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};<br />int n,k,res[102][102],map[102][102];<br />int max(int a,int b)<br />{<br /> return a>b?a:b;<br />}<br />int find(int x,int y)<br />{<br /> if(res[x][y]!=
2011-05-27 19:24:00 465
原创 DP hdu1051
<br />此题的排序是先后按长度l,重量w排序的,以长度l为首要考虑。<br />#include <stdio.h><br />#include <string.h><br />int mark[5010];//标记元素是否扫描过。<br />struct sticks<br />{<br /> int l,w;<br />}stick[5010],change;<br />int main()<br />{<br /> int T,i,n,left,lw,sum,j;<br /> scanf("%d"
2011-05-23 21:36:00 321
原创 Acm 知识点
<br />DP,MST最小生成树,背包(DP),并查集,博弈,串,大数,递推与递归,枚举,模拟,母函数,排序,树,树状数组,数据结构,数论<br />数学题/几何,搜索,贪心,图,线段树,组合,最短路。
2011-05-12 22:39:00 277
原创 最长递减序列与递增序列
<br />求最长递增子序列时即可从最后一个元素开始求最长递减子序列,反一下即可。<br />代码如下:<br />最长递减子序列求法<br />int longest_decreasing_sequence(int a[4000],int n)<br />{<br />int i,j,k,ans,m;<br /><br />ans=0;<br />for(i=1;i<=n;i++)<br />{<br />j=1;<br />k=ans;<br />while(j<=k)<br />{<br />m=(j
2011-05-08 16:19:00 315
原创 二类最长公共字串问题
<br />最长不连续公共字串:<br />#include <stdio.h> <br />#include <string.h><br />int b[50][50];<br />int c[50][50];<br />void lcs(char *x,int m,char *y,int n)<br />{<br /> int i;<br /> int j;<br /> for (i=1;i<=m;i++) c[i][0] = 0;<br /> for (i=1;i<=n;i++) c[0][i] =
2011-05-01 22:19:00 342
原创 hdu 2093 考试排名
<br />误点:认为人数固定,其实是到文件结束为止。<br />注意:输出的格式使用。<br />代码如下:<br />#include <stdio.h><br />#include <string.h><br />struct student<br />{<br /> char name[12];<br /> int time;<br /> int num;<br />}students[1000];<br />int main()<br />{<br /> int i,j,n,m,time1,num
2011-05-01 20:31:00 335
原创 Acm hdu1072 BFS
<br />思路:一开始以为是一道DFS,也很快就写好代码,发现编译后结果错误。发现题目给的第一组数据就不行了,又看了一下,发现我的代码不能实现最优路径,于是又自作聪明地将走过的路径标记掉,又运行了一下,发现第三组数据又不行了,原来我的代码在这组数据就不行了,这样才发现并不是标记掉就行的,有些数据不标记掉能够成功走出,反而标记掉就不能走出来。这时,就要判断了。想了一会,觉得应该用BFS。不过BFS一般要标记走过的点。顿时没了思路。最后,纠结地在网上查了资料。原来确实可以用BFS,只不过这里就不要标记了。只需
2011-04-15 19:21:00 428
原创 Acm BFS
<br />使用STL的队列<br />void BFS()<br />{<br />||首结点入队列Q<br /> while(!Q.empty())<br /> {<br /> temp=Q.front();<br />if(到达目的状态){输出结果;break;}<br />Q.pop();<br /> for(i=1;i<=m;i++)||扩展结点temp的m种可能。<br /> if(可以扩展)<br /> {<br />处理每种可能情况;<br />扩展出结点入队列。<br />
2011-04-13 21:37:00 351
原创 Acm 母函数
<br />版本:<br />#include <iostream><br />using namespace std;<br />const int max=10000;<br />||C1用来存放展开式的系数,而C2则是用来计算时保存的。<br />||它是用下标来控制每一项的位置,比如C2【3】就是X^3系数。<br />||用C1保存,然后在计算时用C2来保存变化的值。<br />int c1[max+1],c2[max+1];<br />int main()<br />{<br /> int n,
2011-04-13 21:24:00 401
原创 Acm hdu1052 田忌赛马
<br />相关代码:<br />#include <stdio.h><br />#include <string.h><br />int str[1010],str1[1010],sum;<br />void program(int i1,int i2,int i3,int i4)<br />{<br /> if(i1-i2==0||i3-i4==0)<br /> {<br /> if(str[i1]>str1[i3])<br /> sum++;<br /> else if(str[i1]<str
2011-04-12 22:15:00 1173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人