摘要:A(0)=A(1)=1,A(i)=X*A(i-1)+Y*A(i-2),求S(n)=A(0)^2+A(1)^2+A(2)^2+A(3)^2+……+A(n)^2。 这个矩阵有点毒。。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorith 阅读全文
posted @ 2017-09-01 13:50 Blue233333 阅读(111) 评论(0) 推荐(0) 编辑
摘要:对每个0<=i<n求f(g(i))的和,其中f(x)为斐波那契数列第x项,g(i)=k*i+b,k,b,n给定,模数给定。 斐波那契数有一种用矩阵乘法求的方法,这个矩阵A自己写,令F[i]为i和i+1的那个矩阵,F[i]=A^b*F[0],然后答案要求F[b]+F[k+b]+F[k*2+b]+……= 阅读全文
posted @ 2017-08-31 21:04 Blue233333 阅读(138) 评论(0) 推荐(0) 编辑
摘要:给n<=50000条01串,m<=50000个询问,每次给出一个01串求有多少个n条中有多少是它的前缀以及它是多少条的前缀。 前缀?Trie!匹配时记一路上单词节点的总量加上最后一个节点子树中单词节点总量即可。 1 #include<stdio.h> 2 #include<string.h> 3 # 阅读全文
posted @ 2017-08-31 13:06 Blue233333 阅读(175) 评论(0) 推荐(0) 编辑
摘要:n<=20000个车站,车能同时载C<=100个人,求能满足K<=50000群人的多少个。每群人给起点终点和人数,一群人不一定要都满足。 一开始想DP,想不出,很菜。 贪心即可。如果有右端点相同的几群人,那肯定优先满足左端点大的;如果有两群人发生冲突,而我们从左到右考虑区间的话,那肯定让左边的人先满 阅读全文
posted @ 2017-08-31 10:11 Blue233333 阅读(153) 评论(0) 推荐(0) 编辑
摘要:n<=100000个点给坐标,保证没有两点连线过原点,求选三个点构成包含原点的三角形的个数。 按题目要求统计的话,对一个点P,要在原点向P的射线的顺时针半圈选一个点和逆时针半圈选个点,然后选出的这两个点连线与y轴的交点还必须与P的纵坐标符号相反。 正难取反,考虑那些不经过原点的三角形怎么统计。一个点 阅读全文
posted @ 2017-08-31 08:34 Blue233333 阅读(135) 评论(0) 推荐(0) 编辑
摘要:对n<=30(其实可以100)大小的矩阵A求A^1+A^2+……+A^K,K<=1e9,A中的数%m。 从K的二进制位入手。K分解二进制,比如10110,令F[i]=A^1+A^2+……+A^(2^i),那么答案就是F[10000]*A^110+F[100]*A^10+F[10]+A^0。也就是说如 阅读全文
posted @ 2017-08-30 21:28 Blue233333 阅读(120) 评论(0) 推荐(0) 编辑
摘要:n<=100个数字,选最少的个数使“误差”少于E并输出选该个数下最小的“误差”。误差定义: 对于任何测量结果子集,每一个非此子集中的结果都会产生误差.总误差是所有测量结果的误差之和.更明确第说, 对于每一个和所有s_j都不同的i: * 如果 i 小于 s_1, 误差是: 2 * | M_i - M_ 阅读全文
posted @ 2017-08-30 19:48 Blue233333 阅读(134) 评论(0) 推荐(0) 编辑
摘要:n<=700000个数,两人轮流取数,位置必须单增,输出两人都按最优策略得到的最大答案。 一开始看不懂“最优策略”,后来发现没有必要知道,f[i][1/0]--先/后手取数i最优答案,f[i][1]=a[i]+f[maxi][0],f[i][0]=f[maxi][1],maxi>i,因为先手取完后手 阅读全文
posted @ 2017-08-30 14:30 Blue233333 阅读(158) 评论(0) 推荐(0) 编辑
摘要:n<=250个点m<=10000边无自环图,有点权边权,Q<=10000个询问i到j的最短路。这里的路径长度指路上边权和+路上点权最大值。 n这么小,询问这么多,那就跑跑floyd吧!f[i][j]记最短路,g[i][j]记最短路上最大点权,当f[i][j]+g[i][j]>f[i][k]+f[k] 阅读全文
posted @ 2017-08-30 13:43 Blue233333 阅读(162) 评论(0) 推荐(0) 编辑
摘要:n<=25000个点m1<=50000条正权无向边m2<=50000条正负权有向边,保证有向边连接的无向边联通块形成一个拓扑图,求从s到每个点最短路。 第一次发现不会最短路。没看题乱写迪杰无脑WA,很好。迪杰从来不能处理负权最短路,然后就开始啃题解。。http://www.cnblogs.com/s 阅读全文
posted @ 2017-08-29 22:07 Blue233333 阅读(225) 评论(0) 推荐(0) 编辑
摘要:n<=100000个点的树,每个点属于一个K<=n/2个集合中的一个,每个集合至少两个点,求每个集合中任选两点距离的最大值。 方法一:什么都看不出来,点分,每次只统计经过一个点的每个集合的不同子树的路径来更新。详见http://www.cnblogs.com/Enceladus/p/6099250. 阅读全文
posted @ 2017-08-29 16:01 Blue233333 阅读(183) 评论(0) 推荐(0) 编辑
摘要:T<=10组数据问K<=30种珠子每种n<=1e9串成1~n长度的序列共有多少种,mod1234567891。 方程没想到。矩阵不会推。很好。 f[i][j]--长度i,j种珠子方案数,f[i][j]=f[i-1][j]*j(放个旧的)+f[i-1][j-1]+(K-(j-1))(放个新的) n太大 阅读全文
posted @ 2017-08-29 12:51 Blue233333 阅读(87) 评论(0) 推荐(0) 编辑
摘要:题意看不懂加题目想不通,很菜。 n<=500个数围城环,每次操作对每个数Ai把与i在环上相距不超过d<n/2(包括Ai)的数加起来取模m<=1e6,求K<=1e7次操作后的环。 存在递推关系,构造矩阵吧!比如样例一很丑。 于是矩阵快速幂,n*n*n*logK,很慢。 这个矩阵比较奇怪,每一行都是上一 阅读全文
posted @ 2017-08-28 19:26 Blue233333 阅读(204) 评论(0) 推荐(0) 编辑
摘要:n<=1000个数,从小到大,给m1<=10000条描述两个数相差不超过多少,m2<=10000条描述两个数相差至少多少,求1到n最大距离,无解-1无穷大-2。 裸的差分约束,spfa判负环。 差分约束口诀!大小短,小大长!(最大值,用≤式子,写最短路,后面同理) 1 #include<stdio. 阅读全文
posted @ 2017-08-28 18:39 Blue233333 阅读(117) 评论(0) 推荐(0) 编辑
摘要:n<=100000个杆,给高度,增加高度代价为增加量的平方,通过增加使得sigma (a[i]-a[i-1])*C,2<=i<=n的值最小。 f[i][j]--前i根杆第i根高度j的最大值,f[i][j]=min(f[i-1][k]+C*|k-j|+(j-a[i])2),过不了。 把绝对值拆掉,就有 阅读全文
posted @ 2017-08-28 16:55 Blue233333 阅读(116) 评论(0) 推荐(0) 编辑