自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Free Cornel~~~跳动的犰狳

渡远荆门外,怀孕也上班,金毛狗妖精,睡不好一觉(狗右脚是不是在家没事干)

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

原创 HNOI2015实验比较--树型DP

我看了一下,网上好像没有跟我一样做法的,而且我根本学不会那个做法。那我只好发个博客啦(做法也许有错)!题意有nnn个物品和mmm个条件,每个条件表示iii的权值小于或等于jjj的权值,每个jjj只会出现一次。 要求给每个物品分配一个权值,使得满足所有的条件,并且111到MAXMAXMAX的每个值都出现了(其中MAXMAXMAX指最大权值)。分析首先i=ji=ji=j的条件...

2018-03-13 22:03:03 211

原创 HNOI2015接水果--整体二分

题意给你一棵nnn个点的树和mmm条路径,每条路径有权值。接下来有qqq次询问,每次再给出一条路径,询问这条路径完全覆盖的路径中权值第kkk小的路径权值。做法考虑路径(u,v)(u,v)(u,v)会被哪些路径完全覆盖,那么就有两种情况: 1、uuu是vvv的祖先,那么完全覆盖它的路径(x,y)(x,y)(x,y)满足dfn[x]∈[1,dfn[w]−1]⋃[edn[w]+1,n]...

2018-03-08 16:47:58 390

原创 CQOI2011动态逆序对--cdq分治

题意:给出一个1~n的排列,按顺序删掉m个元素,求出每次删除操作之前序列的逆序对个数.做法:这题显然可以用树套树之类的工业结构维护,但是我怎么可能会呢.考虑离线cdq分治,可以把问题反过来,转化为每次添加一个元素,求添加后序列的逆序对个数.把每个元素看成平面上的点,x,y坐标分别是元素大小和插入位置,产生贡献的一对点则满足(x<x')!=(y<y').设f[i]是添加第i个元素后,包含...

2017-05-18 11:14:54 277

原创 NOI2014魔法森林--LCT

题意:求一条1->n的路径,使得路径上的MAXA+MAXB最小。做法:以a值从小到大对边排序,动态加边,维护一个最小生成树就行了。如果两个端点不连通,则直接加上,否则就把这个环上b值最大的边删掉,用LCT维护。PS:UOJ上居然还有hack单旋的,太坑了。#include<iostream>#include<cstdio>#include<algorithm...

2017-04-09 17:22:08 346 2

原创 POJ1811--miller rabin&pollard rho

好久以前写过这个题(吗),但是显然毫无意义,今天再写一遍吧。(玄学算法判断素数和质因数分解。)#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;#define REP(I,ST,ED) for(int I=ST;I<=ED;++I)#define DREP...

2017-04-03 20:04:38 275

原创 迷之数论--扩展bsgs和扩展lucas

贴两个链接吧反正我也说不清楚。扩展bsgs:点击打开链接扩展lucas:点击打开链接留个代码纪念一下。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<map>using namespace std;#define REP(I,...

2017-03-29 15:11:27 926 2

原创 SCOI2012喵星球的点名--后缀数组

求子串的问题,本来想找一道AC自动机的题做,结果这题的字符有10000种,会比较麻烦,所以考虑后缀数组。我部分细节处理感觉非常的暴力,所以非常的慢。。。。。。。。#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=200005;int...

2017-03-11 19:38:40 223

原创 HAOI2010软件安装--强连通缩点+树型dp

今天复习了一下强连通分量(显然之前就没学得好)。强连通分量一般用在环套树的有向图中,先把每个强连通分量缩点,然后把它当做普通树处理。双联通分量也顺便看了一下,但是感觉用处远远没有强连通分量大啊。借这道题来纪念一下强连通分量,希望以后有用上的时候。#include<iostream>#include<cstdio>#include<cstring>#incl...

2017-02-19 21:39:45 302

原创 SDOI2009Elaxia的路线--想法+dijkstra

题意:给出一个无向图和s1,t1,s2,t2,求出s1-t1和s2-t2的最短路,使得这两条路径的最大公共路径最长。做法:因为两点间最短路可能不唯一,所以不能直接构造。如果一条边u-v在s-t的最短路径中,那么d[s][u]+c[u][v]+d[v][t]=d[s][t]。所以预处理以s1,t1,s2,t2为原点的最短路径,再找出对s1,t1和s2,t2都满足上面式子的边,然后删去其他

2017-02-02 16:17:04 262

原创 POJ3468--Splay维护区间加标记

好久没写Splay了。#include#includeusing namespace std;typedef long long ll;const int maxn=100005;struct Splay_Tree{ ll sum[maxn]; int fa[maxn],ch[maxn][2],sz[maxn],val[maxn],add[maxn]; void push_up

2017-02-01 20:00:12 384

原创 AHOI2009中国象棋--巧妙dp

