2017 Multi-University Training Contest
来源:互联网 发布:linux系统启动流程简述 编辑:程序博客网 时间:2024/06/02 04:50
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6168
一个序列a有n个数,然后序列b 是由a[i]+a[j]组成的且i != j.给出序列b,求序列a的元素个数
以及这n个元素是什么。
官方题解:
将b数组排序,取出最小的两项作为a1,a2,删除a1,a2,a1+a2,再取出最小项作为a3,再删除a3,a1+a3,a2+a3,再取出最小项作为a4,依次列推。
使用使用map暴力求解。
AC代码:
#include <bits/stdc++.h>using namespace std;const int maxn = 1e4;typedef long long ll;ll a[maxn];int main(){ ll num, m; while(~scanf("%lld", &m)) { map <ll, ll> M; ll min1=1000000009,min2=1000000000; ll n=(sqrt(8*m+1)-1)/2; for(ll i=0; i<m; i++) { scanf("%lld",&num); if(num < min2) { min1=min2; min2=num; } else if(num < min1) { min1=num; } M[num]++; } M[min1]--; M[min2]--; a[0] = min2; a[1] = min1; ll cnt = 1; while(cnt != n - 1) { for(ll i = 0; i < cnt; ++ i) { M[a[i] + a[cnt]] --; } map<ll, ll>::iterator it = M.begin(); while(it!= M.end()) { if(it->second == ll(0)) { M.erase(it++); } else { break; } } a[++cnt] = M.begin()->first; M[a[cnt]]--; } printf("%lld\n",n); printf("%lld",a[0]); for(int i=1; i<n; i++) printf("% lld",a[i]); printf("\n"); } return 0;}
阅读全文
0 0
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- HTTP 缓存机制详解
- SpringData 自动创建表设置配置
- java 高并发
- C语言(Head First C)-5_2:使用多个源文件:共享函数和共享变量
- Spring boot PUT、DELETE 请求无法定位方法及获取参数解决方案
- 2017 Multi-University Training Contest
- getDrawable过时的替代方法
- 台风眼(eye of storm) = 台风中心
- elasticsearch 5.4.0 安装 及elasticsearch-head 插件
- Table control中列隐藏实现方法
- Android之SurfaceView学习(一) 首先我们先来看下官方API对SurfaceView的介绍 SurfaceView的API介绍 Provides a dedicated draw
- 怎么把已有的RSA公私钥转换成PKCS8格式
- 数据结构中各种树(转)
- z-stack编译选项说明