usaco snail trails(dfs)
dfs啊,我还写了好长时间,一天不如一天。
/*
ID:jinbo wu
TASK: snail
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
char a[150][150];
int dir[4][2]={0,1,1,0,0,-1,-1,0};
bool vis[150][150];
int n,m;
int dfs(int x,int y,int d)
{int dx=x+dir[d][0];int dy=y+dir[d][1];vis[x][y]=1;if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&vis[dx][dy]==1){vis[x][y]=0;return 1;}else if(dx>n||dx<1||dy>n||dy<1||a[dx][dy]=='#'){int t=(d+1)%4;int tx=x+dir[t][0];int ty=y+dir[t][1];int tmp1=0;int tmp2=0;if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&!vis[tx][ty]&&a[tx][ty]!='#')tmp1=dfs(tx,ty,t);t=(d+3)%4;tx=x+dir[t][0];ty=y+dir[t][1];if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&!vis[tx][ty]&&a[tx][ty]!='#')tmp2=dfs(tx,ty,t);int ans=max(tmp1,tmp2);vis[x][y]=0;return ans+1; }int tmp=dfs(dx,dy,d);//开市就错在这里我先把vis=0后在dfs的明显不行。vis[x][y]=0;return 1+tmp;
}
int main()
{freopen("snail.in","r",stdin);freopen("snail.out","w",stdout);cin>>n>>m;char c;int b;for(int i=0;i<m;i++){getchar();scanf("%c%d",&c,&b);a[b][c-'A'+1]='#';}int tmp1=dfs(1,1,0);int tmp2=dfs(1,1,1);cout<<max(tmp1,tmp2)<<endl;}
usaco snail trails(dfs)相关推荐
- usaco Snail Trails
N没有给数据范围是这题最恶心的地方,因为这个wa了有点恶心. /* ID: modengd1 PROG: snail LANG: C++ */ #include <iostream> #i ...
- HDU-4277USACO ORZ深搜+set去重
USACO ORZ(DFS+set去重) 链接 2.题目描述 Like everyone, cows enjoy variety. Their current fancy is new shapes ...
- [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...
- usaco shuttle puzzle(dfs剪枝)
这题一看我也以为找规律,然后无法下手之后又想到bfs最后看题解是用dfs大神dfs用的出神入化. 不过这题好像可以找规律. /* ID:jinbo wu TASK: shuttle LANG:C++ ...
- usaco street race(dfs)
一开始我觉得很麻烦但第一题好做由于数据较小直接每个点删后dfs就可以了,第二问我不知道如何判断有没有公共的道路,最后看别人的也挺简单的就是看分别从两条公路的起点开始dfs如果他们能到达同一点就代表有公 ...
- Riding the Fences USACO 3.3 欧拉路径(dfs+floodfill)
额,我是直接dfs的思路,但是到case 5过不去了,感觉是太慢了.然后网上看题解,题目原型就是欧拉路径, 欧拉路径存在的条件是 要么点的度都是偶数,要么只有两个点的度是奇数.如果是两个点的度是奇数, ...
- USACO 2.1 健康的好斯坦奶牛 (DFS)
Description 农民JOHN以拥有世界上最健康的奶牛为骄傲.他知道每种饲料中所包含的的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持他们的健康,使喂给牛的饲料的种数最少. 给出牛 ...
- BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap
题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...
- SSL 1108——【USACO 2.1】海明码(DFS)
Description 给出 N,B 和 D:找出 N 个编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位的& ...
最新文章
- Java的CountDownLatch和CyclicBarrier的理解和区别
- utf8汉字编码16进制对照(转载)
- CentOS7 配置Supervisor开机启动
- python【力扣LeetCode算法题库】面试题57 - II-和为s的连续正数序列(滑动窗口)
- 【运筹学】运输规划 ( 运输规划基变量个数分析 )
- 文字检测与识别资料整理
- 汕头市队赛 SRM16 T2
- nodejs 写c++插件的实例
- spring boot2 kafka
- 专科python应届生工资多少-应届生自学Python两个月,为什么找不到工作?
- laravel 社会化(联合)登录扩展包(QQ、微信、微博等)
- Python(PyCharm)的下载安装汉化(2022)
- Appium原理分析
- 诱导系统服务器,交通诱导及信息发布系统
- Kubernetes K8S之affinity亲和性与反亲和性详解与示例
- 由于改 UOM conversion 导致库存数量和财务上的数据错误
- 核心概念——节点分组 Combo
- [学习笔记]导数与定积分简单入门
- java微信签名什么意思,java,_求java实现微信签名,java - phpStudy
- java的JVM虚拟机相关知识,简单易懂。