自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1306: [CQOI2009]match循环赛

题目链接题目大意:循环赛,给出所有队伍的最终得分,求方案数题解:n只队伍共n*(n-1)/2场比赛,理论复杂度3283283^{28},显然不科学 玄学剪枝1.若x的目前得分超过最终得分则剪枝 2.若x剩余比赛全胜也无法达到最终得分则剪枝 3.用最终得分-目前得分直接计算出x最后一场比赛的应得分,看上去没什么用,但是由于搜索树最后一层节点最多,实际效果不错我的收获:剪枝大法...

2017-10-25 21:26:32 566

原创 4590: [Shoi2015]自动刷题机

题目链接题目大意:有一种自动刷题机。每秒,有两种可能的结果:写了x行代码,或删掉了之前写的y行代码。(如果y大于当前代码长度则相当于全部删除。)一旦自动刷题机在某秒结束时积累了大于等于n行的代码,它就会自动AC一题,然后新建一个文件开始写下一题。知道共切了k道题。求n可能的最小值和最大值。题解:答案具有单调性,二分需要注意的是二分成立的条件并非刷题数=k,这样即使能够二分出答案也不一定是合法解,需要

2017-10-25 21:12:07 404

原创 3191: [JLOI2013]卡牌游戏

题目链接题目大意:有一种自动刷题机。每秒,有两种可能的结果:写了x行代码,或删掉了之前写的y行代码。(如果y大于当前代码长度则相当于全部删除。)一旦自动刷题机在某秒结束时积累了大于等于n行的代码,它就会自动AC一题,然后新建一个文件开始写下一题。知道共切了k道题。求n可能的最小值和最大值题解:答案满足单调性,二分二分题判断无解要注意二分的条件 本题二分成立的条件并不是恰好做了k题,所以不能用mi=

2017-10-25 20:33:52 438

原创 1826: [JSOI2010]缓存交换

题目链接题目大意:有一个起始状态为空的集合,对集合会进行n次操作 每次操作会在集合中查找元素x,如果集合中没有元素x,那么不开心度就会+1,同时如果集合内元素个数小于m,那么他会把x放入集合中;如果集合内元素等于m,那么他必须删去集合中一个元素,然后再把x放入集合 最小化不开心度题解:贪心,删掉后继位置最大的元素 用堆维护具体实现:若x存在:更新x的nxt 若堆满:弹出 将x加入堆中由于二

2017-10-25 20:23:35 344

原创 1659: [Usaco2006 Mar]Lights Out 关灯

题目链接题目大意:给出一个初始01串和一个操作串,每次可以选一个位置l,让初始串从l开始与操作串异或,在最少化1的个数的同时最少化操作次数,输出字典序最大的操作方案题解:迭代加深搜索,从小到大枚举最终亮着的灯数 剪枝就是迭代加深本身和记录操作数#include <iostream>#include <cstdio>#include <cstring>using namespace std;c

2017-10-24 21:02:24 453

原创 4033: [HAOI2015]树上染色

题目链接题目大意:有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。问收益最大值是多少题解:f[i][j]表示以i为根的子树染了j个黑点对答案的最大贡献Orz出题人 Orz题解考虑计算子树内的点与子树外的点组合所产生的权值 统计所有边对答案

2017-10-24 20:53:57 318

原创 2124: 等差子序列

题目链接题目大意:给出n的排列,求是否存在长度大于等于3的等差数论题解:显然只需要求长度等于3的等差数列 枚举等差中项b,判断是否存在a+c=2b,其中a在b之前,c在b之后b,判断是否存在a+c=2b,其中a在b之前,c在b之后 两个bitset维护左边的20000-a和右边的c,如果把左边右移20000-2b后与右边的与不为0则存在我的收获:bitset大法吼#include <iostre

2017-10-20 08:16:10 373

原创 1617: [Usaco2008 Mar]River Crossing渡河问题

题目链接题目大意:带不同数量的牛需要时间累加,求最小渡河时间题解:f[i]表示运送前i头牛并返回的最小代价,转移显然我的收获:……#include <iostream>#include <cstdio>using namespace std;#define INF 0x3f3f3f3fint n,m;int c[5005],f[5005];void init(){ cin>>n

2017-10-20 07:45:20 307

原创 1907: 树的路径覆盖

题目链接题目大意:求树的最小路径覆盖数题解:Tree dp或贪心 Orz题解我的收获:贪心强啊,dp神啊#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int M=300005;int T,n;int t,head[M];int f[M][2];struct edge{int

2017-10-20 07:41:52 269

原创 1996: [Hnoi2010]chorus 合唱队

