【BZOJ4908】[BeiJing2017]开车 分块】的更多相关文章

[BZOJ4908][BeiJing2017]开车 Description 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ,bn .每个加油站只能支持一辆车的加油,所以你要把这些车开到不同的加油站加油.一个车从x位置开到y位置的代价为 |x-y| ,问如何安排车辆,使得代价之和最小.同时你有q个操作,每次操作会修改第i辆车的位置到x,你要回答每次修改操作之后最优安排方案的总代价. Input 第一行一个正整数n,接下来一行n个整数a1, a2, .…
来自FallDream的博客,未经允许,请勿转载,谢谢. 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ,bn .每个加油站只能支持一辆车的加油,所以你要把这些车开到不同的加油站加油.一个车从x位置开到y位置的代价为 |x-y| ,问如何安排车辆,使得代价之和最小.同时你有q个操作,每次操作会修改第i辆车的位置到x,你要回答每次修改操作之后最优安排方案的总代价.   n,m<=50000   首先排序之后一一匹配肯定是最优的. 把点离散之后,车看作…
Time Limit: 30 Sec  Memory Limit: 256 MB Description 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ,bn .每个加油站只能支持一辆车的加油,所以你要把这些车开到不同的加油站加油.一个车从x位置开到y位置的代价为 |x-y| ,问如何安排车辆,使得代价之和最小.同时你有q个操作,每次操作会修改第i辆车的位置到x,你要回答每次修改操作之后最优安排方案的总代价. Input 第一行一个正整数n,接下来…
[BJOI2017]开车 直接做要用栈 修改?难以直接维护 统计边的贡献! len*abs(pre)pre表示前缀car-stop 修改时候,整个区间的pre+1或者-1 分块,块内对pre排序并打标记 二分出0的位置,再根据pre的正负和本次是+1,-1,leni贡献+1还是-1的贡献 O(nsqrt(n)logn) #include<bits/stdc++.h> #define reg register int #define il inline #define fi first #def…
[BZOJ4861][Beijing2017]魔法咒语 题意:别看BZ的题面了,去看LOJ的题面吧~ 题解:显然,数据范围明显的分成了两部分:一个是L很小,每个基本词汇长度未知:一个是L很大,每个基本词汇的长度是1或2.看来只能写两份代码了. 对于L很小的,我们先将禁忌串建成一个AC自动机,然后预处理出to[i][j]表示AC自动机中的第i个节点在加入基本词汇j后会到达的节点.然后设f[i][j]表示总长度为i,匹配到第j个节点的方案数.然后DP一下就好了. 对于L很大的,我们想到矩乘,设ans…
背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现意外的情况. 但是在有些业务场景中,大文件上传又是必须的,比如邮箱附件,或者内部OA等等. 问题 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 upload_max_filesize = 2M //PHP最大能接受的文件大小 post_max_size = 8M //PHP能收到的最大PO…
传送:主席树做法http://www.cnblogs.com/candy99/p/6160704.html 做那倒带修改的主席树时就发现分块可以做,然后就试了试 思想和教主的魔法差不多,只不过那个是求>=v的有几个 既然一个数v的名次可以求,我们二分这个数就行了啊 然而...... 首先,你二分到的这个数不一定在区间里出现过 比如 1 2 5 8 9 4和5的名次都是3 于是,我修改了某个区间名次的定义: “如果一个数的名次是x,但是区间中没有次数,那么他的名次为x-1” 实现上只需要find里…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4467 题意:给定n个点m条边的无向图,点被染色(黑0/白1),边带边权.然后q个询问.询问分为两种: Change u:把点u的颜色反转(黑变白,白变黑),Asksum a b(a,b的值为0/1):统计所以边的权值和,边的两个点满足一个点的颜色为a,一个点的颜色为b. 思路:考虑暴力的做法.修改可以做法O(1),但是查询就得O(m).所以总复杂度为O(m*q)会TLE.然后考虑图分块.参考HDU…
Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 3192    Accepted Submission(s): 371 Problem Description You are given a rooted tree of N nodes, labeled from 1 to N. To the ith node a non-negat…
题意: 求一个序列中顺序的长度为3的等差数列. SOL: 对于这种计数问题都是用个数的卷积来进行统计.然而对于这个题有顺序的限制,不好直接统计,于是竟然可以分块?惊为天人... 考虑分块以后的序列: 一个块内直接枚举统计三个或两个在块内的. 只有一个在当前块我们假设它是中间那个,对左右其它块做卷积. 但是还是感觉复杂度有点玄学啊... 我比较傻逼...一开始块内统计根本没有想清楚...最后做卷积硬生生把复杂度变成了 $\sqrt{N}*N*log(N)$... 改了一个晚上终于没忍住看标程...…