前置扯淡

我对这个题目的评价和网上各位大佬的一样:人类智慧题

(显然我不具有人类智慧……)

Description

link

现在有一个 \(n \times m\) 的矩阵\(A\),里面的每个元素\(a_{i,j}\) 表示二元组\((i,j)\)的位置有\(a_{i,j}\) 颗星星

现在我们有一种操作,选定同一行或同一列的两个星组 \(a\) ,把他们中的一颗星星向中间移动一个单位,该操作的贡献是两个位置的曼哈顿距离(意会一下,相当简单)

给定初始矩阵 \(A\), 和末尾矩阵 \(B\),保证 \(B\) 是由 \(A\) 进行一定的上述操作得到,求贡献和

Solution

单看题目一脸懵逼……

直接上思路吧:(真的是闻所未闻的人类智慧)

定义一颗位于的二元组\((i,j)\)的星星的 “势能” 为 \(\frac{i^2+j^2}{2}\)

我们考虑每一个移动对于两个位置的星星的势能的影响

\[E_0=\frac{x^2_1+y_1^2+x_2^2+y_2^2}{2}
\]

\[E=\frac{(x_1+1)^2+y_1^2+(x_2-1)^2+y_2^2}{2}
\]

\[\Delta E=x_2 \space - \space x_1
\]

我们要的贡献就是\(\Delta E\)

然后我们发现这个移动跟操作的方式是无关的!!!!

所以这个题就做完了

\[ans=\sum^{n}_ {i=1}\sum^{m}_ {j=1} \frac{a_{i,j}* (i^2+j^2)}{2}-\sum^{n}_ {i=1}\sum^{m}_ {j=1} \frac{b_{i,j}* (i^2+j^2)}{2}
\]

可以乘法分配律一下啥的

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long
namespace yspm{
inline int read()
{
int res=0,f=1; char k;
while(!isdigit(k=getchar())) if(k=='-') f=-1;
while(isdigit(k)) res=res*10+k-'0',k=getchar();
return res*f;
}
const int N=210;
int a[N][N],b[N][N],n,ans,m;
signed main()
{
n=read(); m=read();
for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) a[i][j]=read();
for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) b[i][j]=read();
for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) ans+=(a[i][j]-b[i][j])*(i*i+j*j);
printf("%lld\n",ans>>1);
return 0;
}
}
signed main(){return yspm::main();}

LGOJ1861 星之器的更多相关文章

  1. LG1861 星之器

    题意 题目背景 Magic Land 上的时间又过了若干世纪„„ 现在, 人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿, 那里简直就是另外一个世界.善于分析与构造的 Magic Lan ...

  2. 题解:luoguP1861 星之器

    为什么全世界都说这是个物理题,不应该是一个数学题吗,神犇的势能完全看不懂 我们直接来看题,对于一个点,在计算时候横坐标和纵坐标互不影响,所以我们分开考虑. 我们记两个点假如横坐标相同,分别记纵坐标为a ...

  3. [BZOJ2321,LuoguP1861]星(之)器

    丧心病狂的神仙题 丧心病狂的神仙题 丧心病狂的神仙题 显然,不管你怎么移动,答案都是一定的 然后我们很快能联系到物理里面的能量守恒,于是自然地我们要给每个点搞一个势能出来 然后把势能的表达式写出来就可 ...

  4. C++的MFC,与C#的.NET

    转载:http://blog.sina.com.cn/s/blog_7f5bde5c0101hk5n.html 以下摘自各问答网站.博客论坛: [1]MFC早已过时,现在C++多数是用来编写底层方法而 ...

  5. OD: ActiveX Vulnerabilities

    通过一个精心构造的页面 exploit 第三方软件中的 ActiveX 已经成为一种惯用攻击手段,众多知名软件公司都曾被发现其注册的 ActiveX 中存在严重的缓冲区溢出漏洞,一个被广泛使用的第三方 ...

  6. 那些好用的阅读软件(Windows & Android)

    此文章已添加预览与更新,请您移步到我的新博客 http://t.cn/EXCiCTE 整个2018年就没写过几篇博文,所以写一篇文章算过年啦-哈哈-有部分软件因为年代原因,官网已经消失.或者网络上的资 ...

  7. 请教中文的OCR软件哪个最好?

    对原件,有这几种:1,全中文(含标点,一些英文符号)2,中英文(英文较多,或英文占大多数)3,全英文(这个用finereader8.0) 針對1.2 紫光 超星阅读器自带的OCR组件 尚书七号搞定全中 ...

  8. PDG转图像、PDF的若干方法

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2006.05.26更新:2008.08.24 补充说明:此文成文较早,其中对Pdg2Pic.FreePic2Pdf的描述早已 ...

  9. android项目大全,总有你所需的

    注:打开请贴网址.有些直接通过链接打开的不对.  1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文具体解释(Log.v,Log.d,Log. ...

随机推荐

  1. 实验吧-密码学-js(Chrome用console.log调试js)

    题目就是js,可能就是一个js的代码,查看源码并复制,在Chrome中打开网页,审查元素. 将复制的代码输入,将eval改成console.log,再回车执行,就得到一段js代码. 代码中有Unico ...

  2. 【Linux】Linux中的网络命令

    dig命令:是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig(选项)(参数) [root@localhost tmp]# dig http://oa.kingnet.com ; ...

  3. 读书笔记 - js高级程序设计 - 第五章 引用类型

      引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string"  需要实验 访问属性的方法 .号和[] 一般情况下要 ...

  4. 第22章—开启HTTPS

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  5. Python 时间 time

    import time print time.strftime("%Y-%m-%d") import datetime print datetime.datetime.now() ...

  6. 2020牛客寒假算法基础集训营4 H坐火车

    题目描述 牛牛是一名喜欢旅游的同学,在来到渡渡鸟王国时,坐上了颜色多样的火车. 牛牛同学在车上,车上有 n 个车厢,每一个车厢有一种颜色. 他想知道对于每一个正整数 $ x \in [1,\ n] $ ...

  7. CTF -bugku-misc(持续更新直到全部刷完)

    1.签到题 点开可见.(这题就不浪费键盘了) CTF- 2.这是一张单纯的图片 图片保存到本地,老规矩,winhex看一看 拉到最后发现 因为做过ctf新手的密码 所以一看就知道unicode 百度站 ...

  8. @Autowired注解与@Resource注解的区别(详细)

    相信对现在Java码农来说,@Autowired跟@Resource并不陌生,二者都可以自动注入,但是两者的区别很多时候并没有被注意到. 一.注解的出处 @Autowired是Spring提供的注解, ...

  9. 改变UILable里面文字的大小和颜色

    UILabel *lb = [[UILabel alloc]init]; NSMutableAttributedString *attriStr = [[NSMutableAttributedStri ...

  10. Maven学习(一)——maven入门

    一.下载及安装 1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本 ...