刷题小结
文章平均质量分 86
佐理慧
默默的学习
展开
-
HDU 6706 huntian oy
HDU 6706 huntian oyHDU\ \ 6706\ \ huntian\ oyHDU 6706 huntian oyhttp://acm.hdu.edu.cn/showproblem.php?pid=6706哎,开始就觉得,对于,i>j,gcd(i,j)=1,...原创 2019-08-24 12:47:03 · 381 阅读 · 0 评论 -
51nod 1222 最小公倍数计数
51nod 1222 最小公倍数计数链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1222次题有毒。。。。计算∑i=1n∑j=1i∑t=ji[lcm(j,t)=i]\sum_{i=1}^n\sum_{j=1}^i\sum_{t=j}^i[lcm(j, t)=i]周阁筛:非常经典的周阁筛。F(n)=∑a=1n∑b=a原创 2017-10-31 18:42:26 · 734 阅读 · 1 评论 -
HDU 4343 Interval query
HDU 4343 Interval query题目给定nn个区间(li,ri),1≤i≤n(l_i,r_i),1\leq i\leq nMM次询问。询问在区间[L,R][L,R]上,有多少个互不相交的集合。问题其实意思就是。在时间段[L,R][L,R]上最多可以安排多少互不影响的工作。而这里。每个任务对应一个区间。这些任务需要在这些对应的时间段内进行。同一时间内只可以做一个任务。那么考虑任务安排的贪原创 2017-10-16 21:46:05 · 451 阅读 · 0 评论 -
HDU 4455 Substrings
HDU 4455 Substrings链接:http://acm.hdu.edu.cn/showproblem.php?pid=4455令dp[w]dp[w]为ww对应的答案。则对于dp[w+1]dp[w+1]细想:对于以第ii个元素A[i]A[i]开始的长度为ww的子段。长度扩张到w+1w+1时,包含进入了A[w+i]A[w+i]如果此时[w,w+i−1][w,w+i-1]中没有A[i]A[i]。原创 2017-10-30 20:21:22 · 525 阅读 · 0 评论 -
51nod 1847 奇怪的数学题
51nod 1847 奇怪的数学题原题链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1847定义:sgcd(a,b)sgcd(a,b)为aa与bb的次大公约数f(a)f(a)为aa的次大约数sgcd(a,b)=f(gcd(a,b))sgcd(a,b)=f\big(gcd(a,b)\big)特别的:f(1)=0f原创 2017-10-22 11:14:12 · 1234 阅读 · 0 评论 -
51nod 1824(算法马拉松30)
51nod 1824(算法马拉松30)嘻嘻嘻。感觉还是有进步的。再接再厉。显然:f(t)=∑x+y=trxby(tx)f(t)=\sum_{x+y=t}r_xb_y\binom{t}{x}组合解释就是确定其中一种颜色即可。显然。直接FFTFFT不可行。但是。在mod 2mod\ 2意义下。(tx)=[x xor y=t][x and y=0] (mod 2)(tx)=[x or t=t][x a原创 2017-10-29 21:15:35 · 657 阅读 · 0 评论 -
HDU 5981 Guess the number
HDU 5981 Guess the number原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5981题目大意是:AA在区间[a,b][a,b]上猜一个数字,BB猜测AA猜测的数字。如果BB猜测小了AA会告诉他,一旦BB猜测的大了。AA不会再告诉BB,直到B猜到这个数字为止 游戏结束。问,在BB每次做决定后。情况最差时。最少猜测多少次。那么猜测次原创 2017-10-27 20:14:28 · 614 阅读 · 0 评论 -
素数计数函数
一种计算π(n)\pi(n)的组合方法这里π(n)\pi(n)指:不大于nn的素数个数注:本文方法来自于维基百科对素数计数的一个组合方法:https://en.wikipedia.org/wiki/Prime-counting_function由于最后的一些优化技巧还未掌握。文中的方法还有待优化。常识:一般来说,xx以内的素数大约有:π(x)=O(xln x)\pi(x)=O(\frac{x}{ln原创 2017-09-18 16:44:22 · 3068 阅读 · 0 评论 -
51nod 1254 最大子段和 V2
51nod 1254 最大子段和 V2原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1254 去年做的一个题目。。。那个时候真是抓耳挠腮啊(其实刚接触ACM 也就一年多) 嘻嘻.而且我自己写的我都觉得不好。所以我想再复习一遍。。。题目有几个点需要注意。首先必须交换。答案的形式只可能就有三种交换的两个元素都在原创 2017-10-08 19:15:17 · 1163 阅读 · 0 评论 -
51nod 1239 欧拉函数之和
51nod 1239 欧拉函数之和链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239φ∗id1=id0\varphi*id_1=id_0Sφ(n)=n−∑i=2niSφ(⌊ni⌋)S_{\varphi}(n)=n-\sum_{i=2}^niS_{\varphi}\big(\Big\lfloor\frac{n}{i原创 2017-09-20 18:45:10 · 328 阅读 · 0 评论 -
51nod 1227 平均最小公倍数
51nod 1227 平均最小公倍数原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1227A(n)=1n∑i=1nlcm(i,n)A(n)=\frac{1}{n}\sum_{i=1}^nlcm(i,n)∑k=1nA(k)=∑k=1n1k∑i=1klcm(i,k)=∑k=1n1k∑i=1kkigcd(i,k)=∑k原创 2017-09-20 18:10:55 · 517 阅读 · 0 评论 -
51nod 1220 约数之和
定义除数函数:σk(n)=∑a|nak\sigma_{k}(n)=\sum_{a|n}a^k令d=σ1d=\sigma_1题目要求计算:∑i=1n∑j=1nd(ij)\sum_{i=1}^n\sum_{j=1}^nd(ij)之前做BZOJ的时候做过一题。http://blog.csdn.net/zlh_hhhh/article/details/77849859BZOJ 4176 Lucas的数论对于原创 2017-09-10 22:21:16 · 708 阅读 · 0 评论 -
51nod 1616 最小集合
51 nod 1616 最小集合原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616题目的意思更一般的可以理解为:任取一些数字。它们可能出现的最大公约数。包括原始给定的数字,一共可以出现多少不同的数字。因为:d=gcd(x,y)t=gcd(d,c)t=gcd(x,y,c)d=gcd(x,y)\\t=gcd(d原创 2017-09-28 09:24:03 · 584 阅读 · 0 评论 -
51nod 1237 最大公约数之和 V3
51nod 1237 最大公约数之和 V3原题链接: https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=353365题面错误。原意是计算: G=∑i=1n∑j=1ngcd(i,j)G=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)G=∑i=1n∑j=1ngcd(i,j)=∑d=1nd∑i=1n∑j=1n[gc原创 2017-09-28 09:09:07 · 509 阅读 · 0 评论 -
51nod 1556 计算&&卡特兰数的扩展,HV格路径
51nod 1556 计算有一个1*n的矩阵 固定第一个数为1 其他填正整数 且相邻数的差不能超过1 求方案数%(109+7)\%(10^9+7)的结果1*n的矩阵。前后的绝对值差不超过1.设 第i个数大小为AiA_i则有Ai−Ai−1=0 , 1 ,−1A_i-A_{i-1}=0\ ,\ 1\ ,-1那么。前后项做差,我们会得到一个序列。这个序列仅仅由1,0,-1组成(组合数学里面讲卡特兰数原创 2017-07-04 19:54:07 · 820 阅读 · 2 评论 -
51nod 1238 最小公倍数之和 V3
51nod 1238 最小公倍数之和 V3原题链接: http://www.51nod.com/onlineJudge/questionCode.html#problemId=1238¬iceId=338278题面错误。。。题目的实际意思是:G=∑i=1n∑j=1nlcm(i,j)G=\sum_{i=1}^n\sum_{j=1}^n lcm(i,j)因为题面的错误 。反反复复推了好久。按照一原创 2017-09-26 20:26:50 · 655 阅读 · 0 评论 -
51nod 1575 Gcd and Lcm
51nod 1575 Gcd and Lcm链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1575这个题目。完美的体现了洲阁筛更为通用。。。。题目要就计算:∑i=1n∑j=1i∑k=1ilcm(gcd(i,j),gcd(i,k))\sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^ilcm(gcd原创 2017-11-14 14:41:45 · 758 阅读 · 0 评论 -
51nod 1642 区间欧拉函数
51nod 区间欧拉函数链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1642直觉离线。确实可以离线。给定数组a1,a2,a3,....,ana_1,a_2,a_3,....,a_nQQ询问。每次询问给定l,rl,r计算:φ(∏i=lrai)\varphi\Big(\prod_{i=l}^ra_i\Big)因为φ(P原创 2017-11-19 16:28:17 · 923 阅读 · 0 评论 -
51nod 2564 格子染色
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=2564令AAA为染成白色的集合,BBB为染成黑色的集合 CCC为被惩罚的集合ans=maxA,B(∑k∈Aw(k))+∑k∈Bb(k)−∑k∈CP(i))=∑k=1n(w(k)+b(k))−min(∑k∈Ab(k)+∑k∈Bw(k)+∑k∈CP(i))ans = \ma...原创 2019-05-07 17:36:36 · 440 阅读 · 0 评论 -
51nod 1838
51nod 1838http://www.51nod.com/Challenge/Problem.html#!#problemId=1838题目中有一个很巧妙的反演。由于之前没接触过这类题目。第一次接触,感觉学到了很多东西。首先。计算,无限限制的情况下,从(0,0)(0,0)(0,0)走到(x,y)(x,y)(x,y),不走(0,0)(0,0)(0,0)向量的方案数。由于xxx方向和yyy...原创 2019-02-09 16:02:22 · 328 阅读 · 0 评论 -
51nod 2214
51nod 2214http://www.51nod.com/Challenge/Problem.html#!#problemId=2214现在给定一个长度为 N 的 01串,同时给定参数 M,可以执行以下两种操作:选择串的任意一个位置取反指定整数 K>= 1,将串的前 K * M 位全部取反。用最少的操作次数,使得这个串的N-M前缀和N-M后缀完全相同,你只需要输出最少的操作次...原创 2019-02-01 14:46:24 · 346 阅读 · 0 评论 -
对CDQ分治的一些理解
CDQ分治与树状数组(BZOJ3295)之前有简单接触过CDQ分治,后来讨论说CDQ多数可以写成非递归形式,在学弟的建议下就写一个博文把。这个东西其实和树状数组遍历方式非常相似。我对CDQ的理解可能比较浅显。所以我对CDQ的理解只是以下面贡献的形式来理解。CDQ分治通过将问题分割成两种贡献:1:段内贡献2:段间贡献比如说问题规模为nnn,初始问题为CDQ(1,n)CDQ(1,n)CD...原创 2018-09-26 12:01:03 · 426 阅读 · 0 评论 -
ICPC 焦作 Sequence
ICPC 焦作 Sequencehttps://nanti.jisuanke.com/t/31713题目是给定 1<m<250,1<n<1091<m<250,1<n<1091[1,n][1,n][1,n]中等概率取mmm个数字,组成一个非递减序列,记f(i)f(i)f(i)为iii出现的次数 .计算下式期望maxni=1f(i)m...原创 2018-09-16 20:33:16 · 727 阅读 · 0 评论 -
2018 ICPC 徐州 计蒜客 - Easy Math
计蒜客 - Easy Math题目给定m&lt;2∗109,n&lt;1012m&lt;2∗109,n&lt;1012mans=∑i=1mμ(in)ans=∑i=1mμ(in)ans=\sum_{i=1}^m\mu(in) 显然: μ(n)=0μ(n)=0\mu(n)=0时 ans=0ans=0ans=0 当mu(n)!=0mu(n)!=0mu(n)!=0时: ans=∑i=1mμ(in...原创 2018-09-09 21:43:43 · 421 阅读 · 1 评论 -
51nod 1747 近似多项式(最小二乘法)
最小二乘法最小二乘法可以拟用于曲线拟合。 比如离散的给定点的运动轨迹轨迹:P0,P1,...,PnP0,P1,...,PnP_0,P_1,...,P_n 用一个多项式曲线f(x)f(x)f(x),近似描绘出运动轨迹。f(x)=∑i=0Naixif(x)=∑i=0Naixif(x)=\sum_{i=0}^Na_ix^i运动轨迹可以看作是一个离散的函数。近似程度可以用:E(a0,a...原创 2018-07-12 23:12:48 · 726 阅读 · 0 评论 -
BZOJ 2440
BZOJ 2440计算第kk个不含平方因子的数。显然。如果aa含有平方因子。则:μ(a)=0\mu(a)=0如果不含有。则:μ(a)2=1\mu(a)^2=1这跟莫比乌斯函数的定义有关。我的一篇文章介绍过计算∑inμ(i)2\sum_i^n\mu(i)^2的方法。http://blog.csdn.net/ZLH_HHHH/article/deta原创 2018-01-09 23:22:03 · 515 阅读 · 0 评论 -
51nod 1964 1964 陵陵曾玩的数论题
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1964强烈建议在阅读时动手设计一下算法流程。会有助于理解。解决此题。必须知道下面T(n)T(n)的增张速度。T(n)=maxk=1n(T(k−1)+T(n−k)+min(k,n−k+1))T(n)=\max_{k=1}^{n}\big(T(k-1)+T(n-k)+min(k原创 2017-12-22 11:36:42 · 847 阅读 · 0 评论 -
BZOJ 1494 [NOI2007]生成树计数
BZOJ 1494 [NOI2007]生成树计数题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1494题目大意: 给定nn个点的无向图 。节点编号1......n1......n第ii个点与第j个点有边.当且仅当:∣∣i−j∣∣≤k\big|i-j\big|\leq k计算nn个点时图的生成树数量。2≤k≤5 , 2≤n≤10152\l原创 2017-11-23 16:34:18 · 766 阅读 · 0 评论 -
2017 ICPC hihocoder 1636
链接:https://hihocoder.com/problemset/problem/1636石子归并变形版本。在原有石子归并问题上。增加合并堆数的限制。原有石子归并一次必须合并 22 堆现在一次必须合并 kk 堆k∈[L,R]k\in[L,R],也就是说合并的堆数不小于LL,不大于RR。每次合并的耗费。依然是石子总重。那么显然合并前。我们需要知道。有多少堆合并了。对于堆数不在[L,R][L,R]原创 2017-11-22 22:32:47 · 647 阅读 · 0 评论 -
51nod 1803 森林的直径
链接: https://www.51nod.com/onlineJudge/questionCode.html#problemId=1803¬iceId=396652树是随机生成的。就题目的代码设计思路不会很复杂。但问题是树的深度较坏情况的概率。我们是需要分析好的。也就是说,我们需要明白随机生成一棵树的期望深度是多少。出现稍微坏一点的可能又是多少。题目中生成树的方式可以生成任何一种形状的nn原创 2017-12-01 19:03:21 · 563 阅读 · 0 评论 -
经典的三种排序算法
归并排序:归并排序。可以说分治策略用在了排序问题上。我们每次将数组分成两半。递归的排序这两半。然后用线性时间将其合并起来。变成一个完整的有序数组。复杂度分析:T(n)=2T(n2)+O(n)T(n)=2T(\frac{n}{2})+O(n)显然最多展开log2nlog_2n层。所以总时间复杂度:O(nlogn)O(nlogn)堆排序:如果不知道堆这个数据结构的同学。可以自行学习。(百度一大把)通过不原创 2017-11-22 01:06:18 · 1078 阅读 · 0 评论 -
SPOJ 1825 Free Tour 2
SPOJ Free Tour 2链接:http://www.spoj.com/problems/FTOUR2/树上分治的经典题目。每次找到这棵树的重心。递归的处理子树。后合并处理整棵树。对于合并的过程。记重心为zztmp[c][i]tmp[c][i]表示不包括cc为根的子树的节点。从zz出发。不超过ii个节点的最远距离。显然有了tmp[][]tmp[][]数组后。合并是非常快的。只需要查表即可。我们原创 2017-11-15 15:19:51 · 426 阅读 · 0 评论 -
数论学习:分数循环节长度
分数的循环节令r⊥sr\perp s且0<r<s0<r<s,对于分数rs=0.c1c2c3...\frac{r}{s}=0.c_1c_2c_3...的bb进位制形式。有时候会出现循环情况。即:存在一个n,kn,k有:ci+k=ci ,其中:i>n , 0<ci<bc_{i+k}=c_i\ \ ,其中:i>n\ ,\ 0<c_i<b那么何时会出现循环。何时又不会呢?显然:α=rs=c1b1+c2b2原创 2017-11-19 19:37:25 · 3518 阅读 · 0 评论 -
51nod 1753 相似子串
51nod 1753 相似子串原题链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1753很少写字符串hash的题目。这算是第一个啦对字符单独考虑。考虑字符串的hashhash定义A[k][i]A[k][i]:A[k][i]=[s[i]=k]A[k][i]=[s[i]=k]对于一个0101串ss ,定义它的has原创 2017-09-08 19:22:11 · 885 阅读 · 2 评论 -
51nod 1613 翻硬币
51nod 1613 翻硬币有 n 个硬币,一开始全部正面朝上, 每次可以翻转 k 个硬币( k 小 于 n ), 那么至少要 p 次翻转,才能让所有硬币反面朝上, 求 p 的值。如果不能成功翻转则输出-1这个题目 重点是对已有思路的想法的梳理 题目中 是要求 每次都要反转k个硬币。 我们每次反转 k个硬币,并通过一部分重叠 。 来凑出恰好k个硬币正面朝上。 也就是这一次反转的k原创 2017-06-30 17:16:45 · 904 阅读 · 0 评论 -
HDU 6121 Build a tree
HDU 6121 Build a tree原题连接: http://acm.hdu.edu.cn/showproblem.php?pid=6121题目中给出的定义。就是kk叉堆对于kk叉堆。第aa个节点的孩子编号属于区间:[ak+1,(a+1)k][ak+1,(a+1)k]堆的高度从00开始算起令F[t]F[t]为高度为tt的满kk叉堆对应的answeranswerC[t]C[t]为高度为tt的满原创 2017-08-15 19:27:17 · 385 阅读 · 0 评论 -
HDU 6057 Kanade's convolution
HDU 6057 Kanade’s convolution原题连接: http://acm.hdu.edu.cn/showproblem.php?pid=6057对于这一题计算:Ck=∑i and j=kAi xor jBi or jC_k=\sum_{i\ and \ j=k}A_{i\ xor\ j}B_{i\ or\ j}令:andand可以理解位交集,oror可以理解为并集,xorxor可原创 2017-08-04 11:53:18 · 819 阅读 · 2 评论 -
HUD 6044 Limited Permutation
HDU 6044 Limited Permutation原题连接 http://acm.hdu.edu.cn/showproblem.php?pid=6044在开始之前。提供一种加速读取的方法。由于题目输入规模很大。所以建议使用下面代码来读入利用fread()fread()批量读入内存。(下文中代码实现就是使用这个读入)struct Io{ const char l='0'-1;原创 2017-08-23 21:52:42 · 471 阅读 · 0 评论 -
HDU 6063 RXD and math
HDU 6063 RXD and math原题连接 http://acm.hdu.edu.cn/showproblem.php?pid=6063题目的意思是要求计算:∑i=1nkμ2(i)⌊nki‾‾‾√⌋\sum_{i=1}^{n^k}\mu^2(i)\Big\lfloor \sqrt{\frac{n^k}{i}} \Big\rfloor直接计算显得有点力不从心。这个式子可以通过逻辑推理得出。∑原创 2017-08-06 14:39:39 · 625 阅读 · 2 评论 -
HDU 6153 A Secret 经典扩展KMP
HDU 6153 A Secret 经典扩展KMPhttp://acm.hdu.edu.cn/showproblem.php?pid=6153题目大意是:给定两个串 S1,S2S1,S2计算串S2S2的所有后缀在S1S1 中出现的次数。输出各长度与其出现次数乘积的 和。我们对S1,S2S1,S2按照中心对称轴进行一次对称操作。使得:swap(S1[i],S1[j]),其中i+j=S1.lengths原创 2017-08-20 14:21:36 · 368 阅读 · 0 评论