题目

算法标签里的算法什么的都不会啊

什么二叉堆??

qbxt出去学习的时候讲的,一段时间之前做的,现在才写到博客上的

维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那一部分,队列3表示每一次被切的蚯蚓被分开的较短的那一部分。

我们先把原序列排序,因为不管怎么切,先被切的蚯蚓分成的两部分一定比后切的蚯蚓分成的两部分大

寻找每次切哪一只蚯蚓就是在队列1、队列2、队列3的队头找一个算上增加的长度最大的蚯蚓,之后把他出队,切开的两部分分别进入队2、队3。

最后合并输出

Code:

#include <queue>
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
unsigned long long n, m, q, u, v, a[N], ans[N], s, y, tot, t;
queue<int>q1, q2, q3;
int cmp (long x, long y) {
return x > y;
}
int maxn () {
long long x1 = -( << ), x2 = x1, x3 = x1;
if (!q1.empty ()) x1 = q1.front ();
if (!q2.empty ()) x2 = q2.front ();
if (!q3.empty ()) x3 = q3.front ();
if (x1 >= x2 && x1 >= x3) {q1.pop (); return x1;}
if (x2 >= x1 && x2 >= x3) {q2.pop (); return x2;}
q3.pop ();return x3;
}
void putin (long long x1, long long x2) {
if (x1 < x2) swap (x1, x2);
q2.push(x1);
q3.push(x2);
return ;
}
int main () {
scanf ("%lld%lld%lld%lld%lld%lld", &n, &m, &q, &u, &v, &t);
for (long long i = ; i <= n; i++) scanf ("%lld", &a[i]);
sort (a + , a + + n, cmp);
for (long long i = ; i <= n; i++) q1.push(a[i]);
for (long long i = ; i <= m; i++) {
ans[i] = maxn() + y;
long long j = ans[i] * u / v, k = ans[i] - j;
y += q;
putin (j - y, k - y);
}
while (!q1.empty () || !q2.empty () || !q3.empty ()) a[++tot] = maxn() + y;
for (long long i = t; i <= m; i += t) printf ("%lld ", ans[i]);
printf ("\n");
for (long long i = t; i <= tot; i += t) printf ("%lld ", a[i]);
return ;
}

谢谢收看,祝身体健康!

最新文章

  1. [IDEA] 快捷键学习
  2. ios label上显示特殊字符 % &quot;
  3. [整理]iis7.5下部署MVC5
  4. ffmpeg-20160811-bin.7z
  5. ReflectionToStringBuilder
  6. mysql导入和导出数据
  7. eclipse导入maven项目后依赖jar包更新问题-&gt;update project按钮
  8. Android(java)学习笔记237:多媒体之图形的变化处理
  9. Windows修改hosts文件及位置
  10. js 编码问题
  11. lpc1768usb使用-配置
  12. const和static readonly的区别
  13. LVM 移除PV步骤
  14. Ubuntu 14 如何解压 .zip、.rar 文件
  15. python之路——12
  16. 编织织物的knit course direction and knit wale direction
  17. NODE-WEBKIT教程(6)NATIVE UI API 之MENU(菜单)
  18. Git 入门详解
  19. 甲题题解-1116. Come on! Let’s C (20)-(素数筛选法)
  20. 解决日志unicode编码问题

热门文章

  1. 【MySQL】binlog2sql
  2. Swagger 自定义UI界面
  3. 初次用R的实际案例数据分析
  4. SpringBoot热部署(实战)详解
  5. 12、Render函数
  6. css权重等级
  7. C# ??(两个问号)的表达式使用详解
  8. Mark: 如何用Haskell写一个简单的编译器
  9. 纯C语言实现线性表
  10. 如何提升Web前端性能?