自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2763: [JLOI2011]飞行路线

裸的狄杰,但我不太会写堆,抄了很久。#include#include#include#include#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#def

2017-11-07 08:37:12 279

原创 3700: 发展城市

这题需要大量的lca,预处理是可以,但是会写死,因此采用rmq。先学会如何求两个路径[a,b],[c,d]的交。只要分别求c,d到[a,b]距离最近的点[u,v],然后判u,v是否在[c,d]上即可。下面以用c求u为例。rif lca(r,c)!=r then uelse if lca(a,c)!=r then uelse u然后检验。ru∈[c,d]当且仅当u

2017-11-06 20:29:41 260

原创 #241. Lefkaritika

把点按横坐标排序,然后枚举正方形的底边所在行,可以对于横坐标相同的点,纵坐标大的没有卵用。对于每个正方形,假设在它上方的、纵坐标最小的前提下横坐标最小的点可以管辖它。那么很显然有些正方形是不会被管辖的。这些正方形夹在两个相邻的点中间,可以被O(1)算出来。然后剩下的正方形都有且只有一个点可以管辖。那么可以通过直接枚举管辖它的点来搞事情。枚举右边纵坐标小于它的点,左边横坐标小于等于它

2017-10-29 19:31:30 394

原创 #1956【NOIP2015模拟赛NO.9】vfk的地雷

概率dp就是这样,怎么想都是错的,题解怎么想都想不通,但它就是对的。期望有些难算,我们还是先算概率。f[i][j]表示前i个雷,挂了j句话。那么剩下还有r-j句话,编号1,..,r-j,第k句话挂的概率为(1-p[i])^(k-1)*p[i],所以有话挂的概率为它们的和,即1-(1-p[i])^(r-j),则没话挂的为(1-p[i])^(r-j),记为x则f[i][j]+=f[i-

2017-10-05 16:31:20 271

原创 P1415 拆分数列

恕我直言智商有限,被傻逼题给虐了。两次dp就好了。f表示以i结尾的、最后一个数最小是多少(记录最后一个数开头的位置)。g表示以i开头的、第一个数最大的是多少。注意考虑g的初始条件时要考虑最后一个数的前缀0。这种题不会做真的不想活了。#include#include#include#include#include#includeusing namespace std;#de

2017-10-04 21:09:36 369

原创 P1436 棋盘分割

记忆化搜索。一眼题不解释。感觉这道题不值得我写博客。

2017-10-04 21:07:50 223

原创 #228. 噼里啪啦

先考虑这个问题的弱化版(貌似与解题无关),我们把这个问题放到数组上。考虑贪心。将区间排序以后,去掉有包含关系的,会得到一坨横纵坐标均单调递增的区间。这时只要每次取最右边那个就可以了。然后再考虑这题。一次性把lca搞出来,然后按深度从大到小枚举。把链会伸到它的子树里的询问全部删掉。易知这是对的。代码:#include#include#include#include#inclu

2017-09-24 20:58:25 230

原创 3241: [Noi2013]书法家

从洛谷的分类可以看出这是道dp题。记fn[i]为N的R[k]≤I时N的最大贡献,fo[i][j]为O的u≤i,u+W-1≥j时O的最大贡献,fi[i]为I的P[1]>=i时I的最大贡献。求出上述三者后可以O(m^2)求得答案。另外地,记Sj[i][j]为第j列前i个的和,对于fo[i][j]:

2017-09-03 19:23:48 293

原创 P1273 有线电视网

别看他n=3000,其实是道O(n^3)的背包!

2017-09-03 16:28:56 207

原创 P1235 血缘关系

整天邻接表不开两倍内存,还调半天调不出,跟个傻逼一样。

2017-08-30 16:52:32 680

原创 1057: [ZJOI2007]棋盘制作

单(shan)调(tiao)栈(jian)

2017-08-19 23:16:10 222

原创 P1131 [ZJOI2007]时态同步

十年前的ZJOI真良心,n=1e6还O(n)。#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*(x))#define G getchar()

2017-08-19 14:36:44 290

原创 P1232 树的计数

13年的NOI题。这个题很容易想错,但代码真的好写。不要被数据范围所欺骗。这题可以O(n)做出来。先按bfs序把点重新标号。然后从1到n枚举,当枚举到i时:如果i的位置在i-1前,i必对深度有1的贡献。因为i的深度必大于i-1,而i-1是之前所有点中深度最大的。证毕。否则,必有一种选择使i对深度无贡献,即把i挂在dfs序与i相差最小的、深度比i小1的点上。可以证明这使唯一的,因

2017-08-17 14:33:58 298

原创 P1119 灾后重建

以x为源点跑一次dijkstra,然后以x为跳板跑Floyd的一部分。

2017-08-15 16:22:12 389

原创 1758: [Wc2010]重建计划

#pragma GCC optimize("O2")#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*(x))#define G getchar

2017-08-15 15:18:20 279

原创 FIBTREE - Fibonacci Numbers on Tree

斐波那契数列的通项公式而在膜1e9+9的条件下,有一个与sqrt(5)等价的数,这个数就是383008016。因此上式可以改写成276601605*(((1+383008016)*500000005)^n-((1-383008016)*500000005)^n))即两个等比数列的和,这样就能用线段树打标记,然后O(1)求值了。第二个询问用树剖搞搞就好了。第三个询问分两种情况。当y是

