[编程题]圈地运动

news/2025/2/23 0:10:22

[编程题]圈地运动

圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~

小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:

1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。

2.买了的木棍都必须用在圈地运动中。

那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?

输入描述:
第一行一个数n,表示木棍个数。
第二行n个数,第i个数表示第i个木棍的长度ai
1<=n<=10000
1<=ai<=10000
输出描述:
输出一个数,表示最少需要的木棍个数,如果无解输出-1

输入例子1:
3
6 8 10
输出例子1:
3
例子说明1:
用三根6,8,10的木棍可以组成一个直角三角形的图形。

思路

取的木棍中,满足最长的木棍小于其他木棍长度之和即可。

  1. maxLen 保存已取最长木棍。
  2. otherLen 保存所有已取木棍长度
  3. 如果otherLen-maxLen > maxLen 即满足条件

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>> n;
    vector<int> v(n);
    for (int i = 0; i < n; ++i)
        cin>> v[i];
    long long maxLen = LONG_MIN, otherLen = 0, flag = 1;
    for (int i = 0; i < n; i++) {
        if (v[i] > maxLen)
            maxLen = v[i];
        otherLen += v[i];
        if (otherLen-maxLen > maxLen) {
            cout<< i+1<< endl;
            flag = 0;
            break;
        }
    }
    if (flag)    cout<< -1<< endl;
    return 0;
}

http://www.niftyadmin.cn/n/989475.html

相关文章

从现在开始要学习Python了

Python是个好东东&#xff0c;即没有C和C烦人的指针问题&#xff0c;功能似乎也比PHP要强不少&#xff0c;再重要的是它是纯粹的面向对象语言&#xff0c;语句清晰&#xff0c;容易理解&#xff0c;这对于学习来说有着很大的优势&#xff0c;学习语言的初期都是看别人代码的&am…

动态规划之 筷子

描述 A 先生有很多双筷子。确切的说应该是很多根&#xff0c;因为筷子的长度不一&#xff0c;很难判断出哪两根是一双的。这天&#xff0c;A 先生家里来了K 个客人&#xff0c;A 先生留下他们吃晚饭。加上A 先生&#xff0c;A夫人和他们的孩子小A&#xff0c;共K3个人。每人需要…

动态规划优化

状态优化 bzoj2064 分裂 存在通解&#xff1a;把原始集合都合并&#xff0c;再一一拆开。 如果可以划分一些集合&#xff0c;使得原始集合和目标集合对应的小集合相等&#xff0c;那么可以节省操作次数。 ans(n1-1)(n2-1)-2*(x-1) x为划分的相同集合数。 n<10,状压 另外&…

[讽刺笑话] 移动公司老板与公厕老大爷的经典对白

超强的移动公司老板与公厕老大爷的经典对白今天早上&#xff0c;移动公司某经理在外突然感觉内急&#xff0c;只好找公共厕所。“干什么的&#xff1f;”大爷喊。“我是移动老总&#xff0c;我内急。”经理。“你不知道现在什么都要收费啊&#xff1f;”大爷。“行&#xff0c;…

关于SD-WAN,你想知道的都在这里

SD-WAN是什么&#xff1f;SD-WAN&#xff0c;即软件定义广域网络&#xff0c;是将SDN/NFV/Cloud等技术应用到广域网中所形成的一种网络服务。这种服务通常用于连接不同区域的企业分支机构、数据中心、公有云等。SD-WAN出现背景随着“互联网”的深入推进&#xff0c;企业数字化进…

#那些年写过的搓程序#shell里的位数判断

当年为了输出000到120每隔6小时一张预报图&#xff0c;用000,006,120这样的规则命名&#xff0c;我写了以下的搓程序&#xff1a; for ((i0;i<120;ii6)) do if [ $i -le 9 ] then ii00$i elif [ $i -le 99 ] then ii0$i else ii$i fi done 直到我找到了print才发现上面这11行…

Windows Server 部署DNS服务

Windows Server 部署DNS服务 当我们在上网的时候&#xff0c;通常输入的是网址&#xff0c;其实这就是一个域名&#xff0c;而我们计算机网络上的计算机彼此之间只能用I P地址才能相互识别。域名&#xff08;网址&#xff09;只是相当与门牌号&#xff0c;只是为了方便记忆而增…

【js】this问题

var obj {a: 10,b: () > {console.log(this.a); // undefinedconsole.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}},c: function () {console.log(this.a); // 10console.log(this); // {a: 10, b: ƒ, c: ƒ}} } obj.b(…