LA 3708 && POJ 3154 Graveyard (思维)】的更多相关文章

题意:在周长为10000的圆上等距分布着n个雕塑,现在又加入m个,现在让m+n个等距分布,那就得移动一些原有的雕塑,问你移动的最少总距离是多少. 析:首先我们可以知道,至少有一个雕塑是可以不用移动的,那么我们以那修个没有移动的雕塑为原点建立坐标.现在问题就转化为把剩下的移动到离它最近的位置(这个位置是放入m个雕塑之后的位置),那么这个距离就应该是最短的. 代码如下: #include <cstdio> #include <iostream> #include <cstring…
//poj 3154 //sep9 #include <iostream> #include <cmath> using namespace std; double a[2048]; double b[2048]; int main() { int n,m; while(scanf("%d%d",&n,&m)==2){ for(int i=0;i<n;++i) a[i]=i*(10000.0/n); for(int i=0;i<(n+…
Graveyard Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1707   Accepted: 860   Special Judge Description Programming contests became so popular in the year 2397 that the governor of New Earck — the largest human-inhabited planet of the…
例题4  墓地雕塑(Graveyard, NEERC 2006, LA 3708) 在一个周长为10000的圆上等距分布着n个雕塑.现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周上均匀分布.这就需要移动其中一些原有的雕塑.要求n个雕塑移动的总距离尽量小. [输入格式] 输入包含若干组数据.每组数据仅一行,包含两个整数n和m(2≤n≤1 000,1≤m ≤1 000),即原始的雕塑数量和新加的雕塑数量.输入结束标志为文件结束符(EOF). [输出格式] 输入仅一行,为最小总距…
UVALive.3708 Graveyard (思维题) 题意分析 这标题真悲伤,墓地. 在周长为1e4的圆周上等距分布着n个雕塑,现在要加入进来m个雕塑,最终还要使得这n+m个雕塑等距,那么原来的n个雕塑移动的最小距离是多少. W=W 依旧没思路,看了题解学习此种技巧. 首先原先给出的n个雕塑中有一个假定不动.然后剩余的n-1的个雕塑移动到最近的目标点.目标点的定义如下: 将原圆周等距分为n+m份,每一份的分界点为一个位置,即目标点.那么难点就在于如何判断是最近的呢,这里用到的方法就是按比例扩…
Description   Programming contests became so popular in the year 2397 that the governor of New Earck -- the largest human-inhabited planet of the galaxy -- opened a special Alley of Contestant Memories (ACM) at the local graveyard. The ACM encircles…
Graveyard Programming contests became so popular in the year 2397 that the governor of New Earck -- the largest human-inhabited planet of the galaxy -- opened a special Alley of Contestant Memories (ACM) at the local graveyard. The ACM encircles a gr…
在一个周长为 10000 的圆上等距分布着 n 个雕塑.现在又有 m 个新雕塑加入(位置可以随意摆放),希望所有 n + m 个雕塑能在圆周上均匀分布.这就需要移动一些原有的雕塑.要求 n 个雕塑移动的总距离最小. 因为是均匀分布,所以如果在摆放好所有的雕塑之后,统一移动相同的距离依旧是均匀分布的,所以这题可以先把某一个雕塑当做原点固定不动.并将这个墓碑的距离设置为0. 之后利用等比缩放,将整个圆缩放成一个周长为 n + m 的圆,于是原有的雕塑的位置可以利用公式得出: 又因为,圆已经缩放成周长…
题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1709 题意: 一个周长为10000的圆上等距离分布n个点,新增加m个点, 若使所有m+n个点等距离的分布在圆上,求原来n个点的最小移动距离. 分析: 看下样例,很容易想到是固定一个点不动,移动剩下n−1个点,就是说以这个不动点为原点,顺时针放剩下的n+m−1个点.…
题目链接:http://poj.org/problem?id=3298 找一个最长不要求连续的子序列,如a1 > a3 < a6 > a7 ... 举个例子模拟一下差不多明白了,a[i - 1]与a[i]有依赖关系. //#pragma comment(linker, "/STACK:102400000, 102400000") #include <algorithm> #include <iostream> #include <cstd…