7 November in 614
每日总结不能少!让自己的头脑好好清醒清醒,才不会犯那些所谓的低级错误!
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的更多相关文章
- 8 November in 614
我开始看心灵鸡汤了-- 每当在书中读及那些卑微的努力,都觉得感动且受震撼.也许每个人在发出属于自己的光芒之前,都经历了无数的煎熬,漫长的黑夜,无尽的孤独,甚至不断的嘲讽和否定,但好在那些踮脚的少年,最 ...
- 6 November in 614
Contest A. greet map,完了. B. gift map,完了. C. [Usaco2008 Nov Gold] 安慰奶牛 最小生成树.新边权设为原边权的两倍,再加上两端点的点权.完了 ...
- 5 November in 614
Contest A. ssoj2964 交错的士兵 \(n\) 个数的排列,从左到右依次为 1, 2, -, \(n\).\(n\) 次操作,对于第 \(i\) 次操作,从左到右分成很多段,每段 \( ...
- [POJ1765]November Rain
[POJ1765]November Rain 试题描述 Contemporary buildings can have very complicated roofs. If we take a ver ...
- 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 ...
- TIOBE Index for November 2015(转载)
原文地址:http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html November Headline: Java once a ...
- 日常英语---七、[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.标准) 一.总结 一 ...
- Multi-Cloud & Kubernetes: Cloud Academy November 2018 Data Report
https://cloudacademy.com/research/multi-cloud-kubernetes-devops-cloud-academy-data-report-nov-18/ No ...
- 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 ...
随机推荐
- python自定义异常实例详解
python自定义异常实例详解 本文通过两种方法对Python 自定义异常进行讲解,第一种:创建一个新的exception类来拥有自己的异常,第二种:raise 唯一的一个参数指定了要被抛出的异常 1 ...
- Jmeter发送SOAP请求对WebService接口测试
Jmeter发送SOAP请求对WebService接口测试 1.测试计划中添加一个用户自定义变量 2.HTTP信息头管理器,添加Content-Tpe, application/soap+xml;c ...
- 16/7/11_PHP-图形图像操作
GD库简介 GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片. PHP除了能进行文本处理以外,通过GD ...
- 交换机vlan配置
vlan:virtual LAN 虚拟局域网 作用:通过VLAN技术,可以对局域网进行隔离,互相隔离开的局域网相互之间不能进行通信,一个VLAN为一个广播域 Vlan配置 GNS3(使用路由器来模拟 ...
- C. Roads in Berland
题目链接: http://codeforces.com/problemset/problem/25/C 题意: 给一个最初的所有点与点之间的最短距离的矩阵.然后向图里加边,原有的边不变,问加边后的各个 ...
- linux点滴记录
以下均为在Ubuntu下实践操作 更改DNS //编辑文件 - “/etc/resolv.conf”,打开“终端应用程序”-“附件” - “终端”,在终端里输入下面的命令: sudo nano /et ...
- 洛谷P3379 【模板】最近公共祖先(LCA)——LCA
给一手链接 https://www.luogu.com.cn/problem/P3379 算是lca的模板吧 #include<cstdio> #include<cstring> ...
- spring-第五篇之spring容器中的bean
1.bean的基本定义和bean别名 2.容器中bean的作用域 singleton:单例模式,在整个spring IoC容器中,singleton作用域的bean将只生成一个实例. prototyp ...
- P2469 [SDOI2010]星际竞速(费用流)
P2469 [SDOI2010]星际竞速 最小路径覆盖问题 每个星球必须恰好去一次,而每次高速航行都是从一个星球到另一个星球. 那么高速航行的起点可以保证被去过 高速航行和空间跳跃可以是互相独立的 将 ...
- JavaScript——面向对象编程
什么是面向对象? 面向对象编程(Object Oriented Programming,OOP编程)是一种计算机编程架构,它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成 ...