自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 【ZJOI2014】【BZOJ3527】 力 (FFT)

Description给出序列{qi}\{q_i\},求Ei=∑j<iqj(i−j)2−∑j>iqj(i−j)2E_i = \sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}Solution考虑: 令t=n−it = n - i , pn−i=qip_{n - i} = q_i Ei=∑j=1i−1qjgi−j−∑j=i+1nq

2017-11-28 22:10:48 322

原创 快速傅里叶变换(FFT)板子

递归版//UOJ 34//Luogu 3803//By Hany01#include&lt;bits/stdc++.h&gt;#define For(i ,j , k) for (int i = (j) ; i &lt;= (k) ; ++ i)#ifdef hany01 #define debug(...) fprintf(stderr , __VA_ARGS__)#...

2017-11-28 19:45:27 347

原创 NOIP2017 逛公园 (拓扑,dp,最短路)

Descriptionclick meSolution先从起点和终点各一遍最短路(spfa或者Dijkstra的堆优化),然后拓扑,如果一个点在零环上且到起点、终点的距离之和符合题目要求,输出-1,否则dp: 设dpi,jdp_{i,j}为到第ii个点、路径长度为最短路+j+j的方案数,转移应该非常显然了吧 Code#include<bits/stdc++.h>using namespace st

2017-11-27 19:50:43 381

原创 SRM 719 div1 Medium (树形dp)

Description一棵树有n个节点,编号为0到n − 1。你可以从一个顶点走到它的任何一个相邻顶点。 每个顶点有个可正可负的快乐度,你也有一个快乐度,这个值最开始是0。在他到达一个顶点的时候,他的快乐度将会加上该顶点的快乐度。 当然有时候你的快乐度会是负数, 这个时候他会很难受于是会宣泄情绪让快乐度重新变成 0。 如果经过了任何一个曾经经过的节点,快乐度不会变化,哪怕这个节点的快乐度为负数。 也

2017-11-26 21:36:27 305

原创 SRM 719 div2 Hard (01Trie,最大异或和)

Description给定一棵带边权的树, 选择两条没有公共边的简单路径 (长度可以为00),使得所有在任意一条路径上的边的异或和尽量大。Solution题目要求选择的两条路径不能有公共边,但是考虑若两条路径有公共边,公共部分就会被异或掉,所以这个条件就不需要考虑了。 然后O(n2)O(n^2)预处理所有路径的值,丢到一个01Trie中求最大值就行了。Code#include<bits/stdc+

2017-11-26 21:11:21 346

原创 NOIP 2017 列队 (线段树动态开点)

Description既然众所周知我就不多说了Solution考虑对于每一行的前(m−1)(m - 1)个点建一棵线段树,最后一列单独建一棵线段树,每次操作在线段树中修改后把接在后面的人的编号丢到一个vector 里就行了。至于空间,动态开点即可。Code//Au: Hany01#include<bits/stdc++.h>using namespace std;typedef long long

2017-11-23 21:57:10 1855

原创 NOIP 2017 奶酪 (BFS)

Description现有一块大奶酪,它的高度为 hh,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z = 0z=0,奶酪的上表面为z = hz=h。 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另

2017-11-23 19:53:29 962

原创 NOIP 2017 小凯的疑惑 (数学)

Description小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。Solution这题比赛时似乎考挂了很多人啊。。 直接ab−a−bab-a-b就行了啊。 震惊! NOIP Day1 T1

2017-11-23 19:47:45 1750

原创 Codeforces Round #447 (Div 2 Only) Hack+FST记

上一场涨了158点rating,隔了一天又有一场,本来又想涨,结果。。A. QAQDescription给定一个长度小于等于100100的串,计算有多少个子序列是“QAQ”。Solution数据规模小,可以直接O(n2)O(n^2)暴力求解。Code传送门B. Ralph And His Magic FieldDescription有一个n×mn\times m的方阵,每个格子中可以填写11或−1-

2017-11-23 18:10:27 532

原创 Codeforces Round #446 (Div 2)

A. GreedDescription有nn罐可乐,你被告知每罐可乐的容量和已经装了多少可乐,问是否可以通过转移可乐使得最后只剩下两罐可乐。Solution选出容量最大的两罐可乐判断即可。Code传送门B. WrashDescription有nn个人,每个人可以杀死刚好在他前面的LiL_i个人,问最后有多少人活下来?Solution当然可以用线段树过。。然而其实O(n)O(n)从后往前扫一遍、每次更

2017-11-19 15:40:08 271

原创 NOIP 2017 完挂记

Day0Day0Day 0上午搞了个什么鬼动员大会,下午晚上在网上瞎逛,本想看一看splay什么的,但觉得联赛中这种东西绝对不考(立下flag),所以只是看了些联赛原题和题解,早早地就睡了。Day1Day1Day 1早上晕车了,感觉今天要完,刚进机房,坐到位置上,啥?没鼠标??(差评*1)然后让监考老师从后面弄了个鼠标来,却发现电脑完全开不了(差评*2),只能换到最后一排,前面是_...

2017-11-12 17:32:42 480

原创 NOIP 2009 最优贸易 (强连通分量、缩点、拓扑排序、SPFA、分层图)

