自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FTM's Blog

有人说我冰雪聪明~~~

  • 博客(143)
  • 收藏
  • 关注

原创 故事

故事很长,蒙蒙慢慢讲(不定期更新)4.7 SDOI Round1 Day0到了宾馆以后,各自回房间。 蒙蒙和HZW在一个房间, 正在开心的颓的时候 电话响了,是LJM,问我们房间是几号。 蒙蒙灵机一动把冷老师和水神(ZSM,wfyz信息队的妹纸,颜值担当)的房间告诉他了。 一想到LJM敲开门时尴尬的样子就莫名的鸡冻呢 HZW在旁边一边听蒙蒙镇定自若的打电话,一边使劲憋着笑。 “对,就是

2017-05-22 09:39:32 604 2

原创 无题

无题知道吗,地球这样的行星,是产生不了重元素的 你身体里的铁,来自璀璨的超新星爆炸 血液里的锌,源自两次中子星对撞后喷射向宇宙的尘埃 那微量的铜,更是需要见证一颗白矮星的死亡 即使是最微不足道的钴,也源自几十亿光年外的星云 某种意义上讲,人类对星空怀有好奇,渴望探寻星辰大海的尽头,是正常的 我们是真正的星辰之子 所以当再有人对你说,我只是一个普通人的时候 你可以这样告诉她作者:卢诗翰

2017-11-06 10:08:14 442

原创 黑骑士

黑骑士缩点·树形Dp题目大意:给你一个图,保证每个点最多属于一个简单环,每个点度数最多为3,求这个图的“眼镜图形个数” 保证图是联通的题解:先找环缩点,然后f[i]表示i的子树中有多少个 一条路径+一个圈,分当前点是不是缩起来的环 两种情况,统计答案即可。详见代码。Code:#include <iostream>#include <cstring>#include <cstdio>#defi

2017-10-21 08:48:20 372

原创 花花的森林forest

花花的森林forest维护树的直径·并查集题目大意:花花有一棵带 n 个顶点的树 T,每个节点有一个点权ai a_i 。 有一天,他认为拥有两棵树更好一些。所以,他从 T 中删去了一条边。 第二天,他认为三棵树或许又更好一些。因此,他又从他拥有的某一棵树中去除了一条边。 如此往复。每一天,花花都会删去一条尚未被删去的边,直到他得到了一个包含了 n 棵只有一个点的树的森林。 定义一条简单路径1

2017-10-20 16:43:36 502

原创 BZOJ3037: 创世纪

BZOJ3037: 创世纪树形Dp题解:先来考虑树上的情况,设f[u][0/1]表示u的子树中,这个点选或者不选的答案。 如果不选u,则其子节点v没什么限制,f[u][0]=∑max(f[v][0],f[v][1])f[u][0]=\sum \max (f[v][0],f[v][1]). 如果选u,则子节点至少一个不选,f[u][1]=∑v!=tmax(f[v][0],f[v][1])+f[t]

2017-10-20 11:55:25 626

原创 BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操

BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操二分·贪心题解:二分直径k。 在每个点把其每个儿子的最长链从大到小排序, 如果最大+次大>k,把最大砍掉,重复此过程并计数。为啥是对的? 当出现长度>k的链时,显然必须切一刀。 如果切在次长上,剩下最长继续和后面的判断,不优。 而切最长的最上面一条边一定可行。 因为如果最长切掉最上面一条边仍然>k,它在子节点就

2017-10-20 09:26:56 253

原创 凝固的时间

凝固的时间我看到了我的爱恋 我飞到她的身边 我捧出给她的礼物 那是一小块凝固的时间 时间上有美丽的条纹 摸起来像浅海的泥一样柔软 …… 她把时间涂满全身 然后拉起我飞向存在的边缘 这是灵态的飞行 我们眼中的星星像幽灵 星星眼中的我们也像幽灵——《三体》刘慈欣

2017-10-20 08:41:27 1973

