51Nod-1380-夹克老爷的逢三抽一
来源:互联网 发布:la域名查询 编辑:程序博客网 时间:2024/04/30 00:30
ACM模版
描述
题解
首先发一下官方题解吧:
按照官方题解写的代码发现自己一直在第
于是发现自己的代码中忽略了一个部分是暴力的思维,在查找左右两侧可选的村民时,我用了两个循环,这显然是不行的,所以我需要使用链表的思维,这样查找的复杂度就是
代码
#include <iostream>#include <cstdio>#include <set>using namespace std;typedef long long ll;const int MAXN = 1e5 + 10;int n;ll m[MAXN];int l[MAXN], r[MAXN];set<pair<ll, int> > spli;void del(int x){ spli.erase(make_pair(m[x], x)); r[l[x]] = r[x]; l[r[x]] = l[x];}int main(){ cin >> n; for (int i = 0; i < n; i++) { scanf("%lld", &m[i]); spli.insert(make_pair(m[i], i)); l[(i + 1) % n] = i; r[i] = (i + 1) % n; } int cnt = n / 3; ll ans = 0; for (int i = 0, j; i < cnt; i++) { j = spli.rbegin()->second; ll a = m[l[j]], b = m[j], c = m[r[j]]; ans += b; del(l[j]); del(r[j]); spli.erase(make_pair(m[j], j)); m[j] = a + c - b; spli.insert(make_pair(m[j], j)); } cout << ans << endl; return 0;}
阅读全文
0 0
- 51Nod-1380-夹克老爷的逢三抽一
- 51nod-1380 夹克老爷的逢三抽一(贪心)
- 【51 nod】1378 夹克老爷的愤怒
- 51nod 1378 夹克老爷的愤怒
- 51nod 1378 夹克老爷的愤怒
- 51 Nod 夹克老爷的愤怒
- 51Nod-1378-夹克老爷的愤怒
- 51Nod 1378 夹克老爷的愤怒
- 51nod138夹克老爷的逢三抽一
- [贪心] 51Nod1380 夹克老爷的逢三抽一
- 51nod 1378 夹克老爷的愤怒(树形dp,贪心)
- 51 nod 1378 夹克老爷的愤怒 树形dp + 贪心
- 51nod 1378 夹克老爷的愤怒(树形dp)
- 51nod 1378 夹克老爷的愤怒[贪心][树形dp?]
- 51nod 1378 夹克老爷的愤怒【贪心】
- 51nod 1378:夹克老爷的愤怒 很好玩的一道树状dp
- 【51 Nod1378】夹克老爷的愤怒
- 【51Nod1378】夹克老爷的愤怒
- 行转列
- 局域网访问PHP项目网站 用IP地址进入
- STM32--DMA详解
- Selenium之常见元素处理系列一--单选框(radio)
- Codeforces Round #430 (Div. 2)
- 51Nod-1380-夹克老爷的逢三抽一
- java面试题(剑指offer):之字形打印二叉树
- hdu1115求凸包重心
- 鼠标点击中的时候实现拖拽动作
- javaScriptCore 笔记
- 选取部分求和的数字中的最小数
- vue+webpack的快速使用指南
- eclipse封装jar包的简单过程
- Python发送QQ邮件