http://www.lydsy.com/JudgeOnline/problem.php?id=2321 完全想不到.. 第一眼以为是爆搜,看到数据范围果断放弃:第二眼以为是网络流(因为只有行列操作,我们将起点向重点连边然后设置容量等等麻烦的东西再跑最大流),觉得建模麻烦放弃 数学... 首先本题有个性质: 答案与移动方法无关(因为有行列限制并且是2个同时在同行同列移动,这样,只要这行这列有个点是终点,无论是怎么累计起来的,能到达的点到这里的距离和相等) 这样就使得我们可以绕开答案. 我们来看矩…
这个题貌似特别奇怪,根本什么算法都想不出来,然而...看完题解之后,竟然用了能量守恒?惊了! 这里有一个题解: https://blog.csdn.net/Mima_Reincarnation/article/details/53965251 膜一下自己写出来的大佬,太强了! 题干: 题目描述 Magic Land上的时间又过了若干世纪…… 现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界.善于分析与构造的Magic Land上的人们总是不明白那里的人…
2321: [BeiJing2011集训]星器 Time Limit: 1 Sec  Memory Limit: 128 MB Description Magic Land上的时间又过了若干世纪…… 现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界.善于分析与构造的Magic Land上的人们总是不明白那里的人们是如何不借助精确的实验与计算驱动和操纵魔法. 偶然地,一个魔法使(Magician)来到了Magic Land,在临走的时候留下了一个神奇的盒…
Description Magic Land上的时间又过了若干世纪…… 现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界.善于分析与构造的Magic Land上的人们总是不明白那里的人们是如何不借助精确的实验与计算驱动和操纵魔法. 偶然地,一个魔法使(Magician)来到了Magic Land,在临走的时候留下了一个神奇的盒子,叫做星器(Casket of star). 虽然不知道这个盒子是做什么的,但是经过了大量的实验和计算后,人们已经清楚它的一些…
星器 思路: 势能分析法. 假设每颗星星的势能为\(x^2+y^2\) 那么对于一行的两颗星星\((i, j), (i, k), j < k\) 它转移到\((i, j+1), (i, k-1)\)的势能变化为\(j^2-(j+1)^2+k^2-(k-1)^2=2*(k-j-1)\) 正好是我们魔法值的两倍 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc…
[BZOJ 1013] [JSOI2008]球形空间产生器 题面 给出一个n维球体上的n+1个点,求球心坐标 分析 设球心坐标为\((x_1,x_2,\dots x_n)\),由于一个球体上的所有点到球心距离相等.那么 第\(i\)个方程为\[ \begin{equation} \sum_{j=0}^n (a_{i,j}-x_j)^2=C^2 \tag{i} \end{equation}\] 其中\(C\)为距离,\(a_{i,j}\)为点的坐标.我们对相邻两个方程做差,消去\(x_j^2\)和…
Jquery筛选器的一些常用技巧,比如过滤属性等 /* 过滤获取没有含data-xsui-grid-colspan的节点 */$(this).find('.xsui-grid-cell:not([data-xsui-grid-colspan])'); jQuery绑定input控件的回车事件 // input文本输入框按确定按键后,触发Tab按键,自动跳到下一个输入框 $('input[type="text"]').bind('keydown', function (e) { if (…
代码收藏系列--jquery--筛选器.事件绑定技巧 Jquery筛选器的一些常用技巧,比如过滤属性等 /* 过滤获取没有含data-xsui-grid-colspan的节点 */$(this).find('.xsui-grid-cell:not([data-xsui-grid-colspan])'); jQuery绑定input控件的回车事件 // input文本输入框按确定按键后,触发Tab按键,自动跳到下一个输入框 $('input[type="text"]').bind('ke…
首先我们假设两个点(i,j),(i,k)向中间移动一格,且k>j+1,那么我们可以获得的价值为k-j,这样,我们定义每个点的每个星的能量为a[(i,j)]=i*i+j*j,这样这两个点开始的能量为i*i+j*j+i*i+k*k,移动之后,两个点变为(i,j+1),(i,k-1),这时的能量为i*i+(j+1)*(j+1)+i*i+(k-1),这时的能量差为2*k-2*j,为获得价值的2倍,因为对于所有的价值获得都可以采用这样的方法,所以我们可以算出开始局面的能量和,结束局面的能量和,相减>&g…
对于一行上的两个星星,假设它们的坐标为\(x1,x2\) \(x1->x1+1\) \(x2->x2-1\) \((x1+1)^2=x1^2+1+2*x1\) \((x2-1)^2=x2^2+1-2*x2\) 变化量=2*(x2-x1+1)=2乘一次释放的能量 考虑是二维的,所以我们定义一个星星的能量为\(x^2+y^2\),算出来初始局面的能量和,和终结局面的能量和,做差/2即是答案. 代码如下: #include<iostream> #include<cstring>…