Description传送门Solution联赛前一天在网上乱逛,发现了这个题,觉得特别妙(m-i-a-o 4 啊!),于是想写下来。2.1首先发现可以直接跑两边spfa,一个从起点出发求最低买入,一个在反图上从终点出发求最高卖出,注意判断死循环即可。2.2发现同一个强连通分量中的点可以乱逛,于是考虑缩点后拓扑排序、dp即可2.3本以为只有这两种做法了,偶然看见洛谷题解中有一种非常巧妙的方法——“分

2017-11-10 09:04:49 407

原创 NOIP 2010 引水入城 (BFS,DP)

Description传送门Solution首先通过将上端的所有点丢到队列里广搜判断是否无解; 然后从上端的每一个点分别开始广搜,找到其可以在下端覆盖的区间 为什么是区间? 如果这个区间间断了,那么这个间断的点就会比周围的点海拔都高,那么就会产生无解的情况,因为已经证明有解,所以不可能出现这种情况 ——洛谷某题解然后做线段覆盖即可。Code#include<bits/stdc++.

2017-11-09 20:36:55 253

原创 NOIP 2016 换教室 (期望DP)

Description对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有 2n2n 节课程安排在 nn 个时间段上。在第 i(1≤i≤n)i(1 \leq i \leq n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 cic_i上课,而另一节课程在教室 did_i进行。在不提交任何申请的情况下,学生们需要按时间段的顺

2017-11-08 20:13:19 291

原创 vimrc

syntax onautocmd BufNewFile *.cpp 0r ~/.vim/template/tpl.cppset nuset ruset mouse=aset nocompatibleset noswapfileset noreadonlyset nobackupset bs=2set ts=4set sts=4set sw=4set cinset auto

2017-11-08 19:45:20 259

原创 CF 803 F Coprime Subsequences (容斥原理)

Description给定一个序列,求有多少个子串(可以不连续)满足所有数的gcdgcd为1Solution设ansians_i为gcdgcd为ii的子串个数,fif_i为数列中是ii的倍数的数,则gcdgcd为ii的倍数的子序列个数显然是2f(i)−1−12^{f(i)-1}-1,则: ansi=∑d=1⌊ni⌋μ(d)×(2f(id)−1)ans_i=\sum_{d=1}^{\lfloor \

2017-11-08 19:32:04 280

原创 51nod 1302 矩形面积交 (不要把题目玩工业了。。)

Description有2N个矩形,这些矩形被标号为0 ~ 2N-1,对于第i个矩形其长宽分别为X[i]与Y[i]。现在要把这2N个矩形分为两组,每组N个,每个矩形恰好分到两组中的一组里。分成两组后,设两组分别为A组、B组,对于每一组矩形,你需要分别完成如下任务:将该组中的N个矩形依次放在一个平面上,可以相互重叠,要求每个矩形的4条边都平行于平面坐标系的X轴或Y轴,矩形在摆放时可以旋转90度后再摆放

2017-11-07 20:45:15 553

原创 NOIP2013 华容道 (BFS,最短路)

Description传送门Solution发现最优方案中一定是这样的: 1.空白格到达起始格的一侧 2.起始格移到空白格位置 3.空白格到达起始格的另一侧并转到步骤2 所以预处理出对于每个格子空白格从一侧绕道另一侧的最少步数,对于每次询问直接BFS即可Code//Author: Hany01#include<cstdio>#include<cstdlib>#include<cmath

2017-11-05 21:59:31 356

原创 NOIP2012 借教室 (线段树)

DescriptionSolution考虑用线段树维护,每借一段时间的教师便在线段树中减去对应的值,不理解为什么网上这么多二分的。。Code//Author: Hany01//Date: Nov 5th. 2017#include<bits/stdc++.h>#define For(i , j , k) for (int i = (j) , i##_end_ = (k) ; i <= i##_

2017-11-05 21:52:35 343

原创 NOIP2012 开车旅行 (倍增)

Description小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为Hi,城市 i 和城市 j 之间的距离 d[i,j]恰好是这两个城市海拔高度之差的绝对值,即d[i,j] = |Hi− Hj|。 旅行过程中,小 A 和小 B 轮流开车,第一天小 A 开车,之后每天轮换一次

2017-11-05 21:21:15 311

原创 ARC 071 F Infinite Sequence (DP)

Description你获得了无限个数,为此你需要一个无限长的数组来存储数,这个数组要满足以下条件 1. 数组仅包含 1,2,3,...,n1, 2, 3, ..., n; 2. 如果 n≤i,jn ≤ i, j,那么 ai=aja_i = a_j; 3. 如果 i<j<k≤i+aii < j < k ≤ i + a_i ,那么 aj=aka_j = a_k; 计算有多少种满足条件的数组,答

2017-11-04 16:48:25 303

原创 AGC 018 C Coin (堆)

Description有X+Y+ZX+Y+Z个人,每个人有一定的金、银、铜币,你可以向XX个人要金币,向YY个人要银币,向ZZ个人要铜币,且不能向同一个人要两种不同的钱币,问能拿到的钱币数量的最大值。Solution按金币减去银币的数量从小到大排序: 在这个顺序下,最佳方案中所有给予金币的人都在给予银币的人的右边。(想一想,为什么) 存在整数K使得:左边的K个人中,有Y个给银币的人,(K-Y)个

2017-11-03 20:47:16 519

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除