usaco 5.1.2 Snail Trails
来源:互联网 发布:centos 6.5 squid 编辑:程序博客网 时间:2024/05/16 14:14
/*ID: daniel.20LANG: JAVATASK: snail*/import java.util.*;import java.io.*;class problem2{ StringBuilder sb = new StringBuilder(); long start = System.currentTimeMillis(); int n,b; int arr[][]; int max=-1; int dir[][] = {{0,1},{1,0},{0,-1},{-1,0}}; boolean vis[][]; void solver() throws IOException{ BufferedReader reader = new BufferedReader(new FileReader("snail.in")); String tmp = reader.readLine(); StringTokenizer st = new StringTokenizer(tmp); n=Integer.valueOf(st.nextToken()); b=Integer.valueOf(st.nextToken()); arr=new int[n][n]; vis=new boolean[n][n]; for(int i=0;i<b;i++){ tmp = reader.readLine(); String si = tmp.substring(1); arr[Integer.valueOf(si)-1][tmp.charAt(0)-'A']=1; } vis[0][0] = true; dfs(0,0,1,0); dfs(0,0,1,1); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("snail.out"))); sb.append(max); System.out.println(sb.toString()); System.out.println(); pw.println(sb.toString()); pw.close(); System.out.println("$:"+(System.currentTimeMillis()-start)); System.exit(0); } void dfs(int x, int y, int count, int d){ if(count>max){ //System.out.println(x+" "+y+" "+count); max=count; } int nx=x+dir[d][0]; int ny=y+dir[d][1]; if(nx<0||ny<0||nx>=n||ny>=n||arr[nx][ny]==1){ int tmp[] = new int[2]; if(d==0||d==2) { tmp[0]=3; tmp[1]=1; } else{ tmp[0]=0; tmp[1]=2; } for(int i=0;i<2;i++){ nx = x+dir[tmp[i]][0]; ny = y+dir[tmp[i]][1]; if(nx>=0&&ny>=0&&nx<n&&ny<n&&arr[nx][ny]==0&&!vis[nx][ny]) { vis[nx][ny]=true; dfs(nx,ny,count+1,tmp[i]); vis[nx][ny]=false; } } }else{ if(nx>=0&&ny>=0&&nx<n&&ny<n&&arr[nx][ny]==0&&!vis[nx][ny]) { vis[nx][ny]=true; dfs(nx,ny,count+1,d); vis[nx][ny]=false; } } }}public class snail { public static void main(String[] args) throws Exception { problem2 p = new problem2(); p.solver(); }}
这题是贪吃蛇,但是不知道为什么会放到第五章来,最多第三章的难度了
直接DFS爆搜
0 0
- usaco 5.1.2 Snail Trails
- USACO 5.2 Snail Trails
- usaco snail trails(dfs)
- USACO Snail Trails 解题报告
- [USACO5.2]Snail Trails
- usaco 5.2 Snail Trails(DFS)
- usaco training 5.2.1 Snail Trails 题解
- Snail Trails
- 【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- 【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- JZOJ1315.【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- C++——【USACO 5.2.1】——Snail Trails
- USACO5.2.1 Snail Trails(snail)
- Section 5.2 Snail Trails
- 【题目】[USACO5.2]蜗牛的旅行Snail Trails
- [DFS] 5.2.1 Snail Trails
- USACO 2009 Feb Revamping Trails 道路翻新
- USACO 2009 Feb Gold 3.Revamping Trails
- 复制一棵二叉树的非递归算法
- NSString NSArray NSDictionary NSSet 中的部分方法
- Python实现快速排序
- Mongoose源码分析
- 时间格式的处理
- usaco 5.1.2 Snail Trails
- 不准守规范导致的系统故障
- 按层次顺序(同一层自左至右)遍历二叉树的算法
- linux下apache https 虚拟主机配置
- C Primer Plus第一章学习心得
- Windows XP + Oracle 10g 完全卸载
- js验证日期格式
- 价值连城的macd战法
- [Jsp] 前 Jsp 笔记我也不清楚,留着吧