zoukankan      html  css  js  c++  java
  • URAL 1287 Mars Canals

    URAL 1287

    思路:dp水题,四个方向转移,题目卡了内存,应该只能这么写。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mem(a,b) memset(a,b,sizeof(a))
    
    const int N=1405;
    char mp[N][N];
    int dp[N][N][2][4];
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>(mp[i]+1);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(mp[i][j]=='s'){
                    dp[i][j][0][0]=dp[i-1][j-1][0][0]+1;
                    dp[i][j][0][1]=dp[i-1][j][0][1]+1;
                    dp[i][j][0][2]=dp[i][j-1][0][2]+1;
                    dp[i][j][0][3]=dp[i-1][j+1][0][3]+1;
                }
                else{
                    dp[i][j][1][0]=dp[i-1][j-1][1][0]+1;
                    dp[i][j][1][1]=dp[i-1][j][1][1]+1;
                    dp[i][j][1][2]=dp[i][j-1][1][2]+1;
                    dp[i][j][1][3]=dp[i-1][j+1][1][3]+1;
                }
            }
        }
        int ans=0,_ans=0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                ans=max(ans,dp[i][j][0][0]);
                ans=max(ans,dp[i][j][0][1]);
                ans=max(ans,dp[i][j][0][2]);
                ans=max(ans,dp[i][j][0][3]);
                _ans=max(_ans,dp[i][j][1][0]);
                _ans=max(_ans,dp[i][j][1][1]);
                _ans=max(_ans,dp[i][j][1][2]);
                _ans=max(_ans,dp[i][j][1][3]);
            }
        }
        if(ans>_ans)cout<<'s'<<endl<<ans<<endl;
        else if(ans<_ans)cout<<'S'<<endl<<_ans<<endl;
        else cout<<'?'<<endl<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    request
    href="#"
    可展开收起的客服导航。
    JS添加父节点的方法。
    精简漂亮的导航浮动菜单显示特效演示
    竖排导航
    仿新浪微博
    鼠标滑过改变文字
    滚动函数
    一些常用的兼容函数。
  • 原文地址:https://www.cnblogs.com/widsom/p/8391819.html
Copyright © 2011-2022 走看看