BNUOJ 34982 Beautiful Garden

题目地址:BNUOJ 34982

题意: 

看错题意纠结了好久。。。

在坐标轴上有一些树,如今要又一次排列这些树,使得相邻的树之间间距相等。 

刚開始瞄了一眼以为是求最短的移动距离...后来发现是求最少去移动的树的数量。

分析: 

刚開始想错了,以为随意取两棵树,作为相邻的两棵树即可了,吃了好多个wa后,发现这个有问题,由于考虑里面三棵树为终于序列中的三个。那么就有可能推断不出来。 

于是想了新的方法,枚举两棵树后,再枚举中间有几棵树,在两棵树中间找有几棵树不用移动。

详细见代码。

代码:

/*
* Author: illuz <iilluzen[at]gmail.com>
* File: b.cpp
* Create Date: 2014-05-29 14:43:59
* Descripton:
*/ #include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std; typedef long long ll; const int N = 44;
const double EPS = 1e-8; ll t, n, x[N], mmin;
set<int> s; void deal(int lhs, int rhs) {
int cnt;
ll dis = x[rhs] - x[lhs];
// 假设在同一点就作为间距为0的情况处理
if (dis == 0) {
mmin = min(mmin, n - (rhs - lhs + 1));
return;
}
// 枚举lhs和rhs中有k个间距,也能够枚举树
for (int k = 2; k < n; k++) {
cnt = 2;
// 在中间的树中找要不用移动的树
for (int i = lhs + 1; i < rhs; i++) {
if (x[i] != x[i - 1] && x[i] > x[lhs] && x[i] < x[rhs] && (x[i] - x[lhs]) * k % dis == 0)
cnt++;
}
mmin = min(mmin, n - cnt);
}
} int main()
{
cin >> t;
for (int cas = 1; cas <= t; cas++) {
cin >> n;
s.clear();
for (int i = 0; i < n; i++) {
cin >> x[i];
}
if (n <= 2) {
printf("Case #%d: 0\n", cas);
continue;
}
mmin = N;
sort (x, x + n);
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
deal(i, j);
}
}
printf("Case #%d: ", cas);
cout << mmin << endl;
}
return 0;
}

BNUOJ 34982 Beautiful Garden的更多相关文章

  1. bnu 34982 Beautiful Garden(暴力)

    题目链接:bnu 34982 Beautiful Garden 题目大意:给定一个长度为n的序列,问说最少移动多少点,使得序列成等差序列,点的位置能够为小数. 解题思路:算是纯暴力吧.枚举等差的起始和 ...

  2. 牛客多校第四场 F Beautiful Garden

    链接:https://www.nowcoder.com/acm/contest/142/F来源:牛客网 题目描述 There's a beautiful garden whose size is n ...

  3. (第四场)F Beautiful Garden

    题目: F Beautiful Garden 题目描述 There's a beautiful garden whose size is n x m in Chiaki's house. The ga ...

  4. ACM程序设计选修课——1057: Beautiful Garden(模拟+耐心调试)

    1057: Beautiful Garden Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 25  Solved: 12 [Submit][Statu ...

  5. 2014 SummerTrain Beautiful Garden

    There are n trees planted in lxhgww's garden. You can assume that these trees are planted along the ...

  6. 牛客网暑期ACM多校训练营(第四场) F Beautiful Garden

    链接: https://www.nowcoder.com/acm/contest/142/F 题意: n x m的矩形,选个p x q的矩形去掉,两个矩形中⼼重合,去掉后的矩形上下左右对称 求(p, ...

  7. 北京邀请赛 B. Beautiful Garden

    题意:给你坐标和n个点,求最少移动的点使得n个点成等差数列 思路:既然要成等差数列,那么最起码有两个点是不动的,然后枚举这两个点中间的点的个数,近期水的要死,看了队友的代码做的 #include &l ...

  8. HDU5977 Garden of Eden(树的点分治)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5977 Description When God made the first man, he ...

  9. hdu-5977 Garden of Eden(树分治)

    题目链接: Garden of Eden Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

随机推荐

  1. python之模块pprint之常见用法

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块pprint之常见用法 import pprint data = [(1,{'a':'A' ...

  2. Unrecognized option: -jrockit

    weblogic报错: starting weblogic with Java version: Unrecognized option: -jrockit Error: Could not crea ...

  3. Ubuntu18.04下希捷移动硬盘Seagate Backup Plus读写慢

    去年买的一块Seagate Backup Plus 4TB, 专门用来备份的, 之前在win7下用过几次, 但是在Ubuntu下可能只用过一两次, 今天备份的时候, 感觉写入速度不太正常, 大概只有1 ...

  4. QQ登录整合/oauth2.0认证-03-对第二节的代码改进

    ---------------------------目录---------------------------------- QQ登录整合/oauth2.0认证-01-申请appkey和appid ...

  5. NSDictionary的分类

    @implementation NSDictionary (extra) //根据key值的到字典中的object - (id)getObjectByKey:(NSString*)key { NSAr ...

  6. ios中键盘处理适合ipad 和iphone

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UI ...

  7. Guice与Spring框架的区别

    2007-4-23  再借斧子的例子说一说spring与guice的区别     看下边对于不同社会形态下一个人(java对象,调用者)需要一把斧子(java对象,被调用者)的例子: (1),原始社会 ...

  8. ios实例开发精品文章推荐(8.14)

    1.iOS源码:俄罗斯方块实现简单的俄罗斯方块游戏.<ignore_js_op> 下载地址:http://www.apkbus.com/android-124628-1-1.html 2. ...

  9. MyStack

    #pragma once class MyQueue { public: MyQueue(); ~MyQueue(); void Insert(int aValue); int Top(); void ...

  10. JQuery UI - draggable(转)

    ·概述 在任何DOM元素启用拖动功能.通过单击鼠标并拖动对象在窗口内的任何地方移动. 官方示例地址:http://jqueryui.com/demos/draggable/ 所有的事件回调函数都有两个 ...