题目意思是在一个n*m(n,m考虑用dp,设三维dp[i][j][k],代表枚举到i行,有j列只有1个棋子,k列有2个棋子的方案数,那么放0个棋子的列数就是m-j-k了。在i行可以放0,1,2个棋子,那么我们模拟一下,就可以推出dp方程了。#include#includeusing namespace std;const int maxn=105,mod=9999973;int

2017-01-23 21:51:27 296

原创 ZJOI2009狼和羊的故事--dinic网络流

题意就是任意两个1和2都不能有路径相连通。做法是最小割,但是暴力增广会T4个点,而dinic没记cur数组会T2个点,开了以后速度飞快。。。。。。#include#include#include#includeusing namespace std;const int maxn=105,Maxn=maxn*maxn,inf=1e9,dir[4][2]={{1,0},{0,1},{

2017-01-22 20:26:55 267

原创 ZJOI2012网络--LCT强化练习

太强了!!!!!!!!#include#include#includeusing namespace std;const int maxn=10005,maxc=10;#define mp make_pairint val[maxn];struct Link_Cut_Tree{ int Max[maxn],fa[maxn],deg[maxn],ch[maxn][2]; boo

2017-01-21 21:35:17 273 1

原创 SDOI2008洞穴勘测--LCT入门

LCT真是太抽象了,sak(%%%)给我讲了一下,大概懂了但是还有很多存在漏洞的地方。显然,先发篇博客再慢慢看吧。。。。。。。。#include#includeusing namespace std;const int maxn=10005;struct Link_Cut_Tree{ bool rev[maxn]; int fa[maxn],ch[maxn][2]; void p

2017-01-19 21:58:08 270 1

原创 SCOI2010序列操作--线段树迷之维护

硬刚了一晚上终于刚完了,发篇博客纪念一下。#include#includeusing namespace std;const int maxn=100005;struct Seg_Tree{ int sum[maxn<<2],Max[maxn<<2][2],fuz[maxn<<2]; int Maxl[maxn<<2][2],Maxr[maxn<<2][2]; bool rev[

2017-01-16 22:18:14 347 1

原创 一般图匹配--带花树算法

思路很简单,但是写起来很迷。#include#include#include #includeusing namespace std;const int maxn=505,maxm=250005;int link[maxn],pre[maxn],fa[maxn],col[maxn],n;int Begin[maxn],Next[maxm],to[maxm],e;bool vis

2017-01-15 22:28:54 368

原创 UOJ164--历史最值维护

#include#includeusing namespace std;typedef long long ll;const int maxn=500005;const ll inf=1e18;struct Seg_Tree{ ll Add[maxn<<2],Fuz[maxn<<2],Maxadd[maxn<<2],Maxfuz[maxn<<2]; void create_tree

2017-01-15 21:28:08 279 1

原创 迭代FFT模板

显然,时间和空间都比递归的好#include#include#include#includeusing namespace std;typedef double lf;const lf pi=acos(-1);const int maxn=300005;complexa[maxn],b[maxn],c[maxn];int rev[maxn],n=1;void init(){

2017-01-02 10:11:13 508 1

原创 UVA12298--FFT(递归)

佳哥蓝书上的题,思路讲得很清楚了,这里注意一下取的牌点数为合数。#include#include#include#include#includeusing namespace std;typedef long double lf;const int maxn=300005;const lf pi=acos(-1);complexa[maxn],b[maxn],c[maxn],

2016-12-24 17:24:19 355

转载 一篇FFT好文

点击打开链接

2016-12-24 11:50:44 404

原创 AHOI2009维护序列--线段树lazy tag模板

区间加法和乘法,两个lazy数组同时维护。。。。。#include#includeusing namespace std;typedef long long ll;const int maxn=100005;ll mod;struct Tree{ ll sum[maxn<<2],add[maxn<<2],mul[maxn<<2]; void Mod(int p){ sum[p]

2016-12-14 23:05:56 290 1

原创 ZJOI2008树的计算--树链剖分裸题

第一次写树链剖分。。昨天晚上看到JMCDY(%%%)在不屑地写这道题,我便写了一波。dfs的时候top的位置写错了。。。找了好久,迷之错误。#include#include#includeusing namespace std;const int maxn=30005,inf=0x3f3f3f3f;int Max[maxn*4],val[maxn*4],Maxans,Sumans

2016-12-08 20:49:03 543

原创 HNOI2002跳蚤--容斥原理

题目描述:读入n,m两个数,假设一个合法的数列是n+1位,且前n位不大于m,第n+1位为m。对于每一个数列,跳蚤可以选取任意一个数列中的数k,往左或右走k步(可以走多次),若使用这一个数列跳蚤可以到达左边一步的位置,那么这一个数列就是可以完成任务的数列。现在需要求出可以完成任务的数列的总数。分析:题目需要找出所有能够到达左边一步位置的方案总数,能够到达左边一步,就相当于数列中所有数的最大公约数

2016-10-16 21:25:28 579

原创 块状链表

#include#include#include#includeusing namespace std;struct node{//建立一个块状链表 struct node *next,*last; vectorlist; node(){ next=NULL; list.clear(); }}*h;int sqrtn;void GET(node *p){//输出整

2016-05-17 08:59:58 366 1

空空如也

空空如也

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

TA关注的人

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