51Nod-1552-白兰地定位系统
来源:互联网 发布:linux介绍 编辑:程序博客网 时间:2024/04/27 22:28
ACM模版
描述
题解
自觉这个题出得十分糟糕,糟糕透了……我到现在也没有弄懂这个题意……到底是始终从
我找了一下大神们的代码,表示没有理解完全,没有理解输出
我在想,如果是某个不包括
代码
#include <cstdio>#include <iostream>using namespace std;typedef long long ll;const int MAXN = 2e5 + 10;const ll INF = 0x3f3f3f3f3f3f3f3f;int n, m;ll a[MAXN];ll b[MAXN];template <class T>inline void scan_d(T &ret){ char c; ret = 0; while ((c = getchar()) < '0' || c > '9'); while (c >= '0' && c <= '9') { ret = ret * 10 + (c - '0'), c = getchar(); }}int main(){ scan_d(n); for (int i = 1; i <= n; i++) { scan_d(a[i]); } scan_d(m); int x; for (int i = 1; i <= m; i++) { scan_d(x); b[x]++; if (x == 1 || x == n) { b[x]++; } } ll mx = 0, mn = INF; for (int i = 1; i <= n; i++) { mx = max(mx, b[i]); mn = min(mn, b[i]); } if (mn == mx) { int flag = 0; for (int i = 1; i <= n - 2; i++) { if (a[i + 1] - a[i] != a[i + 2] - a[i + 1]) { flag = 1; break; } } if (flag) { puts("-1"); } else { printf("%lld", (a[n] - a[1]) * mn - (a[2] - a[1])); } } else { ll ans = 0; for (int i = 2; i <= n; i++) { ans += (a[i] - a[i - 1]) * min(b[i], b[i - 1]); } cout << ans << endl; } return 0;}
阅读全文
0 0
- 51Nod-1552-白兰地定位系统
- 51nod 1314 定位系统
- 51nod 1314 定位系统 树形dp
- 51nod 1491 黄金系统
- 51Nod-1491-黄金系统
- 51nod 1491 黄金系统
- 51nod 1491 黄金系统
- 51 nod 1491 黄金系统(贡献)
- 定位系统
- 定位系统
- 系统定位
- 系统定位
- 51nod 1491-黄金系统(数论->递推)
- 法国科涅克(Cognac)白兰地酒(干邑白兰地)
- 51Nod
- 51Nod
- 51nod
- 51Nod
- 数据库常用sql语句和操作
- 参数类型调用注意
- 编程工作一天的时间安排!
- 评教管理系统
- cms架构下消息机制
- 51Nod-1552-白兰地定位系统
- Git的下载、安装与配置
- Linux--定时命令crontab
- poj 1258 Agri-Net
- java线程(二)
- ACM集训日记-7月31日
- ZooKeeper学习(一)
- Sum of Medians
- Date和LocalDate互转