Bzoj2321 [BeiJing2011集训]星器

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 479  Solved: 310

Description

Magic Land上的时间又过了若干世纪……

现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界。善于分析与构造的Magic Land上的人们总是不明白那里的人们是如何不借助精确的实验与计算驱动和操纵魔法。

偶然地,一个魔法使(Magician)来到了Magic Land,在临走的时候留下了一个神奇的盒子,叫做星器(Casket of star)。

虽然不知道这个盒子是做什么的,但是经过了大量的实验和计算后,人们已经清楚它的一些事实:

1.星器之中有N×M个区域,可看作分成N行和M列的格子,每个区域之中有若干单位的称为“星”的对象,这个对象的最小单位已经被确定,所以,这个数量总是整数。

2.魔法使可以驱动星器中位于同一行或同一列的不相邻(有公共边的区域称为相邻的)两个区域中各1单位的“星”,使得它们分别向中心移动1格。

3.每一次使用2中的方法驱动“星”,将会产生魔力,魔法使会得到这一部分魔力。魔力的量等于这个两个区域之间所间隔的区域数。

这样,我们可以用一个N×M的数表来表示星器的状态,比如N=2,M=3时:


2


0


1

   
1


2


0


5


1


4

   
5


1


4

当星器为左图的状态时,通过操纵第一行的第1和3个区域中的“星”(加粗的数字对应的区域),变为右图所示的状态,同时,将产生1单位的魔力(因为这两个区域之间恰好隔了1个区域)。

在经过了进一步的研究之后,人们知道了这个星器最初的状态(Ini)以及最终被他们得到时的状态(Fin)。

你希望知道,星器最多帮助它的拥有者提供了多少的魔力。即:经过一系列上述操作由初态(Ini)变为终态(Fin),至多产生多少魔力。

需要注意的是,显然操作过程中每个区域内“星”的数量不能是负的,即:如果那个区域已经没有“星”了,当然就不能继续操作了。

Input

第一行包含两个正整数N、M表示星器的大小。

接下来的N行,每行包含M个自然数:Iniij,描绘了初态(Ini)。

在一个空行后的N行,每行包含M个自然数:Finij,描绘了终态(Fin)。

Output

输出一个正整数,表示至多产生的魔力。

Sample Input

【输入样例1】
5 5

1 0 0 0 1

0 0 0 0 0

0 0 0 0 0

0 1 0 1 1

1 0 0 0 0

0 0 0 0 0

0 0 0 0 1

2 0 0 0 1

0 0 2 0 0

0 0 0 0 0

【输入样例2】
1 4

10 20 30 40

0 0 100 0

Sample Output

【输出样例1】
7

【样例1解释】
唯一的一种操作方法是:

对第5列的两个“星”进行一次操作,产生魔力2;

对第1列的两个“星”进行两次操作,产生魔力3+1;

对第4行的两个“星”进行一次操作,产生魔力1;

一共产生7单位的魔力。

【输出样例2】
50

HINT

【数据规模和约定】

40%的数据中N ≤ 2,如样例2;

100%的数据中1 ≤ N,M ≤ 200,Iniij,Finij ≤ 1000。

所有数据保证了至少存在一个操作方法使得星器由初态变为终态,同时保证了初态与终态不是完全相同的。

Source

数学问题 (物理?) 脑洞题

可以发现行列相互独立,且答案和中途步骤无关。

