11 2014 档案

摘要:缩点后转化成 DAG图上的单源最长路问题。spfa/dp随便。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int cmp[500001],sum,n,m,Us[500001],Vs[... 阅读全文
posted @ 2014-11-30 11:04 AutSky_JadeK 阅读(231) 评论(2) 推荐(0)
摘要:根据 高中的数学知识 即可推出 ans=m^n-m*(m-1)^(n-1) 。快速幂取模搞一下即可。 1 #include 2 using namespace std; 3 typedef long long ll; 4 #define MOD 100003 5 ll n,m; 6 ll Quick... 阅读全文
posted @ 2014-11-30 08:49 AutSky_JadeK 阅读(181) 评论(0) 推荐(0)
摘要:莫队经典。 开个数组维护a[i]出现的次数。 1 #include 2 #include 3 #include 4 using namespace std; 5 int Num,CH[12],f,c; 6 inline void R(int &x){ 7 c=0;f=1; 8 for... 阅读全文
posted @ 2014-11-28 15:58 AutSky_JadeK 阅读(200) 评论(0) 推荐(0)
摘要:题解见 :http://blog.csdn.net/iamzky/article/details/41088151ORZ ZKY2个懒标记:是否翻转,覆盖成了什么。怎么处理一个块上有两个标记的情况呢?若该块原来没有任何标记,或要打的标记和原本的标记种类相同,则直接打上标记;若已有翻转标记,再覆盖时则... 阅读全文
posted @ 2014-11-27 12:15 AutSky_JadeK 阅读(258) 评论(0) 推荐(0)
摘要:分块,打标记,维护两个标记:乘的 和 加的。每次 区间乘的时候,对 乘标记 和 加标记 都 乘上那个值。每次 区间加的时候 对 加标记 加上那个值。(ax+b)*v=axv+bv。开 long long。 1 #include 2 #include 3 using namespace std;... 阅读全文
posted @ 2014-11-26 16:01 AutSky_JadeK 阅读(227) 评论(0) 推荐(0)
摘要:权值的种类只有100种,对每种开个二维BIT,然后是经典操作。 1 #include 2 using namespace std; 3 int n,m,q,x1,y1,x2,y2,val,op,a[301][301]; 4 struct BIT_2D 5 { 6 int d[301][301... 阅读全文
posted @ 2014-11-25 16:58 AutSky_JadeK 阅读(182) 评论(0) 推荐(0)
摘要:发现,若使方差最小,则使Σ(wi-平均数)2最小即可。因为权值的范围很小,所以我们可以枚举这个平均数,每次把边权赋成(wi-平均数)2,做kruscal。但是,我们怎么知道枚举出来的平均数是不是恰好是我们的这n-1条边的呢? 就在更新答案的时候加个特判就行了。 1 #include 2 #inclu... 阅读全文
posted @ 2014-11-25 12:19 AutSky_JadeK 阅读(1124) 评论(0) 推荐(1)
摘要:裸的三维偏序。 对x坐标排序,y、z坐标分块。复杂度O(n*sqrt(n*log(n)))。代码很短。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 struct Point{int x,y,z,num;vo... 阅读全文
posted @ 2014-11-23 21:37 AutSky_JadeK 阅读(463) 评论(0) 推荐(0)
摘要:经典问题:二维偏序。给定平面中的n个点,求每个点左下方的点的个数。因为 所有点已经以y为第一关键字,x为第二关键字排好序,所以我们按读入顺序处理,仅仅需要计算x坐标小于树状数组。 1 #include 2 #include 3 #include 4 using namespace std; 5 st... 阅读全文
posted @ 2014-11-23 15:39 AutSky_JadeK 阅读(942) 评论(1) 推荐(0)
摘要:以下部分来自:http://www.cnblogs.com/zhuohan123/p/3726306.html此证明有误。DZY系列。这题首先是几个性质: 1.所有球质量相同,碰撞直接交换速度,而球又没有编号,那么就可以直接视作两个球没有碰撞。 2.所有的方向、初始位置都没有任何用处。然后就是速... 阅读全文
posted @ 2014-11-23 08:32 AutSky_JadeK 阅读(248) 评论(0) 推荐(0)
摘要:nlogn求出最长上升子序列长度。对每次询问,贪心地回答。设输入为x。当前数a[i]可能成为答案序列中的第k个,则若 f[i]>=x-k && a[i]>ans[k-1] 即可。f[i]表示以a[i]开头的最长上升子序列长度。但这个东西难以统计。so 我们将原序列反序,求f[i] 表示以 a[i]为... 阅读全文
posted @ 2014-11-22 20:18 AutSky_JadeK 阅读(228) 评论(2) 推荐(0)
摘要:本意是求最小瓶颈生成树,但是我们可以证明:最小生成树也是最小瓶颈生成树(其实我不会)。数据范围很小,暴力kruscal即可。 1 #include 2 #include 3 using namespace std; 4 struct Edge{int u,v,w;void Read(){scanf(... 阅读全文
posted @ 2014-11-22 17:11 AutSky_JadeK 阅读(290) 评论(0) 推荐(0)
摘要:f[i][j]表示第i首歌音量为j是否可能。若是将状态之间建边,那么答案就是max(j){f[i][j]==true&&0 2 using namespace std; 3 int n,vis[51][1001],w[51],limit,sta; 4 void dfs(int cur,int now... 阅读全文
posted @ 2014-11-22 16:50 AutSky_JadeK 阅读(202) 评论(0) 推荐(0)
摘要:小vijos P1447 Updown背景开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道、一辆停在轨道底部的电梯、和电梯内一杆控制电梯升降的巨大手柄。faebdc 之塔一共有 N 层,升降梯在每层都有一个停靠点。手柄有 M 个控制槽,第 i个控制槽... 阅读全文
posted @ 2014-11-22 13:58 AutSky_JadeK 阅读(246) 评论(0) 推荐(0)
摘要:暴力dp是n^2*m的……我们计算每棵树在每层的答案的时候,都需要计算出从那棵树转移过来最优。但是我们发现,对一棵树而言,从上面转移过来都是一样的,所以我们可以在计算每棵树在每层的答案的时候,先预处理出它应该从上面何处转移过来,消掉一个n。 1 #include 2 #include 3 using... 阅读全文
posted @ 2014-11-22 11:41 AutSky_JadeK 阅读(198) 评论(0) 推荐(0)
摘要:若打了一只鼹鼠后,还能打另一只,我们可以在它们之间连权值为1的边。于是答案就是 以m为终点的最长路长度+1。建反图,就是单源最长路。MLE TLE 一时爽。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 ve... 阅读全文
posted @ 2014-11-22 10:05 AutSky_JadeK 阅读(362) 评论(0) 推荐(0)
摘要:对n个位置,每个位置维护一个vector。每次插入,可能对MIN_SORT_GAP产生的影响,只可能是 插入元素 和 它的 前驱 后继 造成的,用一个set维护(存储所有序列中的元素)。我们还得维护一个multiset(存储相邻元素的差值),可能对MIN_GAP产生影响,只可能是它在序列中的前一个元... 阅读全文
posted @ 2014-11-21 21:57 AutSky_JadeK 阅读(192) 评论(0) 推荐(0)
摘要:权值分块……rank3……没什么好说的。 1 #include 2 #include 3 #include 4 using namespace std; 5 int n,sz,sum,x,y,l[501],r[501],Min,Max,sumv[501],num[250001],m,v[2... 阅读全文
posted @ 2014-11-21 18:57 AutSky_JadeK 阅读(187) 评论(0) 推荐(0)
摘要:论NOIP级别的n²算法…… 跟分块比起来,理论上十万的数据只慢4、5倍左右的样子…… 1 #include 2 #include 3 using namespace std; 4 struct Point{int v,p;}t[20001]; 5 bool operator =Ask[i].k)4... 阅读全文
posted @ 2014-11-20 15:28 AutSky_JadeK 阅读(168) 评论(0) 推荐(0)
摘要:不多说。比pb_ds还是要快不少的。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 80001 6 int sum,sz,num[N],l[295],r[295],a[N],op[N],en,ma[N],ans... 阅读全文
posted @ 2014-11-19 15:50 AutSky_JadeK 阅读(154) 评论(0) 推荐(0)
摘要:权值分块就是快……Rank5…… 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 38001 6 #define INF 2147483647 7 #define min(a,b) (((a)'9';c=getc... 阅读全文
posted @ 2014-11-19 13:41 AutSky_JadeK 阅读(170) 评论(0) 推荐(0)
摘要:权值分块,离散化非常蛋疼,只能离散化搞……需要支持操作:删除 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 201001 7 struct Point{int v,p;}tmp[N]; 8 boo... 阅读全文
posted @ 2014-11-19 09:52 AutSky_JadeK 阅读(164) 评论(0) 推荐(0)
摘要:pb_ds 裸题,写写权值分块试试能不能过……觉得够呛。P.S.cin读入大量数据会RE。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 using namespace __gnu_cx... 阅读全文
posted @ 2014-11-18 09:57 AutSky_JadeK 阅读(226) 评论(0) 推荐(0)
摘要:离散化,分块。预处理出:ans[i][j] 第i块到第j块的逆序对数。f[i][j] 第1~i块中大于j的数的个数。g[i][j] 第1~j块中小于j的数的个数。每次询问时对于整块部分可以O(1)获得。对于零散部分呢?>在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数。>在一列数的前... 阅读全文
posted @ 2014-11-16 17:16 AutSky_JadeK 阅读(376) 评论(0) 推荐(0)
摘要:权值分块,虽然渐进复杂度不忍直视,但其极小的常数使得实际运行起来比平衡树快,大多数情况和递归版权值线段树差不多,有时甚至更快。但是被zkw线段树完虐。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100000... 阅读全文
posted @ 2014-11-14 16:39 AutSky_JadeK 阅读(228) 评论(0) 推荐(0)
摘要:权值分块和权值线段树的思想一致,离散化之后可以代替平衡树的部分功能。部分操作的时间复杂度:插入删除全局排名全局K大前驱后继全局最值按值域删除元素O(1)O(1)O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))(懒标记)当然,因为... 阅读全文
posted @ 2014-11-14 16:07 AutSky_JadeK 阅读(252) 评论(0) 推荐(0)
摘要:There are three girls and fifteen boys who are having a meeting at a round rable.You need to put them at proper place to make sure that "there are l... 阅读全文
posted @ 2014-11-14 14:33 AutSky_JadeK 阅读(152) 评论(0) 推荐(0)
摘要:Part 1、块状链表。定位插入删除数组O(1)O(n)O(n)链表O(n)O(1)O(1)对于线性表的以上常见操作来说,数组和链表都无法有效地解决。但是,若我们将链表的每个节点存成一个数组,使得链表里每个节点的数据拼接起来就是原先的线性表中的内容(即块状链表),并且数组的大小合适的话,以上的操作都... 阅读全文
posted @ 2014-11-14 06:54 AutSky_JadeK 阅读(1894) 评论(0) 推荐(0)
摘要:存反图,从终点dfs一遍,记录下无法到达的点。然后枚举这些记录的点,把他们的出边所连的点也全部记录。以上这些点都是无法在最短路中出现的。所以把两个端点都没被记录的边加进图里,跑spfa、BFS什么的随意。 1 #include 2 #include 3 #include 4 #include 5 u... 阅读全文
posted @ 2014-11-11 15:57 AutSky_JadeK 阅读(322) 评论(0) 推荐(0)
摘要:暴力枚举。 1 #include 2 #include 3 using namespace std; 4 int a[130][130],d,n,x,y,z,num,ans=-2147483647; 5 int main() 6 { 7 scanf("%d%d",&d,&n); 8 ... 阅读全文
posted @ 2014-11-11 15:53 AutSky_JadeK 阅读(772) 评论(0) 推荐(0)
摘要:不难发现,树中与某个点距离为2的点只可能是它的父亲的父亲、儿子的儿子 或者 兄弟,分类讨论一下即可。只有对于兄弟我们不能暴力搞,维护一下每个节点的所有儿子的前缀和、前缀MAX就行了。 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文
posted @ 2014-11-11 10:46 AutSky_JadeK 阅读(379) 评论(0) 推荐(0)
摘要:把所有情况打表,然后随便暴力。 1 #include 2 using namespace std; 3 int n,an,bn,p1,p2; 4 int a[10001],b[10001]; 5 bool f[6][6]; 6 int ans1,ans2; 7 void init() 8 { 9 ... 阅读全文
posted @ 2014-11-11 10:43 AutSky_JadeK 阅读(384) 评论(0) 推荐(0)
摘要:裸的最大匹配。 1 #include 2 #include 3 #include 4 using namespace std; 5 vectorG[2002]; 6 typedef vector::iterator ITER; 7 int n,m,mat[2002],x,y; 8 bool vis[... 阅读全文
posted @ 2014-11-06 15:29 AutSky_JadeK 阅读(164) 评论(0) 推荐(0)
摘要:在线块状树LCA模板。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 30001 7 vectorG[N]; 8 typedef vector::iterator ITER; 9 int ... 阅读全文
posted @ 2014-11-06 12:29 AutSky_JadeK 阅读(196) 评论(0) 推荐(0)
摘要:拓扑排序模板。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 10001 6 vectorG[N]; 7 stackS; 8 int n,m,x,y,ru[N],tot; 9 int main()10 {11 ... 阅读全文
posted @ 2014-11-06 11:26 AutSky_JadeK 阅读(244) 评论(0) 推荐(0)
摘要:两次dfs缩点,然后n次dfs暴搜。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 2001 6 vectorG[N],rG[N],vs,G2[N]; 7 typedef vector::iterator IT... 阅读全文
posted @ 2014-11-06 10:38 AutSky_JadeK 阅读(199) 评论(0) 推荐(0)
摘要:尺取法解题步骤:head=tail=0;while(1){①while(当前区间不满足约束&&tail<n) {tail后移;更新区间信息;}②if(当前区间不满足约束) break;③更新ans;④head后移;更新区间信息;} 阅读全文
posted @ 2014-11-06 07:54 AutSky_JadeK 阅读(340) 评论(0) 推荐(0)
摘要:分块,离散化,预处理出:①前i块中x出现的次数(差分);②第i块到第j块中的众数是谁,出现了多少次。询问的时候,对于整块的部分直接获得答案;对于零散的部分,暴力统计每个数出现的次数,加上差分的结果,尝试更新ans。 1 #include 2 #include 3 #include 4 #in... 阅读全文
posted @ 2014-11-05 20:31 AutSky_JadeK 阅读(246) 评论(0) 推荐(0)
摘要:详细的题解:http://www.docin.com/p-517243379.html一个图是二分图 等价于 其至少有两个节点且没有奇环。二分图判定的方法:从任意点出发进行一次dfs黑白染色,若某个点之前已经访问过(vis[v]==1)且color[v]==color[u],则存在奇环。 1 #in... 阅读全文
posted @ 2014-11-05 17:37 AutSky_JadeK 阅读(193) 评论(0) 推荐(0)
摘要:裸的分层图最短路。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 51 7 #define K 51 8 #define M 2001 9 struct Point{int u,d;Poi... 阅读全文
posted @ 2014-11-05 15:43 AutSky_JadeK 阅读(269) 评论(0) 推荐(0)
摘要:spfa最短路+判负权回路(是否某个点入队超过n次)。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define M 20001 6 #define N 1001 7 int n,m,x,y,w1,w2; 8 int v[M]... 阅读全文
posted @ 2014-11-05 14:23 AutSky_JadeK 阅读(243) 评论(0) 推荐(0)
摘要:分块90分。 By AutSky_JadeK 【重点在下面】 1 #include 2 #include 3 using namespace std; 4 #define N 1000001 5 #define INF 2147483647 6 #define min(a,b) (((a)'9')C... 阅读全文
posted @ 2014-11-05 08:43 AutSky_JadeK 阅读(347) 评论(0) 推荐(0)
摘要:floyd模板 1 #include 2 #include 3 using namespace std; 4 int a[101][101],m,x,y,n; 5 int main() 6 { 7 scanf("%d",&n); 8 for(int i=1;i<=n;i++) 9 ... 阅读全文
posted @ 2014-11-04 21:25 AutSky_JadeK 阅读(201) 评论(0) 推荐(0)
摘要:∵每个座位可以坐俩人,所以拆点最大匹配。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 2001 6 vectorG[N::iterator ITER; 8 int mat[N<<2]; 9 bool vis[... 阅读全文
posted @ 2014-11-04 17:13 AutSky_JadeK 阅读(277) 评论(0) 推荐(0)
摘要:裸的匈牙利,存模板。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 201 6 int n,m,x; 7 vectorG[N::iterator ITER; 9 int mat[N<<1]; bool vis[... 阅读全文
posted @ 2014-11-04 16:50 AutSky_JadeK 阅读(241) 评论(0) 推荐(0)
摘要:1、独立区间问题在N个区间里找出最多的互不覆盖的区间对结束点进行排序,然后从结束点最小的区间开始进行选择即可2、覆盖区间问题给一个大区间,再给出N个小区间,求出最少用多少个区间可以把大区间覆盖完先选出开始的一个,然后选开始点在这个区间里结束点最大的区间,然后以次类推3、区间的最小点覆盖给出N个区间,... 阅读全文
posted @ 2014-11-04 07:35 AutSky_JadeK 阅读(489) 评论(0) 推荐(0)
摘要:2014.11.4 7:33 还有三天半就要NOIP,圈一下要背的知识点:一、数论1、素数判断2、筛法求素数3、求一个数的欧拉函数值4、预处理欧拉函数5、卡塔兰数递推式6、快速幂(模素数的乘法逆元)7、GCD二、图论1、最短路:①堆dijkstra ②spfa2、kruscal 最小生成树3、LCA... 阅读全文
posted @ 2014-11-04 07:34 AutSky_JadeK 阅读(329) 评论(0) 推荐(0)
摘要:对于两条线段,若其中点重合,且长度相等,那么它们一定是某个矩形的对角线。N*N地处理出所有线段,排序,对每一部分中点重合、长度相等的线段进行暴力枚举,更新答案。用 long double 注意EPS的设置,卡精度。注意数组大小的设置,容易MLE。 1 #include 2 #include 3 #i... 阅读全文
posted @ 2014-11-03 19:50 AutSky_JadeK 阅读(334) 评论(0) 推荐(0)
摘要:考虑不限制奇偶的情况,那就是直接排序取前k个的和。加上奇偶限制:若排序后的前k个的和是偶数,则“显然地”:将其中的最小的奇数替换成未被选择的数中最大的偶数 或者将其中的最小的偶数替换成未被选择的数中最大的奇数 是最优的。那么排序之后 就可以预处理出 某个位置左侧最小的奇数、左侧最小的偶数、右侧最大的... 阅读全文
posted @ 2014-11-03 14:47 AutSky_JadeK 阅读(234) 评论(0) 推荐(0)
摘要:注意细节和初始化。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 string ans[110],tmp[110][110]; 7 int m,cnt[110],maxv,maxm,n; 8 int Calc... 阅读全文
posted @ 2014-11-03 10:09 AutSky_JadeK 阅读(253) 评论(0) 推荐(0)
摘要:建图:每个点向它四周的点连边权为两点点权的差的绝对值的边。由于有多个需要“施法”的点,所以相当于对每个这样的点,询问与它的距离在T以内的最长边的最小值,即多次询问。最长边最小之类的,肯定是最小生成树没跑了。BUT 若是对每个点这样做的话,肯定会TLE。所以考虑一次处理出所有询问的答案。在并查集将两个... 阅读全文
posted @ 2014-11-02 21:04 AutSky_JadeK 阅读(258) 评论(0) 推荐(0)
摘要:10分算法:对于城市网络为一条单向链的数据, 20分算法:对于n 2 #include 3 #include 4 #include 5 using namespace std; 6 #define M 500001 7 #define N 100001 8 struct Node 9 {10 ... 阅读全文
posted @ 2014-11-02 15:44 AutSky_JadeK 阅读(248) 评论(0) 推荐(0)
摘要://上图绿色扫描线右侧少画了一条扫描线。很多区间把数轴分成了很多段,看哪个点的(区间覆盖数*该点权值)最大。显然在某个区间的右端点的答案是最优的。排序后 用扫描线从左到右扫描,维护每个点的覆盖数,就是遇到左端点时cnt++,右端点时更新ans、cnt--。若某个点既有左端点,又有右端点,就把左端点放... 阅读全文
posted @ 2014-11-02 14:15 AutSky_JadeK 阅读(253) 评论(0) 推荐(1)
摘要:从左上角到右下角,共经过n+m个节点,从其中选择n各节点向右(或者m各节点向下),所以答案就是C(n+m,n)或者C(n+m,m),组合数暴力算即可,但是要取模,所以用了乘法逆元。 1 #include 2 #include 3 using namespace std; 4 typedef long... 阅读全文
posted @ 2014-11-02 14:05 AutSky_JadeK 阅读(317) 评论(0) 推荐(0)
摘要:拓扑排序,要让字典序最小,所以把栈改成堆。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100001 6 priority_queue,greater >Q; 7 int n,m,x,y; 8 int v[N... 阅读全文
posted @ 2014-11-02 08:06 AutSky_JadeK 阅读(205) 评论(0) 推荐(0)
摘要:gcd(x,y)(1 gcd(x/k,y/k)=1,k是x的质因数 的个数 Σφ(x/k) (1 2 using namespace std; 3 typedef long long ll; 4 int phi[10000001],n; 5 bool unPrime[10000001]; 6 ll ... 阅读全文
posted @ 2014-11-01 17:27 AutSky_JadeK 阅读(263) 评论(0) 推荐(0)
摘要:∵∑gcd(i, N)(1 gcd(x/ki,N/ki)=1 (1 2 #include 3 using namespace std; 4 typedef long long ll; 5 ll n,ans; 6 int phi(ll x) 7 { 8 ll res=x; 9 for(... 阅读全文
posted @ 2014-11-01 15:06 AutSky_JadeK 阅读(232) 评论(0) 推荐(0)
摘要:判断堆:递归判断每个节点的孩子是否都比其父亲大(小)。判断BST:中序遍历是否有序。 1 #include 2 using namespace std; 3 #define lc (rtb[i-1]) {f2=0; break;}18 if(f2) return 1;19 retur... 阅读全文
posted @ 2014-11-01 08:09 AutSky_JadeK 阅读(225) 评论(0) 推荐(0)

TVアニメ「Charlotte(シャーロット)」公式サイト TVアニメ「Charlotte(シャーロット)」公式サイト