zoukankan      html  css  js  c++  java
  • Codeforces 463C Gargari and Bishops

    首先要记得黑白染色原理,题目里要求矩阵里的两个点,两个点对应的对角线不能有重合点,其实就是黑白染色嘛,找坐标相加为奇数和坐标相加为偶数的点即可

    然后就是题目要求的和值最大,暴力不行,所以预处理出来每个对角线的和值,发现其实每个对角线要么是 y=x+b或者y=-x+b,b是独一无二的,所以以b为特征点来记录每个对角线的和值,当然b可能为负,所以人为的+3*n使其为正(其实+n就可以为正,+3*n是因为还要跟x+y=b区分出来)。

    注意处理细节,然后还是蛮简单的

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #define LL __int64
    using namespace std;
    int n;
    int  mat[2010][2010];
    LL sum[4020*3];
    int main()
    {
        while (scanf("%d",&n)!=EOF)
        {
            for (int i=1;i<=n;i++)
                for(int j=1;j<=n;j++) scanf("%d",&mat[i][j]);
            for (int i=1;i<=n;i++)
                for (int j=1;j<=n;j++){
                sum[i+j]+=(LL)mat[i][j];
                sum[i-j+3*n]+=(LL)mat[i][j];
            }
            LL ans1=-1,ans2=-1;
            int x1,y1,x2,y2;
            for (int i=1;i<=n;i++){
                for (int j=1;j<=n;j++){
                    LL ret=sum[i+j]+sum[i-j+3*n];
                    ret-=(LL)mat[i][j];
                    if ((i+j)&1){
                        if (ans1<ret){
                            ans1=ret;
                            x1=i;
                            y1=j;
                        }
                    }
                    else{
                        if (ans2<ret){
                            ans2=ret;
                            x2=i;
                            y2=j;
                        }
                    }
                }
            }
            //cout<<sum[x1+y1]<<" "<<sum[x1-y1+3*n]<<endl;
            //cout<<ans1<<" "<<ans2<<endl;
            printf("%I64d
    ",ans1+ans2);
            printf("%d %d %d %d
    ",x1,y1,x2,y2);
        }
        return 0;
    }
  • 相关阅读:
    C#将DataTable按固定个数拆分成多个表
    IDataRowPersistable
    使用临时表的示例
    2011 11 28 sql语句学习
    2010 11 30 DrawCurve GDI绘制曲线
    如何查看viewstate的内容
    const 和 readonly 的区别
    access insert 语法错误
    asp.net下载文件的常用方法大全
    【转】JS超强判断电话号码
  • 原文地址:https://www.cnblogs.com/kkrisen/p/3947356.html
Copyright © 2011-2022 走看看