当前位置: 首页 > news >正文

番禺建设网站外包网站建设人员

番禺建设网站外包,网站建设人员,潢川手机网站建设,做代理的项目在哪个网站给定一个长度为 N 的整数数列:A1, A2, ... , AN。你要重复以下操作 K 次: 每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除。 并把与它相邻的整数加上被删除的数值。 输出 K 次操作后…

给定一个长度为 N 的整数数列:A1, A2, ... , AN。你要重复以下操作 K 次:
每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除。
并把与它相邻的整数加上被删除的数值。
输出 K 次操作后的序列。

输入格式

第一行包含两个整数 N 和 K。
第二行包含 N 个整数,A1, A2, ... , AN。
对于 20% 的数据,1 ≤ K < N ≤ 10000。
对于 100% 的数据,1 ≤ K < N ≤ 5 × 1e5,0 ≤ Ai ≤ 1e8。

输出格式

输出 N − K 个整数,中间用一个空格隔开,代表 K 次操作后的序列。

输入样例

5 3
1 4 2 8 7
输出样例

17 7
数据范围与提示

数列变化如下,中括号里的数是当次操作中被选择的数:
[1] 4 2 8 7
5 [2] 8 7
[7] 10 7
17 7

暴力模式

#include <iostream>using namespace std;
int k,n;
const int N=10010;
#define INF 0x3f3f3f3f3f3f3f
typedef long long int;
typedef pair<int, int> pii;
int a[N];
bool st[N];void solve()
{cin >> k>>n;for (int i = 0; i < n; i++){cin >> a[i];}for (int  i = 0; i < k; i++){int minNum = INF;int pos = -1;for (int j = 0; j < n; j++){if (minNum > a[j]&&!st[j]){minNum = a[j];pos = j;}}st[pos] = true;for (int j = pos+1; j < n; j++){if (!st[j]){a[j] += minNum;break;}}for (int  j = pos-1; j >0; j--){if(!st[j]){a[j] += minNum;break;}}}for (int i = 0; i < n; i++){if (!st[i])cout << a[i];}cout << endl;
}
unsigned main()
{ios::sync_with_stdio(false);int num = 1;while (num)solve();
}

最优解

小根堆求解

#include <queue>关键代码stl

priority_queue<pii, vector<pii>, greater<pii>>q;

#include <iostream>
#include <queue>using namespace std;
int k,n;
const int N=10010;
#define INF 0x3f3f3f3f3f3f3f
typedef long long int;
typedef pair<int, int> pii;
int a[N], l[N], r[N];
int st[N];void solve()
{cin >> n >> k;priority_queue<pii, vector<pii>, greater<pii>>q;for (int i = 0; i < n; i++){cin >> a[i];st[i] = a[i];q.push({ a[i],i });l[i] = i - 1;r[i] = i + 1;if (i == n)r[i] = -1;}while (k){pii t = q.top();q.pop();if (t.first != st[t.second]){q.push({ st[t.second] , t.second});continue;}k--;int pos = t.second;if (l[pos] >= 0){st[l[pos]] += t.first;r[l[pos]] = r[pos];}if (r[pos] >= 0){st[r[pos]] += t.first;l[r[pos]] = l[pos];}st[pos] = -1;}for (int i = 0; i < n; i++){if (st[i] != -1)cout << st[i] << ' ';}cout << endl;}
unsigned main()
{ios::sync_with_stdio(false);int num = 1;while (num)solve();
}

http://www.yayakq.cn/news/216739/

相关文章:

  • 网站建设 软文在网站上做外贸
  • 网站集约化建设什么意思仙游县网站建设
  • 网站开发 印花税wordpress 获取page
  • 深圳商业网站建设哪家网站开发自适应
  • 信息化建设官方网站网上有哪些接单做效果图的网站
  • 做网站温州什么网站权威评价搜索引擎优劣
  • 盐城市城镇化建设投资集团网站哪里有做app开发的
  • 东莞市专注网站建设开发 网站 团队
  • 深圳罗湖网站设计西安短视频代运营
  • 惠州 网站建设公司食品安全网站建设
  • 网站建设开发服务费下什么科目网站风格下载
  • 泰州市做网站做瞹瞹网站
  • 政务网站开发方案wordpress wp footer
  • 网站扒皮下载后怎么做seo 优化教程
  • 企业标准版网站建设沈阳网站建设开发
  • 北京大良网站建设开源网站建设
  • 重庆巨能建设集团网站wordpress 主题 发布
  • 保定网页模板建站杭州品牌网站建设推广
  • 网站设计如何自学sql2008做网站
  • 青岛高端网站开发怎么制作网页表格
  • 越秀网站建设哪家好国产 做 视频网站
  • 重庆网站建设吧网络正常
  • 建设银行网站首页口用html5做的个人网站
  • 郴州卖房网站外加工订单网
  • 南陵网站建设自己做产品品牌网站
  • 网站开发摊销期微营销是什么意思
  • 瑞安市规划建设局网站长沙优化官网公司
  • 视频网站开发技术书wordpress后台中文设置
  • 网站被很多公司抄袭查国外网站备案
  • 大学生帮别人做网站河北省建设工程招标投标信息网