Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

称号:

意甲冠军:给定一个矩阵,每格我们有一个数,然后把两个大象,我希望能够吃的对角线上的所有数字。我问两个最大的大象可以吃值。

分析:这种想法是暴力的主题,计算出每一格放象的话能得到多少钱,然后求出两个不冲突的最大值。我比赛的时候写的方法是先求出每个值,编号之后存到数组里面,然后在通过一系列处理得到,总之非常麻烦。写了一个多小时。最后才发现有一点小错误,没时间了。初始例子也没有通过。

然后看了下别人写的,太简洁了。直接用行和列和和差就能够直接求出来。看来代码能力还很有待提高啊。

我的AC代码:

#include <cstdio>
#include <iostream>
#include <queue>
#include <cstring>
#include <algorithm>
#include <stack>
#include <vector>
#include <utility>
#include <cmath>
using namespace std;

const long long N = 2200;
long long mp[N][N],num[N][N];
vector<long long> sum1,sum2;
long long n;
int main()
{
    //freopen("Input.txt","r",stdin);
    while(~scanf("%lld",&n))
    {
        for(long long i=1; i<=n; i++)
        {
            for(long long j=1; j<=n; j++)
                scanf("%lld",&mp[i][j]);
        }
        for(long long i=n; i>=1; i--)
        {
            long long tmp=0;
            for(long long x=1,y=i; x<=n; x++,y++)
            {
                tmp+=mp[x][y];
            }
            sum1.push_back(tmp);
        }
        for(long long i=2; i<=n; i++)
        {
            long long tmp=0;
            for(long long x=i,y=1; x<=n; x++,y++)
                tmp+=mp[x][y];
            sum1.push_back(tmp);
        }

        for(long long i=1; i<=n; i++)
        {
            long long tmp=0;
            for(long long x=i,y=1; x>=1; x--,y++)
            {
                tmp+=mp[x][y];
            }
            sum2.push_back(tmp);
        }
        for(long long i=2; i<=n; i++)
        {
            long long tmp=0;
            for(long long x=n,y=i; y<=n; x--,y++)
                tmp+=mp[x][y];
            sum2.push_back(tmp);
        }
        memset(num,0,sizeof(num));
        long long fx=1,fy=n;
        for(long long i=1;i<=n;i++)
        {
            long long xx=fx,yy=fy;
            for(long long j=1;j<=n;j++)
            {
                num[i][j]=sum2[xx-1]+sum1[yy-1]-mp[i][j];
                xx++,yy--;
                //printf("%lld ",num[i][j]);
            }
            fx++,fy++;
        }
        long long ans[3]={-1,-1};
        long long x[3],y[3];
        for(long long i=1;i<=n;i++)
        {
            for(long long j=1;j<=n;j++)
            {
                long long p=(i+j)%2;
                if(num[i][j]>ans[p])
                {
                    ans[p]=num[i][j];
                    x[p]=i,y[p]=j;
                }
            }
        }
        printf("%lld\n",ans[0]+ans[1]);
        printf("%lld %lld %lld %lld\n",x[0],y[0],x[1],y[1]);
        sum1.clear(),sum2.clear();
    }
    return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116787.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 线程同步和锁_自旋锁的实现

    线程同步和锁_自旋锁的实现一什么是自旋锁自旋锁(Spinlock)是一种广泛运用的底层同步机制。自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试

  • HTML CSS整理笔记[通俗易懂]

    HTML CSS整理笔记[通俗易懂]常见字体单位:1.em移动端常用的字体尺寸单位,说白em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5。但当div进行嵌套时,em始终按当前div继承的字体大小来缩放。2.remr是root的意思,即相对于根节点html的font-size进行缩放,当有嵌套关系时,嵌套关系的元素的字体大小始终按照根节点的字体大小…

  • Tomcat中的ResourceBundle国际化解析「建议收藏」

    Tomcat中的ResourceBundle国际化解析「建议收藏」一、ResourceBundle简介:资源束(ResourceBundle)是一个本地化对象。它封装了适用于本地环境的资源;这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的…

  • UVa409_Excuses, Excuses!(小白书字符串专题)[通俗易懂]

    UVa409_Excuses, Excuses!(小白书字符串专题)

  • win10进入文件夹指令_命令行进去某个文件夹

    win10进入文件夹指令_命令行进去某个文件夹win+R-运行-cmd打开命令行窗口输入盘符:D:进入D盘命令行显示:D:\>继续输入D:\>cdD:\test进入test文件夹//在文件夹目录下,shift+鼠标右键,弹出菜单里,选择powershell,打开PowerShell框//当前,在E盘下打开的powershellE:\>//从E盘进入…

    2022年10月15日
  • 人脸对齐:DCNN级联关键点检测2013

    人脸对齐:DCNN级联关键点检测2013近期学习关键点检测相关内容,基于CNN的方法已经替代以往经典的方法(ASM,AAM等),于是乎得看看CNN是如何应用到关键点检测上的。创新点: 1.将CNN应用到人脸关键点检测当中 2.提出级联CNN,这个级联CNN的level-1有一个非常重要的作用,就是解决了传统人脸关键点检测时都会遇到的一个问题——关键点初始化,传统参数化方法(ASM,AAM等)若初始化不当,容易陷入局部最优。 虽然作者没…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号