题目链接题目大意:给定一个元素两两不相等的目标序列,每次按照给定方式将一个元素加入到序列当中,问得到目标序列的方案有几种题解:没有规律,考虑dp一下 因为加入的人需要和上一个人进行比较,那么记录进状态里,用f[i][j][0/1]表示[l,r]区间,最后加入的在f[i][j][0/1]表示[l,r]区间,最后加入的在l/r的方案数转移按照题目中所说 需要注意的是f[i][i][0]和f[i][i

2017-10-20 07:32:07 398

原创 3155: Preprefix sum

题目链接题目大意:单点修改,求前缀和的前缀和题解:树状数组实现区间修改的思路 SSt=∑i=1tai∗i=∑i=1tai∗(n−i+1)−(n−t)∑i=1taiSS_t=\sum\limits_{i=1}^{t} a_i*i=\sum\limits_{i=1}^{t}a_{i}*(n-i+1)-(n-t)\sum\limits_{i=1}^{t}a_{i}维护两个前缀和,∑(n−i+1)ai\s

2017-10-20 07:23:01 235

原创 3011: [Usaco2012 Dec]Running Away From the Barn

题目链接题目大意:给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于(题面上漏了等于)l的点有多少个题解:考虑自上而下推出答案,但是答案的转移无法直接dp实现 那么从下到上维护可并大根堆,堆中存储每个点到根的距离 堆顶大于l就弹出我的收获:树上自下而上思想#include <iostream>#include <cstdio>#include <cstring>using na

2017-10-19 20:05:46 674

原创 3477: [Usaco2014 Mar]Sabotage

题目链接题目大意:给你N个数,第一个和最后一个不能去掉。 现希望去掉中间某段连续的数,使得剩下的数的平均值最小化题解:最大/最小化平均数->二分平均数,然后每个数二分值,搞一搞是否大于0对于这题,先减去平均值,求最大连续子段和mx 那么此时序列由 L + mx + R组成. L + mx + R = sum - n * m, sum为原序列的和.假如二分的答案m是可行的, 那么 L + R =

2017-10-19 19:39:52 272

原创 3714: [PA2014]Kuglarz

题目链接题目大意:一个01序列,花费cijc_{ij}可以知道sum(i,j)的奇偶性 求最少花费多少钱可以还原这个序列题解:把前缀和数组当作点 知道sum(i,j)的奇偶性=知道sum[j]-sum[i-1]的奇偶性 还原序列=知道所有sum[]的奇偶性 发现这个东西是可以互推的,所以把所有点联通就可以了在(i−1,j)连权为cij的边在(i-1,j)连权为c_{ij}的边我的收获:神奇建

2017-10-19 19:08:04 337

原创 2936: [Poi1999]降 水

题目链接题目大意:矩形,每一个格子有一个高度,求最多积水体积题解:根据木桶效应,一个点积水取决于它周围高度最低的那个 从边界开始floodfill,易知边界上点不会积水 具体实现时用一个小根堆进行bfs,这样每个点第一个被访问一定是与其联通的格子中高度最低的,就可以求出其积水高度了我的收获:Orz方法#include <iostream>#include <cstdio>#include <

2017-10-19 18:45:14 489

原创 1614: [Usaco2007 Jan]Telephone Lines架设电话线

题目链接题目大意:给定一张图,定义两点间的距离为路径上边权的max, 可以使k条边边权为0,求1~n的最短路题解:分层图?不需要,贪心考虑,免费道路一定选权大的 二分答案,判断能否找到一条路径,使得该路径上大于mid的值不超过k条,将大于mid的边权置为1,否则为0,最短路即可求解我的收获:贪心考虑,大力二分#include <iostream>#include <cstring>#incl

2017-10-19 17:52:17 278

原创 1477: 青蛙的约会

题目链接题目大意:数轴上两只青蛙分别从X,Y出发,一个一次跳m米,一个一次跳n米,L米后回到原点,求几次碰面题解:X+am≡Y+an(modL)X+am\equiv Y+an(\mod L),求解a 整理一下a(m−n)≡Y−X(modL)a(m-n)\equiv Y-X(\mod L) 变成不定方程a(m−n)+kL=Y−Xa(m-n)+kL=Y-X 然后扩展欧几里得求最小正整数解 m<<

2017-10-19 17:44:14 329

原创 1304: [CQOI2009]叶子的染色

题目链接题目大意:m个结点的无根树,可以选择一个度数大于1的结点作为根,然后给一些结点着黑/白色,着色需要保证根结点到每个叶子的简单路径上都至少包含一个有色结点,给出根到每个叶子路径上最后一个有色节点的颜色,最小化着色点数题解:如果确定了根,只需要dp一下就可以求出答案了 f[i][0/1]表示以i为根的子树,i为0/1的代价可以随便选一个非叶子节点为根…… Orz我的收获:#include <

2017-10-19 17:33:54 566

原创 1131: [POI2008]Sta

题目链接题目大意:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大题解:比较套路的树形dp,自顶向下更新答案 首先dfs得到以1为根的答案 考虑将选择的点由1移动到1的儿子v 有size[v]个点dep-1,(n-size[v])个点dep+1即f[v]=f[x]+n−2∗size[v]即f[v]=f[x]+n−2∗size[v]即f[v]=f[x]+n...

2017-10-19 17:14:04 397

空空如也

空空如也

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

TA关注的人

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