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 ...
随机推荐
- LeetCode 129. Sum Root to Leaf Numbers 动态演示
树的数值为[0, 9], 每一条从根到叶子的路径都构成一个整数,(根的数字为首位),求所有构成的所有整数的和 深度优先搜索,通过一个参数累加整数 class Solution { public: vo ...
- hdu6228Tree
Problem Description Consider a un-rooted tree T which is not the biological significance of tree or ...
- TCGA癌症缩写、癌症中英文对照
Cohort 英文名称 中文名称 ACC Adrenocortical carcinoma 肾上腺皮质癌 BLCA Bladder Urothelial Carcinoma 膀胱尿路上皮癌 BRCA ...
- CSS的置换和非置换元素
一个来自面试的坑. 面试的时候考官先问了行内元素和块级元素的区别,这个不难理解.然后一脚就踩进了,置换元素的坑.例如img就是行内置换元素,这种行内元素是可以设置宽高的. 什么是置换元素 一个内容不受 ...
- UML类图及类之间关系
1.UML基本介绍 UML:统一建模语言,是一种用于软件系统分析和设计的语言工具 2.UML图 UML图分类: 用例图 静态结构图:类图,对象图,包图,组件图,部署图 动态行为图:交互图,状态图,活动 ...
- Codeforces 1114B (贪心)
题面 传送门 分析 答案很好看出,显然是选最大的m*k个数 那么如何构造方案呢 我们把最大的m*k个数的位置标记为1,其他标记为0 从左到右维护一个ptr,记录有标记的数的个数,如果当前有m个有标记的 ...
- js实现方块弹珠游戏
下载地址:https://files.cnblogs.com/files/liumaowu/%E5%BC%B9%E4%B8%80%E5%BC%B9%E6%89%93%E6%96%B9%E5%9D%97 ...
- Codeforces - 1194B - Yet Another Crosses Problem - 水题
https://codeforc.es/contest/1194/problem/B 好像也没什么思维,就是一个水题,不过蛮有趣的.意思是找缺黑色最少的行列十字.用O(n)的空间预处理掉一维,然后用O ...
- C# form 传参数的几个方法
方法一:传值最先想到的,Form2构造函数中接收一个string类型参数,即Form1中选中行的文本,将Form2的TextBox控件的Text设置为该string,即完成了Form1向Form2的传 ...
- MVC模型的基本原理及实现原理
[转载]MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.n ...