• 个人简介

    2024绍兴小学T4淘金者标准代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int MN=2005;
    int n,m,X,Y,u[MN][MN],d[MN][MN],fr,ba,qx[MN*MN],qy[MN*MN];
    char a[MN][MN];
    bool vis[MN][MN];
    inline bool check(int M)
    {
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			vis[i][j]=0;
    	fr=ba=0;
    	qx[0]=n,qy[0]=1;
    	vis[n][1]=1;
    	while(fr<=ba)
    	{
    		int x=qx[fr],y=qy[fr++];
    		if(x==X&&y==Y)
    			return 1;
    		if(a[x][y-1]=='X'&&!vis[x][y-1])
    			qx[++ba]=x,qy[ba]=y-1,vis[x][y-1]=1;
    		if(a[x][y+1]=='X'&&!vis[x][y+1])
    			qx[++ba]=x,qy[ba]=y+1,vis[x][y+1]=1;
    		if(u[x][y]&&x-u[x][y]<=M&&!vis[u[x][y]][y])
    			qx[++ba]=u[x][y],qy[ba]=y,vis[u[x][y]][y]=1;
    		if(d[x][y]&&d[x][y]-x<=M&&!vis[d[x][y]][y])
    			qx[++ba]=d[x][y],qy[ba]=y,vis[d[x][y]][y]=1;
    	}
    	return 0;
    }
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    		scanf("%s",a[i]+1);
    	scanf("%d%d",&X,&Y);
    	X++,Y++;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			if(a[i-1][j]=='X')
    				u[i][j]=i-1;
    			else
    				u[i][j]=u[i-1][j];
    	for(int i=n;i;i--)
    		for(int j=1;j<=m;j++)
    			if(a[i+1][j]=='X')
    				d[i][j]=i+1;
    			else
    				d[i][j]=d[i+1][j];
    	int L=-1,R=n,M;
    	while(L+1<R)
    	{
    		M=(L+R)>>1;
    		if(check(M))
    			R=M;
    		else
    			L=M;
    	}
    	printf("%d\n",R);
    	return 0;
    }
    

    我的洛谷

    经过我缜密的计算, 得出这组蕴含宇宙真谛的代码,不要泄露给别人看,自己运行就行了!!!

    #include <bits/stdc++.h>
    using namespace std;
    signed main(){
    	long long a[11] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55};
    	long long b[11] = {0, 0, 0, 2, 2, 4, 6, 10, 16, 26, 42};
    	long long c[11] = {0, 7, 6, -3, 8, -26, -21, -10, -46, -63, -106};
    	long long d[11] = {0, 90, 89, 83, 95, 65, 76, 95, 73, 79, 73};
    	long long sum = 0;
    	for(int i = 1; i <= 10; ++ i)  sum += d[i];
    	sum = (sum % 10 ? sum / 10 + 1 : sum / 10);
    	for(int i = 1; i <= 10; ++ i) d[i] = sum + (a[i] << 2) + (b[i] << 4) + c[i] - (a[i] + (a[i] << 1)) - (b[i] + (b[i] << 3) + (b[i] << 2) + (b[i] << 1));
    	for(int i = 1; i <= 10; ++ i) {
    		if(i==2)d[i]=108-32;
    		if(i==3)d[i]=116-32;
    		cout << char(d[i]);
    	}	
     	return 0;
    }
    
  • 最近活动

    This person is lazy and didn't join any contests or homework.
  • 最近编写的题解

    This person is lazy and didn't write any solutions.