- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 zoj_1642
<br /> <br /> 跟最长公共字串差不多,<br /> <br /> #include<iostream>#include<string.h>#include<string>#define MAX 2008using namespace std;int n;int score[256];int mark[MAX][MAX];int main(){ int i,c,j,lx,ly,maxc; char ch; stri
2011-04-05 20:20:00
348
原创 zoj_1108 Fatmouse's Speed
Dp,先将体重排序,之后就是求速度的最长递增或递减子序列了。 可以优化 #includeusing namespace std;struct node{ int n; int weight; int speed;}mouse[1001];int mark[1001];int parent[1001];int watch[1001];int quicksort(int i,int j){ int x=mous
2011-04-05 16:47:00
347
原创 zoj1457_Prime Ring Problem
<br /> <br /> 用了dfs非递归,略感复杂,用时居然400多MS,悲催。<br /> <br /> #include<iostream>#include<stdio.h>#include<math.h>using namespace std;#define MAX 21int mark[MAX];int judge[MAX][MAX];int stack[1000];int n;bool prime(int x){ if(x
2011-03-26 00:50:00
381
原创 zoj1694_Shredding Company
<br /> <br /> 英文很长,不过是简单题<br /> <br /> #include<iostream>#include<string,h>using namespace std;int target,sheet;bool judge[6];int part[6];int mark[6];int pos,mypos;int sum; //记录分段数相加之和int k; //记录查找状态int size;//记录分段数的位数in
2011-03-24 21:20:00
541
原创 zoj2050_fipgame
<br /> <br /> 来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1050<br /> <br /> 本题用了深度优先,还是递归,耗时90MS,不是个好方法,比较好的应该是如<br />网上所说的用BFS,位运算,<br /> <br /> #include<iostream>#include<string.h>using namespace std;int N;int s
2011-03-18 13:21:00
403
原创 zoj1438_三维迷宫
<br /> <br /> 简单的广度优先算法,跟二维差不多,可是提交上去居然WA,原来输入<br />是目标是先列,行,层,所以参数换一下位置就OK了。<br /> <br />#include<iostream>#include<string.h>using namespace std;#define MAX 12char space[MAX][MAX][MAX];int mark[MAX][MAX][MAX];int num;int queue[
2011-03-16 23:30:00
341
原创 zoj1002_FireNet(贪心法)
一开始就感觉跟八皇后问题很相像,据说这些一般都是用搜索做的。一开始我也尝试从这个角度入手,但想到n最大为4,也就是说搜索树一层最多有16个分支(如果不剪枝的话)。感觉有点复杂,也不太懂怎么做。 后来想了想好想可以用贪心法。思路是:找出每一个点(可放碉堡),并计算它能覆盖的面积,用cover表示,然后按照cover的大小排序,逐个地放进原来的矩阵中,过程中要经过检验是否能当。和prim类似。 网上有人说他用这种方法WA了,可我的居然AC了。#include#include
2011-03-15 00:59:00
495
原创 zoj1649_Rescue
#include #include using namespace std; #define MAX 202 struct node { int i; int j; }; int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; int martic[MAX][MAX]; int mark[MAX][MAX]; node queue[40004]; int bfs(int x,int y,int a,int b) { if(x==a&&y==b) return 0; node t
2011-03-13 15:56:00
454
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人