这个比赛我就会做第一个水题(o(╥﹏╥)o)

学术版

@[mzm0917](/user/708997) 有点好奇,它的 $\bmod p$ 意义下的除法是怎么进行的,$p$ 甚至不是质数。
by Usada_Pekora @ 2023-03-23 21:20:26


@[Usada_Pekora](/user/434929) 我也不知道啊,我从小语文学的就不太好 我第一题昨完直接就做的T4
by jlwz @ 2023-03-23 21:25:05


@[mzm0917](/user/708997) 不是,$\bmod$ 一个非质数的除法是没有意义的。 可以学习一下乘法逆元。
by Usada_Pekora @ 2023-03-23 21:28:22


@[Usada_Pekora](/user/434929) 好的 不过最后一个题我还是没有做出来 下面是我的代码,有点长 ```cpp #include<bits/stdc++.h> using namespace std; int n=1,m=1,qx,qy; char ch[666][666]; bool vis[666][666]; int dir[4][2]={{0,1},{0,-1},{-1,0},{1,0}}; struct node{ int x,y,step; node(int xx,int yy,int s) { x=xx;y=yy;step=s; } }; int ans=-12; int flag=1; void bfs(int i,int j) { queue<node> q; memset(vis,0,sizeof(vis)); q.push(node(i,j,1)); vis[i][j]=1; int head=0,tail=1; while(q.empty()==0) { if(ch[q.front().x][q.front().y]=='E') { if(q.front().step-1>ans) { ans=q.front().step-1; if(flag==0) { flag=2; return ; } flag=0; } memset(vis,0,sizeof(vis)); q.pop(); if(q.empty()==1) return ; } for(int i=0;i<4;i++) { int x0=dir[i][0]+q.front().x; int y0=dir[i][1]+q.front().y; if(x0>=0&&y0>=0&&x0<n&&y0<m&&vis[x0][y0]==0&&ch[x0][y0]!='#') { vis[x0][y0]=1; q.push(node(x0,y0,q.front().step+1)); } } q.pop(); } } void init(int n,int m) { for(int i=0;i<n;i++) for(int j=0;j<m;j++) { cin>>ch[i][j]; if(ch[i][j]=='S') { qx=i; qy=j; } } bfs(qx,qy); } int main() { cin>>n>>m; init(n,m); if(flag==2) cout<<ans<<endl; else cout<<-1<<endl; return 0; }
by jlwz @ 2023-03-23 21:30:45


|