定义一个星星的势能为其到原点的欧几里得距离的平方,初末状态势能之差除以二就是答案。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<cmath>
 6 #define LL long long
 7 using namespace std;
 8 const int mxn=205;
 9 int read(){
10     int x=0,f=1;char ch=getchar();
11     while(ch<‘0‘ || ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
12     while(ch>=‘0‘ && ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
13     return x*f;
14 }
15 int n,m,a;
16 LL res=0;
17 int main(){
18     int i,j;
19     n=read();m=read();
20     for(i=1;i<=n;i++)
21         for(j=1;j<=m;j++){
22             a=read();res+=a*((i*i)+(j*j));
23         }
24     for(i=1;i<=n;i++)
25         for(j=1;j<=m;j++){
26             a=read();res-=a*((i*i)+(j*j));
27         }
28     printf("%lld\n",res>>1);
29     return 0;
30 }
时间: 2024-08-24 03:08:20

Bzoj2321 [BeiJing2011集训]星器的相关文章

【BZOJ】2321: [BeiJing2011集训]星器

Description Magic Land上的时间又过了若干世纪…… 现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界.善于分析与构造的Magic Land上的人们总是不明白那里的人们是如何不借助精确的实验与计算驱动和操纵魔法. 偶然地,一个魔法使(Magician)来到了Magic Land,在临走的时候留下了一个神奇的盒子,叫做星器(Casket of star). 虽然不知道这个盒子是做什么的,但是经过了大量的实验和计算后,人们已经清楚它的一些

【BZOJ】2321: [BeiJing2011集训]星器(数学+特殊的技巧)

完全想不到.. 第一眼以为是爆搜,看到数据范围果断放弃:第二眼以为是网络流(因为只有行列操作,我们将起点向重点连边然后设置容量等等麻烦的东西再跑最大流),觉得建模麻烦放弃 数学... 首先本题有个性质: 答案与移动方法无关(因为有行列限制并且是2个同时在同行同列移动,这样,只要这行这列有个点是终点,无论是怎么累计起来的,能到达的点到这里的距离和相等) 这样就使得我们可以绕开答案. 我们来看矩形 0 0 0 1 0 0 0 0 1 0 0 0 我们要从左下角到右上角(本题的话一定左下角要到达左上角

BZOJ 2321 BeiJing2011集训 星器

题目大意:给定一个矩阵,定义一个操作: 选择两个同一行或同一列不相邻的点,将这两个点上各一个星向中间移动一位,产生魔力为两点间距离-1,求始态到终态的产生魔力 定义一个星的势能为这个点到原点的欧几里得距离的平方 即一个在(i,j)位置上的星的势能为i*i+j*j 假如一次操作之前两个星的位置为(i,j)和(i,k),其中j+2<=k 那么操作之前两个星的势能和为i*i+j*j+i*i+k*k 操作后两个星的位置为(i,j+1)和(i,k-1) 势能和为i*i+(j+1)*(j+1)+i*i+(k

7、8月刷题总结

准备开学了囧,7.8月刷题记录,以后好来复习,并且还要好好总结! 数据结构: splay: [BZOJ]1503: [NOI2004]郁闷的出纳员(Splay) [BZOJ]1269: [AHOI2006]文本编辑器editor(Splay) [BZOJ]1507: [NOI2003]Editor(Splay) treap: [BZOJ]1862: [Zjoi2006]GameZ游戏排名系统 & 1056: [HAOI2008]排名系统(treap+非常小心) [BZOJ]3224: Tyvj

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

LGOJ1861 星之器

前置扯淡 我对这个题目的评价和网上各位大佬的一样:人类智慧题 (显然我不具有人类智慧--) Description link 现在有一个 \(n \times m\) 的矩阵\(A\),里面的每个元素\(a_{i,j}\) 表示二元组\((i,j)\)的位置有\(a_{i,j}\) 颗星星 现在我们有一种操作,选定同一行或同一列的两个星组 \(a\) ,把他们中的一颗星星向中间移动一个单位,该操作的贡献是两个位置的曼哈顿距离(意会一下,相当简单) 给定初始矩阵 \(A\), 和末尾矩阵 \(B\

《长安十二时辰》。5星。大唐首都反恐24小时。基本是大片剧本。有创意的穿越架空小说。

有创意,基本是大片剧本,3分钟一转折,5分钟一高潮.主要故事是发生在大唐首都的反恐24小时,主人公身陷囹圄,遭遇黑白两道的追捕,多次万分危险差点送命,最终挫败了一场惊天大阴谋,挽救了危局. 剧本我给4星,涉及到的唐朝无数政治.经济.军事.生活.娱乐的细节我给5星. 本书基本可以归入架空小说,虚构了一段历史,最终由于主人公的努力,让历史按原来的轨迹走了下去.但是细看有一些情节可以说是穿越了.主要有三个穿越的情节:用旗语和鼓声传递信息.用石油制作炸弹.用狗去根据气味去跟踪. 跟所有的侦破小说一样,最

图片拾取器-PicPicker

最近报名参加了360前端星计划,想当一名前端实习生,学习更多更流行的前端知识.然后需要完成一个作业,才能进培训,进了培训还得看运气才能留下,流程不少.书归正传,请看: 课后作业题目 请从下面两个题目中任意选择一道题完成. 题目1:使用网页做一份简历,可以根据自己的能力适当添加动画效果和交互. 题目2:开发一个网页图片查看器,可以缩放.拖动图片. 好吧,我果断选择了第二题,然后把自己的简历放在了图片查看器的图片中,真是机智啊.下面进入正题. PicPicker 光做个查看器好像也没什么意思,我绞尽

隐含马尔可夫模型HMM的中文分词器 入门-1

<pre name="code" class="sql">http://sighan.cs.uchicago.edu/bakeoff2005/ http://www.52nlp.cn/中文分词入门之资源 中文分词入门之资源 作为中文信息处理的"桥头堡",中文分词在国内的关注度似乎远远超过了自然语言处理的其他研究领域.在中文分词中,资源的重要性又不言而喻,最大匹配法等需要一个好的词表,而基于字标注的中文分词方法又需要人工加工好的分词语料