原创 graph - hzw模拟赛Test13

graph - hzw模拟赛Test13Dp题解:注意到,如果按照要求走,这个图是没有环的!然而我一开始并没有注意到这一点(或者是没仔细往下想),去写spfa了。。。简单说一下我2s+的spfa,就是d[i][j]表示在i这个点,上一条边距离为j的最长路径的边数。注意到一个点均摊只有O(1)个有用状态,因此可以把j表示成能到达i点的第j大的边,另外开一个vector保存具体长度是几。当然d和vis也

2017-10-18 20:32:36 241

原创 点分治 模板 poj1714

点分治 模板 poj1714点分治Code:#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <vector>#define MP make_pair#define D(x) cout<<#x<<" = "<<x<<" "#define E cout<<endlusi

2017-10-18 18:15:42 335

原创 [USACO17FEB]Why Did the Cow Cross the Road II P

[USACO17FEB]Why Did the Cow Cross the Road II P树状数组·特殊的Dp更新方式题解:类似最长公共子序列的方程: f[i][j]=max( f[i-1][j], f[i][j-1] ) f[i][j]=max( f[i][j], f[i-1][j-1]+1 ) 当i、j可以匹配我们发现+1的位置很少,想办法只处理这些有贡献的。 也就是要快速推知f[i-

2017-10-18 12:13:35 450

原创 送分题 - hzw模拟赛Test10

送分题 - hzw模拟赛Test10Dp题解:啊啊啊好难啊,送分题都这么难。。。• 这题可以先设 f(u; k) 表示以节点 u 为根的⼦树中,在⽅案 合法的情况下,选中的点中离 u 最近的那个点距离⾄少为 k 的时候的答案 • 然后开始考虑如何转移,对于某个节点 u 来说,假设我们已 经处理出 f(u; k) 了,那么再添加⼀棵⼦树给 u,就应该考虑 如何更新 f(u; k),也就是我们

2017-10-17 17:51:59 256

原创 迷途未远

迷途未远悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。

2017-10-17 17:04:56 571

原创 Norma

Norma单调栈 好题题目大意:米尔科从他的祖母诺玛获得了整数数组的生日礼物。 和其他孩子一样,他希望有一些钱,但是得到了一个数组。 幸运的是,在他的城镇里有一个当铺买数组。 整数数组的代价是min·max·L元,其中min是数组中的最小整数,max是最大值,L是数组长度。 米尔科将从他的阵列中连续出售一连串的数字。 他计算了所有这些子序列的平均价格。 为了检查他的结果,他希望你做同样的事情。 他

2017-10-16 19:05:08 227

原创 [USACO17FEB]Why Did the Cow Cross the Road I P

[USACO17FEB]Why Did the Cow Cross the Road I P逆序对题解:性质1:转一个就行。 性质2:设c[i]是a[i]在b数组中的位置,ans=c的逆序对数量。 性质3:把队首的转到队尾去,答案+=大于它的-小于它的。Code://null

2017-10-14 18:57:39 474

原创 密码游戏 - bzoj十连测 Test7 T2

密码游戏 - bzoj十连测 Test7 T2并查集的神奇应用题解:一开始我和hzw都认为a可以随便取。。。————————zz分割线————————b[(a[(x[i]+a0)%m]+b0)%m]=y[i]b[(a[(x[i]+a_0)\%m]+b_0)\%m]=y[i]方便看把%m省去:b[a[x[i]+a0]+b0]=y[i]b[a[x[i]+a_0]+b_0]=y[i]a0=i%m,b0=i

2017-10-13 16:43:20 353

原创 [USACO17JAN]Building a Tall Barn建谷仓

[USACO17JAN]Building a Tall Barn建谷仓神奇的二分题解:Luogu题解。令 ti 表示 第i层多一头牛的改变量ti=a[i]/ci∗(ci+1)ti = a[i]/ci*(ci+1)最终状态中 ti 一定是很接近的,否则可以从j拿一头牛到i去,使得结果更优所以我们就二分 titi=a[i]/ci∗(ci+1)ti = a[i]/ci*(ci+1) —> ci2+ci−a

2017-10-12 22:04:18 329

原创 [USACO16DEC]Team Building团队建设

[USACO16DEC]Team Building团队建设动态规划题解:先排序。 设f[i][j][k]. 从f[i][j-1][k],f[i-1][j][k],f[i-1][j-1][k-1](a[i]>b[j]) 但是前两种途径有重复的:f[i-1][j-1][k]被加了两遍,减掉。Code:#include <algorithm>#include <iostream>#include

2017-10-11 18:43:48 379

原创 CF #439 E Another Maximum Problem

CF #439 E Another Maximum Problem分治·决策单调性题解:暴力Dp:设f[i][j]f[i][j]表示前i个分成j段的最小花费。f[i][j]=f[k][j−1]+cost(k+1,i)f[i][j]=f[k][j-1]+cost(k+1,i)cost=∑icnt[i](cnt[i]−1)2cost=\sum_{i}{cnt[i](cnt[i]-1)\over 2}时间

2017-10-11 14:45:43 194

原创 CF #439 E The Untended Antiquity

CF #439 E The Untended Antiquity随机化·二维BIT题解:添加一个矩形相当于为矩形内部的每个点都打上一个“在某个矩形内”的标记。查询的时候只要查询两个点的标记序列是否完全一样就行了。标记序列不好维护,直接把它变成一个数,类似于对它hash。要求可以撤销,xor是一个不错的选择。加减好像也可以。为了减少冲突,每个矩形的标记设为一个随机的unsigned long long

2017-10-11 14:43:51 300

原创 [USACO15DEC]高低卡(白金)High Card Low Card (Platinum)

[USACO15DEC]高低卡(白金)High Card Low Card (Platinum)贪心题解: http://blog.csdn.net/u010336344/article/details/52934289贪心! 从1到n扫一遍,f[i]记录点数大的赢到i时最多能赢几轮 反过来扫一遍,g[i]记录点数小的赢到i是最多能赢几轮 用set来贪心得到f[]和g[]。 这样f[i

2017-10-11 14:34:20 571

原创 [USACO15OPEN]被困在haybales(金)

[USACO15OPEN]被困在haybales(金)STL题解:我们发现假如能突破i+1和j-1的干草包,但是被i和j困住了,那么i和j之前的干草包的大小一定小于这两个干草包。 所以可以用一个set,从大到小依次加入,找到它的前驱和后继,如果跑不出去就给这个区间的每个点都暴力打标记。 打标记之前判断一下左端点有没有标记,这样保证每一段只标记一次。Code:#include <algorithm

2017-10-11 13:57:33 301

原创 [USACO15JAN]草鉴定Grass Cownoisseur

[USACO15JAN]草鉴定Grass Cownoisseur缩点题解:缩点,变成DAG。 求每个点到1所在bcc的路径权值和f1,1所在的bcc到每个点的路径权值和f2。 枚举一条边(u->v),用f1[v]+f2[u]+1所在bcc的size更新答案。Code:#include <iostream>#include <cstring>#include <cstdio>#include

2017-10-11 12:09:56 401

原创 [USACO15JAN]牛的矩形Cow Rectangles

[USACO15JAN]牛的矩形Cow Rectangles极大子矩形·单调栈·二分题解:先单调栈求极大子矩形,对于每个再二分压缩掉空白的部分。Code:#include <iostream>#include <cstring>#include <cstdio>#include <vector>#define D(x) cout<<#x<<" = "<<x<<" "#define E c

2017-10-11 12:04:57 287

原创 [USACO13DEC]假期计划(黄金)Vacation Planning (gold)

[USACO13DEC]假期计划(黄金)Vacation Planning (gold)最短路题解:luogu上的题面简直无可挑剔! 建议大家看英文。所有的边都是和关键点相连的,并且关键点只有200个。 因此跑一下关键点到每个点的最短路。 询问的时候,如果a是关键点就直接查表, 否则a走一步一定是一个关键点,还是查表。Code:#include <iostream>#include <cs

2017-10-05 08:40:53 491

原创 [USACO13NOV]没有找零No Change

[USACO13NOV]没有找零No Change状压Dp题解:f[S]表示用了集合S里的coin之后做多购买前多少个。 转移的时候枚举一个coin,二分一下。 统计答案的时候,所有f[S]==n的算出钱数来,取个min。Code:#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#defi

2017-10-05 08:37:09 464

原创 [USACO13MAR]牛跑The Cow Run

[USACO13MAR]牛跑The Cow Run区间Dp题解:蓝书上有道修长城的题目和这个类似啊 好像那个每个点单位时间带来的花费还不一样没关系,都是一种做法很明显任意时刻解决掉的牛都是一段连续的区间 设f[i][j][0/1]表示已经解决了[i,j]的牛,当前站在i或j,的最小花费 转移很简单,详见代码 注意要从0出发,因此添加0的虚拟点,排序后的位置设为s 边界f[s][s][0/1

2017-10-04 22:55:48 702

原创 [USACO13JAN]座位Seating

[USACO13JAN]座位Seating线段树题解:线段树维护区最长全0区间。 支持区间修改为一个值。查询的时候,先看看左区间是否有满足要求的,有就往左走; 否则看看跨越左区间和右区间的那段是否满足要求,满足就选它; 否则往右走。(在一开始就特判操作失败的情况后,则此时右边一定有)一定别漏了pushdown!Code:#include <iostream>#include <cstring

2017-10-04 22:48:24 767

原创 [USACO13NOV]POGO的牛Pogo-Cow

[USACO13NOV]POGO的牛Pogo-CowDp题解:1000的数据,Luogu上被n^3水过,500ms+我能怎么办,我也很绝望啊~f[i][j]表示第i个从第j个转移过来的最大价值 边界:f[i][i]=c[i] 转移:暴力枚举下一个——————乱搞分割线—————— (严肃脸) i是当前,j是上一个,k是下一个 k只能从连续的一段j中转移 或许正解是log维护区间的max?

2017-10-04 22:39:43 379

原创 CF 853-C

CF 853-C主席树 http://codeforces.com/problemset/problem/853/C题解:选择的矩形的四条边延长,将整个平面分成9块。 求出这9块中各自有多少点,分情况讨论即可。二维前缀和MLE?上主席树啦~Code:#include <iostream>#include <cstring>#include <cstdio>#define D(x) co

2017-10-04 15:46:34 549

原创 [USACO13OPEN]重力异常What's Up With Gravity

[USACO13OPEN]重力异常What’s Up With Gravity最短路题解:按要求模拟,跑最短路。Code:#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int N = 505;const int INF = 0x3f3f3f3f

2017-10-04 15:33:49 417

原创 [USACO13OPEN]燃油经济性Fuel Economy

[USACO13OPEN]燃油经济性Fuel Economy贪心题解:先特判-1和0.在一个加油站x时,它往后G的范围内,如果: 1. 有比它费用小的加油站y,就在x加恰好能走到y的油,直接跳到y。 2. 没有。此时在x加满油,跳到范围内费用最小的加油站。细节见代码。Code:#include <algorithm>#include <iostream>#include <cstring>

2017-10-04 15:31:35 571

原创 CF #437

CF #437 http://codeforces.com/contest/867B. Save the problem!乱搞Code:#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(){ int n; scanf("%d",&n); if(n==

2017-10-03 20:55:46 329

原创 BZOJ3203: [SDOI2013]保护出题人

BZOJ3203: [SDOI2013]保护出题人凸包·三分题解:http://www.cnblogs.com/iwtwiioi/p/4007263.htmlCode:#include <iostream>#include <cstring>#include <cstdio>#define D(x) cout<<#x<<" = "<<x<<" "#define E cout<<endlu

2017-09-09 15:00:03 262

原创 BZOJ1009: [HNOI2008]GT考试

BZOJ4423: [AMPPZ2013]Bytehattan对偶图·并查集题解: http://www.cnblogs.com/lcf-2000/p/6217985.html  删除一条边可以看做把两个空块连通。当删除一条边时这条边紧邻的两个空块已经连通了,那么删除这条边会导致这条边的两个顶点不连通。  仔细想想觉得非常有道理。当删除一条边时发现这条边紧邻的两个空块已经连通了,那么删除这条边

2017-09-09 11:21:18 273

原创 Machine Works UVALive - 5133

Machine Works UVALive - 5133超哥线段树优化Dp题解:裸方程很好想:fi=max{fj+Gj∗(Di−Dj−1}−Pi+Rif_i=\max\{f_j+G_j*(D_i-D_j-1\}-P_i+R_i当前面的max小于Pi的时候fi=−inff_i=-\inf.时间复杂度:O(n2)O(n^2).其实就是维护一次函数的最大值。直接超哥线段树即可。正解好像是单调队列 ?Cod

2017-09-07 19:35:42 318

原创 BZOJ1568: [JSOI2008]Blue Mary开公司

BZOJ1568: [JSOI2008]Blue Mary开公司超哥线段树题解:超哥线段树裸题。一张著名的图: 就是每个节点保存一个一次函数y,当插入新函数yy的时候,如果yy在整个区间都比y优,则替换成yy,反之保留y。当在区间中有交点的时候,哪个在终点位置的值好保留哪个,另一个往下推,推到交点所在的区间。查询的时候一路取max即可。Code:#include <iostream>#inclu

2017-09-06 14:43:08 341

原创 BZOJ2597: [Wc2007]剪刀石头布

BZOJ2597: [Wc2007]剪刀石头布费用流 之 特殊性质建图题解:感觉数据范围像网络流之类的,但是根本不会做。。。当直观建模失效的时候,就弃疗吧,一般要么就是线性规划建图,要么就是有特殊的性质。我们注意到图中的边是完全的,这时候应该想到总共有C(n,3)个三角形,正难则反,减去不符合条件的就是答案。定义a败给b等价于a->b,当一个三角形中的一个点x有两条出边时,这个三角形就是不符合条件的

2017-09-06 11:48:06 371

原创 BZOJ4423: [AMPPZ2013]Bytehattan

BZOJ4423: [AMPPZ2013]Bytehattan对偶图·并查集题解: http://www.cnblogs.com/lcf-2000/p/6217985.html  删除一条边可以看做把两个空块连通。当删除一条边时这条边紧邻的两个空块已经连通了,那么删除这条边会导致这条边的两个顶点不连通。  仔细想想觉得非常有道理。当删除一条边时发现这条边紧邻的两个空块已经连通了,那么删除这条边

2017-09-06 09:45:02 227

原创 LA5106: Let the light guide us

LA5106: Let the light guide usDp·树状数组题解:裸方程: 当|j−k|<=magic[i−1][k]+magic[i][j]|j-k|<=magic[i-1][k]+magic[i][j]时, f[i][j]=min{f[i−1][k]}+cost[i][j]f[i][j]=min\{f[i-1][k]\}+cost[i][j]时间复杂度:O(nm2)O(nm^2

2017-09-05 16:09:54 316

原创 BZOJ2118: 墨墨的等式

BZOJ2118: 墨墨的等式完全背包求可行方案数题解:http://blog.csdn.net/lych_cys/article/details/50804776核心思想:设其中最小的w是p,设d[i]表示总重量%p=i的最小重量。 放入一个重量为w的物品时,d[i]+w去更新d[(i+w)%p],最短路即可。另外p不取最小的w正确性没有影响,就是点数多了。Code:#include <iost

2017-09-04 12:00:25 252

空空如也

空空如也

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

TA关注的人

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