每日总结不能少!让自己的头脑好好清醒清醒,才不会犯那些所谓的低级错误!

Contest

A. ssoj3045 A 先生砍香蕉树

根据数据范围 \(m\le 1000,b\le 10000\),显然本题直接暴力枚举格点即可。没想到我为了优化代码推半天还推错了……

我最近做题有一个很主观的感知就是,我的复杂度估计很不准,数组大小估计也是。看来要好好反省一下。

DFS 遍历全图的复杂度是 \(O(m)\),DFS 枚举排列是 \(O(n!)\),DFS 枚举区间是 \(O(n^2)\),有单调性可以化为 \(O(n)\) 或 \(O(n\log n)\)。

BFS 复杂度与 DFS 差不多,主要是在栈空间上面的问题。

最短路 Floyd 复杂度 \(O(n^3)\),Dijkstra 复杂度 \(O(m\log m)\),SPFA 复杂度 \(O(nm)\),最小生成树 Kruskal \(O(m\log m)\)。

LCA 欧拉序上 ST 算法复杂度预处理 \(O(n\log n)\),每次询问 \(O(1)\)。

拓扑排序 \(O(n+m)\),强连通分量 Kosaraju \(O(n+m)\)(求后序遍历 dfn \(O(m)\),从 dfn 最大的顶点反向 DFS 为一个强连通分量;剩余点继续取 dfn 最大 DFS \(O(n)\))。

log 级别数据结构有 树状数组、线段树,并查集均摊 \(O(1)\)。线段树开 4 倍空间,常数大。

排序算法 \(O(n\log n)\)。

先背诵下来,再理解理解。

B. 草堆摆放 (restack)

FJ 买了一些干草堆,他想把这些干草堆分成 \(N\) 堆 (\(1\le N\le 100,000\)) 摆成一圈,其中第 \(i\) 堆有 \(B_i\) 数量的干草。不幸的是,负责运货的司机由于没有听清 FJ 的要求,只记住分成 \(N\) 堆摆成一圈这个要求,而每一堆的数量却是 \(A_i\) (\(1\le i\le N\))。当然 \(A_i\) 的总和肯定等于 \(B_i\) 的总和。FJ 可以通过移动干草来达到要求,即使得 \(A_i=B_i\),已知把一个干草移动 \(x\) 步需要消耗 \(x\) 数量的体力,相邻两个干草堆之间的步数为 1。请帮助 FJ 计算最少需要消耗多少体力才能完成任务。

与蓝书 P4 分金币同理。最终转化为求解中位数

#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
#define ll long long int n, B[100005];
ll ans; int main() {
scanf("%d", &n);
for (int i=1, A; i<=n; ++i) scanf("%d%d", &A, &B[i]), B[i]+=B[i-1]-A;
sort(B+1, B+n+1);
for (int i=1, m=n+1>>1; i<=n; ++i) ans+=B[m]>B[i]?B[m]-B[i]:B[i]-B[m];
printf("%lld\n", ans);
return 0;
}

C. Elephants (slo)

对于一个 \(1-N\) 的排列 \(a\),每次你可以交换两个数 \(a_x\) 与 \(a_y\),代价为 \(m(a_x)+m(a_y)\)。若干次交换的代价为每次交换的代价之和。\(N\) 个 100 到 6500 的整数,按照某个顺序排列。现在要交换若干次,每次交换两个数的位置,使得变成目标顺序。 请问将 \(a\) 变为 \(b\) 所需的最小代价是多少。

D. 电路维修

目前想法是 Dijkstra 做最短路,但因为数据水 AC 了。实际上这么做是有问题的,因为一个节点可能被多次访问。

正解应该是在 deque 上做 BFS。维护双端队列,新入队的边如果边权为 0 加入队头,边权为 1 加入队尾。这样就没有什么问题了。

我真是疯了,数组开那么小还 debug 半天……

7 November in 614的更多相关文章

  1. 8 November in 614

    我开始看心灵鸡汤了-- 每当在书中读及那些卑微的努力,都觉得感动且受震撼.也许每个人在发出属于自己的光芒之前,都经历了无数的煎熬,漫长的黑夜,无尽的孤独,甚至不断的嘲讽和否定,但好在那些踮脚的少年,最 ...

  2. 6 November in 614

    Contest A. greet map,完了. B. gift map,完了. C. [Usaco2008 Nov Gold] 安慰奶牛 最小生成树.新边权设为原边权的两倍,再加上两端点的点权.完了 ...

  3. 5 November in 614

    Contest A. ssoj2964 交错的士兵 \(n\) 个数的排列,从左到右依次为 1, 2, -, \(n\).\(n\) 次操作,对于第 \(i\) 次操作,从左到右分成很多段,每段 \( ...

  4. [POJ1765]November Rain

    [POJ1765]November Rain 试题描述 Contemporary buildings can have very complicated roofs. If we take a ver ...

  5. We will be discontinuing the Nitrous Development Platform and Cloud IDE on November 14th, 2016.

    我表示我很难过 Nitrous We will be discontinuing the Nitrous Development Platform and Cloud IDE on November ...

  6. TIOBE Index for November 2015(转载)

    原文地址:http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html November Headline: Java once a ...

  7. 日常英语---七、[Updated November 14 at 4:10 PM PST] Scheduled Game Update - November 14, 2018(n.标准)

    日常英语---七.[Updated November 14 at 4:10 PM PST] Scheduled Game Update - November 14, 2018(n.标准) 一.总结 一 ...

  8. Multi-Cloud & Kubernetes: Cloud Academy November 2018 Data Report

    https://cloudacademy.com/research/multi-cloud-kubernetes-devops-cloud-academy-data-report-nov-18/ No ...

  9. ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbilisi, November 24, 2010

    ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbil ...

随机推荐

  1. 【ABAP系列】SAP ABAP 工单增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 工单增强   ...

  2. HTML5-autio、video视频音频

    完整版视屏web播放器: 基本autio和ideo介绍 <!DOCTYPE html> <html lang="en"> <head> < ...

  3. servlet--response、request

    请求响应流程图 response 1       response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServle ...

  4. SpringMVC请求处理流程源码

    我们首先引用<Spring in Action>上的一张图来了解Spring MVC 的核心组件和大致处理流程: 从上图中看到①.DispatcherServlet 是SpringMVC ...

  5. Map3

    map切片: 切片的数据类型如果是map,则我们称为 slice of map, map切片,这样使用则map个数就可以动态变化了. 案例演示:要求:会用一个map来记录monster的信息 name ...

  6. jquery实现按键增加删除css属性(hide)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. JS方法使用中文出参数 ,报错异常

    正常这样加载数字没问题,但是当参数是中文时就会报错 <li onclick='onSeach(‘’" + name+ "');'>" + name+ &quo ...

  8. 攻防世界--csaw2013reversing2

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/3f35642056324371b913687e770e97e6.exe 1.准备 打开 ...

  9. uoj396 [NOI2018]屠龙勇士

    [NOI2018]屠龙勇士 描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 1∼n 顺序杀掉 n 条巨龙,每条巨龙拥有一个初始的生命值 ai .同时每条巨龙拥有恢复能 ...

  10. React Native实践总结一

    一.React的世界观1.通过改变state来改变视图视图不用考虑如何改变自己,把state画出来即可.2.变量不可变通过创建一个新的state来更改state,使得变更可追踪,不容易因为其他部分修改 ...