首页 > 其他分享 >P1699 [USACO19OPEN] Bucket Brigade B

P1699 [USACO19OPEN] Bucket Brigade B

时间:2024-01-30 18:33:06浏览次数:26  
标签:return USACO19OPEN ty int Bucket P1699 ey mp ans

题目大意

给一个 \(10 × 10\) 字符串矩阵,求从 \(L\) 开始(不经过 \(R\) )到 \(B\) 的短路径。

思路

这道题因为是求最短,所以用 \(DFS\) 比较麻烦,于是我用的是 \(BFS\) 做。遇到障碍则跳过,到终点直接退出就行了。

code

#include<iostream>
using namespace std;
struct node{int x,y,from;}c[10000009];
char mp[100][100];
int way[10000009][2];
int xx[4]={0,1,0,-1},yy[4]={1,0,-1,0},n,m,ex,ey,ans;
int same(int x,int y,int k){//判重
	ans=0;
	while(k!=-1){
		if(x==c[k].x&&y==c[k].y){return 1;}
		k=c[k].from;
		++ans;
	}	
	return 0;
}

void bfs(){
	int cl=1,op=1;
	while(cl<=op){
		for(int i=0;i<4;++i){
			int tx=c[cl].x+xx[i],ty=c[cl].y+yy[i];
			if(tx<1||ty<1||tx>10||ty>10||mp[tx][ty]=='R'||same(tx,ty,cl)) continue;
			if(tx==ex&&ty==ey){cout<<ans-1<<endl;return ;}
			c[++op].x=tx;
			c[op].y=ty;
			c[op].from=cl;
		}
		++cl;
	}
}
int main(){
	for(int i=1;i<=10;++i)
		for(int j=1;j<=10;++j){
			cin>>mp[i][j];
			if(mp[i][j]=='L'){c[1].x=i,c[1].y=j;c[1].from=-1;}
			if(mp[i][j]=='B'){ex=i,ey=j;}
		}
	bfs();
	return 0;
}	

标签:return,USACO19OPEN,ty,int,Bucket,P1699,ey,mp,ans
From: https://www.cnblogs.com/wenzhihao2023/p/17997731

相关文章

  • Atlassian 停服 Bitbucket?三步快速迁移至极狐GitLab
    之前的文章Jira母公司全面停服Server产品,用户如何迁移至极狐GitLab提到了Atlassian将在2月15日以后停止对Server端产品的服务支持,此后用户将无法像之前一样继续使用Jira、Bitbucket、Bamboo、Confluence这些产品了。如果用户想要继续使用这些产品,就需要迁移到Atlass......
  • ES--DSL实现Bucket聚合语法
    语法如下:GET /hotel/_search{  "size": 0,  // 设置size为0,结果中不包含文档,只包含聚合结果  "aggs": { // 定义聚合    "brandAgg": { //给聚合起个名字      "terms": { // 聚合的类型,按照品牌值聚合,所以选择term        "field": "brand"......
  • [emerg] could not build server_names_hash, you should increase server_names_hash
    解决nginx报错nginx:[emerg]couldnotbuildserver_names_hash,youshouldincreaseserver_names_hash_bucket_size:32nginx:configurationfilexxxx/conf/nginx.conftestfailed报错原因该报错产生的原因主要是因为Nginx中的server配置中server_name的定义值过长......
  • Bitbucket克隆私有仓库密码报错问题
    使用gitclone克隆私有仓库的时候提示输入密码,输入登陆密码之后报错。这是因为Bitbucket要单独设置Apppassword才能使用gitclone命令,登陆密码仅用于登陆。方法就是Personalsettings这里设置一个Apppassword......
  • 火山引擎 LAS Spark 升级:揭秘 Bucket 优化技术
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群文章介绍了Bucket优化技术及其在实际业务中的应用,包括SparkBucket的基本原理,重点阐述了火山引擎湖仓一体分析服务LAS(下文以LAS指代)Spark对Bucket优化的功能增强,实现了Bucket易......
  • DSL实现Bucket聚合
           ......
  • ES中reverse_nested+sum+bucket_sort
    记一次嵌套sum聚合的排序DSL场景:根据nested_gs2Entity.kw_entity聚合,filter对聚合结果过滤类型是产品,实体是需要关心的产品列表,在结果中sum互动量long_interaction,和花费long_paidPrice然后在结果中根据sum的结果排序{"aggregations":{"agg_entity_a":{"aggre......
  • 4 bitbucket和jenkins 自动化构建
    1  jenkins安装插件 BuildAuthorizationTokenRootPlugin2jenkins创建用户和api 3设置项目的触发器,令牌是随意写的 4拼写urlhttp://用户名:用户[email protected]/jenkins/view/test/job/test//build?token=触发器的令牌我的http://admin:11fd92......
  • 【OSS】使用java-sdk上传文件失败,报错InvalidBucketName,BucketName是文件名
    【OSS】使用java-sdk上传文件失败,报错InvalidBucketName,BucketName是文件名背景:aliyun-sdk-ossV2.8.3排查过程:使用javasdk报错invalidbucketname,查看bucketname字段被设置为了文件名问题原因当前java-sdk版本是v2.8.3,需要更新版本。初始化client时关闭cnameco......
  • 获取Bucket网址和key
        ......