2017-08-11 15:43:53 334

原创 QUERY - Observing the Tree

嘴巴可做,手写崩溃。

2017-08-10 16:09:21 271

原创 #164. 【清华集训2015】V

这个故事告诉我们要先想清楚再写代码!

2017-08-10 11:03:19 505

原创 3745: [Coci2015]Norma

多画图能使文章变得饱满

2017-08-09 16:26:33 535

原创 STREETTA - The Street

理解了一个上午,写了一个下午,搞笑了一个晚上,又调了一个上午

2017-08-08 10:57:39 276

原创 4399: 魔法少女LJJ

这个题的题面傻逼

2017-08-07 20:47:36 530

原创 5589 - Tree

不知道错哪了。欢迎来指正。

2017-08-06 15:57:25 234

原创 617E - XOR and Favorite Number

莫队,用统计每个块内每个值出现了几次。对数列进行前缀异或和,每个查询因此相当于问a[l-1]^a[r]是否为k。因此l移动时统计a[l-1]^k出现的次数,r移动时统计a[r]^k出现的次数。没了。

2017-08-05 14:46:04 240

原创 2800: [Poi2012]Leveling Ground

2017-08-04 11:03:42 320

原创 1150: [CTSC2007]数据备份Backup

上面的插入、删除操作均需用堆维护。想不通,把堆写错了。。。#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*(x))#d

2017-08-04 09:05:55 241

原创 1639 - Picnic Planning

#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*(x))#define G getchar()#define LL long

2017-08-03 14:30:56 190

原创 4349: 最小树形图

建一个rt,对所有点连一条边,边权为原代价。再读入其他边,跑最小树形图。最后答案再加上每个点的最小入边*(攻打次数-1)

2017-08-01 20:25:46 255

原创 2395: [Balkan 2011]Timeismoney

最小乘积生成树板子题。#include#include#include#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*

2017-08-01 19:36:46 183

原创 2001: [Hnoi2010]City 城市建设

写了我一整天

2017-07-31 19:09:19 401

原创 4567: [Scoi2016]背单词

逆序插入字典树,dfs时每次先搜单词数最少的子树、假的。

2017-07-31 10:41:52 265

原创 #5. 【NOI2014】动物园

%miaom

2017-07-31 10:27:32 322

原创 70D - Professor's task

这个故事告诉我们在适当的时候要学会膜标程。

2017-07-31 08:40:06 340

原创 1392 - Surround the Trees

凸包裸题。#include#include#include#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define sqr(x) ((x)*(x))#

2017-07-29 15:01:04 211

原创 2728 - Desert King

最小比率生成树的模板个头啊。

2017-07-28 16:17:28 225

原创 P1070 新年趣事之游戏

次小生成树板题。先求出最小生成树。(因为题目没有说清楚边的条数,所以我使用了prim)然后在最小生成树上预处理出每两点间的树边的最大值。(每个点BFS一边就好了。)然后枚举没加进去的边,每次替掉所在环上除自己外的最大值,取Min就是答案了。复杂度O(n^2)。代码:#include#include#include#include#include#include#

2017-07-28 15:33:23 303

原创 1243 网络提速

建图跑最短路。#include#include#include#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define G getchar()#d

2017-07-28 13:59:39 225

原创 T7025 miaom与+1(一)

以下摘自王哲凡教授的课件。•先构造出S到T的最短路网。•最短路网是啥?•满足dis_(S,x)+W_(x,y)+dis_(y,T)=dis_(S,T)的边(x,y)组成的图。•然后在最短路网上dp出S到每个点x的路径条数P_x 和每个点x到T的路径条数Q_x•设P_T=Q_S=Z•一个点x为必经点当且仅当Z=P_x Q_x•一条边(x,y)为必经边当且仅当Z

2017-07-27 20:28:39 409 1

原创 P3371 【模板】单源最短路径

dijkstra堆优化

2017-07-27 16:46:11 269

原创 4484: [Jsoi2015]最小表示

讲一句废话。边x->y能被删掉当且仅当x能走过其他路到y。先进行拓扑排序,然后按拓扑序的逆序加点,这样可以保证每次加进去的点都没有入度。记当前枚到的点为x。然后对x能到的所有点按到出度为0的点的最长路排序,从大到小枚举,记为y。用bitset维护一个点能到达哪些点。如果y到的点x都已经能到了,那就把x->y删掉。

2017-07-27 14:47:21 494

原创 3417 - Network

TMD树剖过不掉。#pragma GCC optimize("O2")#include#include#include#include#include#include#includeusing namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#def

2017-07-27 14:04:29 243

空空如也

空空如也

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

TA关注的人

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