【前驱】:在指定长度的棍子中找到能组成最大周长三角形的三根棍子
链接:https://www.nowcoder.com/acm/contest/134/A
来源:牛客网

题目描述
铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想起
在数学课上老师教她的三角形知识,她开始从这些木棍中间找三根木棍来组成一个周长最大的三角形,
这时她的兄弟顺溜偷偷的溜了过来,偷走了第i根木棍,现在她想知道现在能够组成周长最大的三角形
的周长是多少?
输入描述:
第一行两个整数n和q。(1 ≤ n, q ≤ 105)
第二行n个整数表示第i根木棍的长度ai。(1 ≤ ai ≤ 109)
接下来q行,每行一个整数表示被顺溜偷走的木棍编号。注意每行的事件是独立的,也就是说每一次操作都是对于原来的n根木棍进行的。

输出描述:
对于每个询问输出一行表示答案,如果删除木棍后无法组成三角形则输出 -1 。
示例1
输入
复制
6 2
1 2 3 4 5 6
6
5
输出
复制
12
13
【代码】:

#include<string>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<cstring>
#include<set>
#include<queue>
#include<algorithm>
#include<vector>
#include<map>
#include<cctype>
#include<stack>
#include<sstream>
#include<list>
#include<assert.h>
#include<bitset>
#include<numeric>
using namespace std;typedef long long ll;
typedef unsigned long long ULL;
typedef pair<int,int> P;
const int INF = 0x3f3f3f3f;
const ll LNF = 1e18;
const int maxn = 1e5 + 100;
const int maxm = 100;
const double PI = acos(-1.0);
const double eps = 1e-8;
//const int dx[] = {-1,1,0,0,1,1,-1,-1};
//const int dy[] = {0,0,1,-1,1,-1,1,-1};
const int dx[] = {-1,1,0,0};
const int dy[] = {0,0,1,-1};const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int dir[6][3]={ {0,0,1},{0,0,-1},{-1,0,0},{1,0,0},{0,1,0},{0,-1,0} };ll n,q,p;
struct node
{ll x,id;
}a[maxn];bool cmp(node a, node b)
{return a.x>b.x;      //从最大值开始枚举
}ll solve()
{for(ll i=1; i+2<=n; i++)         //i+2最大值不能超过n{ll k1=i,k2=i+1,k3=i+2;     //模拟指针if(a[i].id == p)        { k1++; k2++; k3++;}     //遇到要删除的目标,指针后移else if(a[i+1].id == p) { k2++; k3++;      }else if(a[i+2].id == p) { k3++;            }if(a[k1].x < a[k2].x + a[k3].x) return a[k1].x + a[k2].x + a[k3].x;     //合法返回周长}return -1;
}
int main()
{scanf("%lld%lld",&n,&q);for(ll i=1;i<=n;i++){a[i].id=i;scanf("%lld",&a[i].x);}sort(a+1,a+n+1,cmp);while(q--){scanf("%lld",&p);printf("%lld\n",solve());}
}

转载于:https://www.cnblogs.com/Roni-i/p/9193666.html

牛客网 小白赛4 A三角形【贪心】相关推荐

  1. js牛客网、赛码网输入输出

    js牛客网.赛码网输入输出 牛客网在线判题系统JavaScript(V8)使用 输入 单行输入 只有一行输入或者一个 var line = read_line(); 只有一行数组 var line = ...

  2. 牛客网训练赛26D(xor)

    题目链接:https://www.nowcoder.com/acm/contest/180/D 线性基的学习:https://www.cnblogs.com/vb4896/p/6149022.html ...

  3. 牛客网 小白月赛4 D-郊区春游 最短路+状压dp

    链接: https://www.nowcoder.com/acm/contest/134/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  4. 牛客网小白月赛5 H-最大公约数(lcm)

    链接:https://www.nowcoder.com/acm/contest/135/H 来源:牛客网 题目描述 给定两个正整数a,b,求a,b的最小公倍数.(即[a,b]) 输入描述: 两个整整数 ...

  5. 牛客网小白月赛12(华华听月月唱歌)

    链接:https://ac.nowcoder.com/acm/contest/392/A 来源:牛客网 题目描述 月月唱歌超级好听的说!华华听说月月在某个网站发布了自己唱的歌曲,于是把完整的歌曲下载到 ...

  6. 牛客网小白月赛6D 字符串丝带

    链接:https://www.nowcoder.com/acm/contest/136/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言1310 ...

  7. 牛客网——小白月赛13 —— A题

    链接:https://ac.nowcoder.com/acm/contest/549/A 来源:牛客网 题目描述 这是一道签到题,主要考验比赛时的手速. 接下来是一段很简单的代码,或许你提交它就可以A ...

  8. 2018年,牛客网小白月赛5

    第一次啊,补题,希望大佬批评. 题目按我补题顺序来的. https://www.nowcoder.com/acm/contest/135#question H  题 最大公倍数 题意:给出两个数,求最 ...

  9. 牛客网、赛码网javascript在线编程的输入输出

    之前做剑指offer的题,题目的函数都已定义,自己只需要写函数体,等到做公司真题,才发现函数这些都是不存在的,输入输出都需要自己定义,百度后,写这篇博客加深印象. 首先,输入输出均采用nodeJS,n ...

最新文章

  1. unity3d 调用Start 注意
  2. 计算机数字信号原理,计算机网络通信原理数字信号的基带传输.ppt
  3. java基础 - file类(递归遍历目录)
  4. B端设计指南-表格设计的常见问题
  5. Qt加载本地字体 .ttc或.ttf
  6. jmeter(三)参数化
  7. Android,已知应用名称, 通过应用名称来启动应用
  8. python3.7安装包下载_Python 3.7下载 Python 3.7 for win32 (Python编程开发工具)官方安装版 下载-脚本之家...
  9. mysql从只有一个备份文件(多个数据库的备份)中恢复数据到指定数据库
  10. shell脚本基础练习题
  11. [功能改进]Ctrl+Enter直接提交评论
  12. 教学管理文件信息检索系统设计与实现
  13. python入门和使用
  14. iphone8引发的AR大事件
  15. Ip可视一键对讲机特点
  16. 移民新加坡要投资一个亿,如何无痛移民:雇主担保移民推荐给你
  17. 软件测试之自动化测试Pytest教程
  18. 力士乐压力补偿器ZDC25P-2X/M
  19. 如何在ppt中剔除图片的背景
  20. raid磁盘阵列OFFLINE后的应急处理方案

热门文章

  1. 树复制替换id_程序员的进阶课-架构师之路(12)-2-3-4树
  2. python中a=str(int(a))什么意思_如何解决TypeError:只能将str(而不是“int”)连接到str - python...
  3. 关于html文档,关于HTML的简介
  4. java比python难_python java JAVA比python难多少?
  5. python b64encode_Python base64模块详解 | 学步园
  6. echarts词云图形状_用Wordcloud生成指定形状的词云图
  7. 北斗导航 | 利用模拟卫星星座估计GNSS接收机位置
  8. VC++中的char,wchar_t,TCHAR(转载)
  9. mysql怎么实现事务序列化_一文快速搞懂MySQL InnoDB事务ACID实现原理(转)
  10. php读取配置文件连接mysql数据库,MySQL教程--通过配置文件连接数据库操作详解