首页 > 其他分享 >寒假每日一题——圆形牛棚

寒假每日一题——圆形牛棚

时间:2023-04-02 18:48:11浏览次数:47  
标签:int 牛棚 房间 ++ 圆形 寒假 res 奶牛

圆形牛棚

问题描述

作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。

牛棚内部有 n 个房间,围成一个环形,按顺时针编号为 1∼n

每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。

约翰想让第 i 个房间内恰好有 ri 头牛。

为了让奶牛们有序的进入牛棚,他计划打开一个外门,让牛从该门进入。

然后,每头牛顺时针穿过房间,直到到达合适的房间为止。

约翰希望通过合理选择打开的门,使得所有奶牛的行走距离之和尽可能小(这里只考虑每头牛进入牛棚以后的行走距离)。

请确定他的奶牛需要行走的最小总距离。

输入格式
第一行包含整数 n

接下来 n 行,包含 r1,…,rn

输出格式
输出所有奶牛需要行走的最小总距离。

数据范围

3≤n≤1000,

1≤ri≤100

输入样例:

5
4
7
8
6
4

输出样例:

48

样例解释
最佳方案是让奶牛们从第二个房间进入。

思路分析

方法一:
在这里插入图片描述

完整代码

#include <bits/stdc++.h>
using namespace std;

int n;

const int N = 1010;
int a[N];

#define INF 1e18;

int main()
{
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    
    int res = INF;
    for(int i = 0; i < n; i++)
    {
        int temp = 0;
        for(int j = 1; j < n; j++)
        {
            temp += a[(i + j) % n] * j; 
        }
        res = min(res, temp);
    }
    cout << res << endl;
    return 0;
}

方法二:前缀和的和
在这里插入图片描述

完整代码

include<bits/stdc++.h>

using namespace std;

int n;

const int N = 1010;
int a[N], r[N];

int sum(int i)
{
int res = 0;
int u = i - 1;

for(int j = n; j > 0; j--)
{
    a[n - j] = r[(j + u) % n];
}

for(int j = 0; j < n; j++)
{
    a[j] += a[j - 1];
}

for(int j = 0; j < n - 1; j++)
{
    res += a[j];
}
return res;

}

int main()
{
cin >> n;
for(int i = 0; i < n; i++)
{
scanf("%d", &r[i]);
}

int ans = 1e18;

for(int i = 0; i < n; i ++)
{
    ans = min(ans, sum(i));
}

cout << ans << endl;
return 0;

}

标签:int,牛棚,房间,++,圆形,寒假,res,奶牛
From: https://www.cnblogs.com/i-rong/p/17280964.html

相关文章

  • 寒假每日一题——镜子田地
    镜子田地问题描述农夫约翰在屋子外面放了一些旧镜子,他的奶牛们像往常一样调皮地偷走了它们!奶牛们将镜子放置在了一个矩形田地中,该田地可被划分为N×M个方格区域。在每个方格区域中,奶牛在其某对对角之间放置一个双面镜,因此,共有两种放法,一种为/放置(镜子连接方格左下角和右......
  • 寒假每日一题——懒惰的牛
    懒惰的牛问题描述这是一个炎热的夏日。懒洋洋的奶牛贝茜想将自己放置在田野中的某个位置,以便可以在短距离内尽可能多地吃到美味的草。贝茜所在的田野中共有N片草地,我们可以将田野视作一个一维数轴。第i片草地中包含gi单位的青草,位置坐标为xi。不同草地的位置不同。......
  • 寒假每日一题——金发姑娘和N头牛(map+手写离散化)
    金发姑娘和N头牛问题描述你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有N头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛i,使其感到舒适的温度为Ai…Bi。如果金发姑娘将牛棚的恒温器的温度T设置......
  • 寒假每日一题——闪烁(状态压缩)
    闪烁问题描述农夫约翰对牛棚里昏暗的灯光感到不满,刚刚安装了一个新吊灯。新吊灯由N个灯泡组成,这N个灯泡围成一圈,编号为0∼N−1。奶牛对这个新吊灯非常着迷,并且喜欢玩以下游戏:对于第i个灯泡,如果在T−1时刻,它左侧的灯泡(当i>0时,为第i−1个灯泡;当i=0时,为第N−1......
  • 寒假每日一题——困牛排序(思维题)
    困牛排序问题描述FarmerJohn正在尝试将他的N头奶牛,方便起见编号为1…N,在她们前往牧草地吃早餐之前排好顺序。当前,这些奶牛以p1,p2,p3,…,pN的顺序排成一行,FarmerJohn站在奶牛p1前面。他想要重新排列这些奶牛,使得她们的顺序变为1,2,3,…,N,奶牛1在FarmerJohn旁......
  • 寒假每日一题——大型植被恢复
    大型植被恢复问题描述长时间的干旱使得FarmerJohn的N块草地上牧草匮乏。随着雨季即将到来,现在应当是重新种植的时候了。在FarmerJohn的储物棚里有四个桶,每个桶里装着一种不同的草种。他想要在每块草地上播种其中一种草。作为一名奶农,FarmerJohn想要确保他的每头奶......
  • 2022牛客寒假算法基础集训营2 签到题7题
    1、C小沙的杀球如果你能够杀球但不杀球,虽然回复了体力,但你后续可能会没有机会继续杀球,并且杀球次数相同,那么回复的体力是相同的,所以在同等条件下,我们应该尽可能多的杀球。......
  • 2022牛客寒假算法基础集训营1 签到题7题
    1、L.牛牛学走路恭喜你签到成功#include<bits/stdc++.h>usingnamespacestd;intmain(){intT;cin>>T;while(T--){intn;cin>>n;strin......
  • 2022牛客寒假算法基础集训营3 签到题7题(附基础集训营1-3签到题总结)
    1、A-智乃的HelloXXXX签到#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"hellochino\n";return0;}2、B-智乃买瓜背包#include<bits/stdc+......
  • 11.扫描(即扫略、管道-圆形轮廓+薄壁)
    一、简单扫描1.点击进入草图-样条曲线绘制,点击完成2.创建与样条曲线垂直的基准平面 3.汇总扫描截面,设置几何约束-穿透 4.点击扫描,选择引导线和截面,点击确认即可......