百练4130:Saving Tang Monk

news/2024/11/2 0:30:35/

英文题目巨烦

紧接着百练4115:鸣人和佐助和百练4116拯救行动的变形

题目连接:http://bailian.openjudge.cn/practice/4130/

#include<iostream>
#include<algorithm>
#include<fstream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
#include<cctype>
#include<vector>
#include<limits.h>
#include<queue>using namespace std;#define N 110int INF=(int)1e10;int dir[4][2]= {{0,1},{1,0},{0,-1},{-1,0}};char s[N][N];   //输入的字符串矩阵
int p[N][N];      //有蛇的位置会显示编号
int mark[N][N][10]; //拿过所有钥匙后的最小时间,11表示的可能就是那9把钥匙吧int n,m,ans;struct mmp
{int x,y,t,id,snake;   //坐标、时间、钥匙、和杀死的蛇bool operator<(const mmp &w) const{return t>w.t;}mmp(int xx,int yy,int tt,int ii,int ss):x(xx),y(yy),t(tt),id(ii),snake(ss) {}
};void bfs(int x,int y)
{int i,h;priority_queue<mmp>q;mmp next= {0,0,0,0,0};q.push(mmp(x,y,0,1,0));mark[x][y][1]=0;while(!q.empty()){mmp cur=q.top();q.pop();if(s[cur.x][cur.y]=='T'&&cur.id==m+1){ans=min(ans,cur.t);continue;}for(i=0; i<4; i++){next.x=cur.x+dir[i][0];next.y=cur.y+dir[i][1];next.t=cur.t+1;next.snake=cur.snake;next.id=cur.id;if(next.x<0||next.x>=n||next.y<0||next.y>=n||s[next.x][next.y]=='#')continue;if(s[next.x][next.y]=='S')  //判断是否杀死过蛇,只杀一次,杀一次时间+1{h=p[next.x][next.y];if((next.snake&(1<<h))==0){next.snake|=(1<<h);next.t++;}}if(next.id==s[next.x][next.y]-'0') //只有前几把钥匙拿到手后才能拿下一把钥匙{next.id++;}if(mark[next.x][next.y][next.id]>next.t) //拿过某一把钥匙后的最小时间{mark[next.x][next.y][next.id]=next.t;q.push(next);}}}
}int main()
{int i,j,k,l,a,b;while(scanf("%d%d",&n,&m)&&!(n==0&&m==0)){memset(p,0,sizeof(p));for(i=0,k=0; i<n; i++){scanf("%s",s[i]);for(j=0; j<n; j++){if(s[i][j]=='K'){a=i;b=j;}if(s[i][j]=='S'){p[i][j]=k++;}for(l=0; l<10; l++){mark[i][j][l]=INF;}}}ans=INF;bfs(a,b);if(ans==INF)printf("impossible\n");elseprintf("%d\n",ans);}return 0;
}

 


http://www.ppmy.cn/news/221955.html

相关文章

Gigabayte-Z87-DS3H i3 4130电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板Gigabayte-Z87-DS3H 处理器英特尔酷睿i3 4130 Haswell已驱动 内存4x4GB DDR3/1600Mhz金士顿已驱动 硬盘SSD 480GB PNY CS900已驱动 显卡英特尔高…

[jzoj 1214] [luogu 4130] [NOI2007]项链工厂 {线段树}

题目 https://www.luogu.org/problemnew/show/P4130 解题思路 S p l a y 不 会 \color{red}Splay不会 Splay不会&#xff0c;那就正经的打线段树。 这道题目的后4问&#xff0c;就是纯正的线段树。 对于前两问&#xff0c;其实只是改变了每一个端点的位置&#xff0c;但没有改…

二分查找 ZOJ4130

ZOJ4130 题目链接在此&#xff01; 题目大意&#xff1a; 关灯问题。 总共n个灯&#xff0c;然后给状态&#xff0c;一次能关掉连续的m个灯。 关灯k次就能成功&#xff0c;问最少的m。 注意&#xff01;不是改变状态&#xff01;是关掉&#xff01;0不会重新变成1的。 题目…

zoj 4130(The 16th Zhejiang Provincial Collegiate Programming Contest D)(思维)

传送门&#xff1a; 题意&#xff1a; 你现在有nnn个点&#xff0c;对于第iii个点&#xff0c;可以到达第i−1i-1i−1、2∗i2*i2∗i、2∗(i1)2*(i1)2∗(i1)、⌊i2⌋\left \lfloor \frac{i}{2} \right \rfloor⌊2i​⌋号点。现在问你从111号点开始的哈密顿路径。 分析&#xff1…

ZOJ -4130 Turn It Off

题目描述&#xff1a; Its already 21:30 now, and its time for BaoBao to go to bed. To ensure his sleeping quality, BaoBao decides to turn all the lights in his bedroom off. There are n lights, numbered from 1 to n, arranged in a row in BaoBaos bedroom. Ea…

“同档位无对手”的荣耀90系列,有哪些厉害的能力?

5 月 29 日&#xff0c;荣耀90系列正式发布。该系列包括荣耀90 Pro与荣耀90两款机型。 这两款机型都有哪些厉害的能力&#xff1f; 一、赵明&#xff1a;荣耀90系列“同档位无对手” 发布会在天府之国的成都市举行&#xff0c;这个以时尚和美食著称的城市&#xff0c;近年来…

P4130或JZOJ 1214. 【NOI2007】项链工厂

D e s c r i p t i o n Description Description 写一种数据结构&#xff0c;支持区间染色&#xff0c;区间翻转&#xff0c;区间旋转&#xff0c;区间查询颜色&#xff0c;单点修改颜色 对 于 100 % 的 数 据 &#xff0c; N ≤ 500000 &#xff0c; Q ≤ 500000 &#xff0…

P4130,jzoj1214-[NOI2007]项链工厂【线段树】

正题 题目链接:https://www.luogu.org/problemnew/show/P4130 题目大意 一个环形颜色珠子链&#xff0c;位置(注意不是上面的珠子)从最上顺时针下来位置依次标号 1 ∼ n 1\sim n 1∼n。 然后要求支持以下操作 R k : R\ k: R k:将所有珠子顺时针旋转 k k k个。 F : F: F:将所…