12 2016 档案
摘要:题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑逆向思维: 我们先用线性筛 筛出前50000的素数,在int范围内的区间的合数的因子都在我们之前筛出
阅读全文
摘要:题目链接:hdu 1299 Diophantus of Alexandria 题意: 给你一个n,让你找1/x+1/y=1/n的方案数。 题解: 对于这种数学题,一般都变变形,找找规律,通过打表我们可以发现这个答案只与这个数的因子有关。 n=a1^p1*a2^p2*...*an^pn ans=((1
阅读全文
摘要:题目链接:hdu 4342 History repeat itself 题意: 让你找第a个非完全平方数m,并且求前m个数的开方向下取整的和。 题解: 第一个问题: 假设第a个非平方数是X,X前面有n个平方数,则n*n<X<(n+1)*(n+1); n*n前面的非平方数的个数是n*n-n; 首先先根
阅读全文
摘要:题目链接:hdu 2824 The Euler function 题意: 让你求一段区间的欧拉函数值。 题解: 直接上板子。 推导过程: 定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目。 例如:φ(8)=4,因为1,3,5,7均和8互质。 性质:1.若p是质数,φ(p)=
阅读全文
摘要:题目链接:hdu 2588 GCD 题意:给定N,M(2<=N<=1000000000, 1<=M<=N), 求1<=X<=N 且gcd(X,N)>=M的个数。 解法:先找出N的约数x,并且gcd(x,N)>= M,结果为所有N/x的欧拉函数之和。 因为x是N的约数,所以gcd(x,N)=x >=
阅读全文
摘要:题目链接:hdu 3842 Machine Works 详细题解: HDU 3842 Machine Works cdq分治 斜率优化 细节比较多,好好体会一下。 在维护斜率的时候要考虑x1与x2是否相等,这里要处理一下。 1 #include<bits/stdc++.h> 2 #define F(
阅读全文
摘要:题目链接:hdu 5997 rausen loves cakes 题意: 给你n个点,每个点有一个颜色,现在有两个操作,第一个操作,将颜色x改为颜色y,第二个操作,询问[x,y]区间有多少颜色段(颜色段的定义为从左往右相同的颜色为一段,遇到不相同的为下一段,ie:144112为4段颜色) 题解: 对
阅读全文
摘要:题目链接:hdu 5996 dingyeye loves stone 题意: 给你一棵树,树的每一个节点有a[i]个石子,每个人可以将这个节点的石子移向它的父亲,如果没有合法操作,那么就算输,现在给你当前的局面,问你能否赢 题解: 设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先
阅读全文
摘要:题目链接:D. Chloe and pleasant prizes 题意: 给你一棵树,树上每一个点有一个权值,现在让你选两个点a,b,使得a不是b的子节点且b不是a的子节点,问最大的ans。 ans的定义是sum(a)+sum(b)(sum(a)以a为根的所以子节点权值和(包括a),b同理)。 题
阅读全文
摘要:题目链接:hdu 4122 Alice's mooncake shop 题意: 有n个订单和可以在m小时内制作月饼 接下来是n个订单的信息:需要在mon月,d日,year年,h小时交付订单r个月饼 接下来一行t,s表示制作的月饼可以保质t天,每保质一天需要花费s的价值 接下来m行表示从第0小时开始在
阅读全文
摘要:题目链接:hdu 5945 Fxx and game 题意: 让你从x走到1的位置,问你最小的步数,给你两种走的方式,1.如果k整除x,那么你可以从x走一步到k。2.你可以从x走到j,j+t<=x 题解: 看这个数据规模,多半要用O(N)的做法,比赛的时候我当时用的贪心,但这肯定是错的,最终FST了
阅读全文
摘要:题目链接:hdu 3415 Max Sum of Max-K-sub-sequence 题意: 给你一串形成环的数,让你找一段长度不大于k的子段使得和最大。 题解: 我们先把头和尾拼起来,令前i个数的和为sum[i]。 然后问题变成了求一个max{sum[i]-sum[j]}(i-k<j<i) 意思
阅读全文
摘要:题目链接:hdu 3410 Passing the Message 题意: 说那么多,其实就是对于每个a[i],让你找他的从左边(右边)开始找a[j]<a[i]并且a[j]=max(a[j])(k+1<j<i),a[k]>a[i]。 题解: 从左往右维护一个递减的单调队列,每次都从尾巴开始把比a[i
阅读全文
摘要:题目连接:hdu 3669 Cross the Wall 题意: 现在有一面无限大的墙,现在有n个人,每个人都能看成一个矩形,宽是w,高是h,现在这n个人要通过这面墙,现在只能让你挖k个洞,每个洞不能重叠,每个洞需要消耗你挖的w*h,现在问你最小消耗多少。 题解: 设dp[i][j]为前j个人挖i个
阅读全文
摘要:题目链接:hdu 3507 Print Article 题意: 每个字有一个值,现在让你分成k段打印,每段打印需要消耗的值用那个公式计算,现在让你求最小值 题解: 设dp[i]表示前i个字符需要消耗的最小值,那么有dp[i]=min{dp[k]+(sum[i]-sum[k])2+m)}(k<i)。
阅读全文
摘要:题目链接:hdu 3401 Trade 题解转自 【DP+单调队列】 hdu3401 Trade 题意: 知道之后n天的股票买卖价格(api,bpi),以及每天股票买卖数量上限(asi,bsi),问他最多能赚多少钱。开始时有无限本金,要求任两次交易需要间隔W天以上,即第i天交易,第i+w+1天才能再
阅读全文
摘要:题目链接:hdu 2829 Lawrence 题意: 在一条直线型的铁路上,每个站点有各自的权重num[i],每一段铁路(边)的权重(题目上说是战略价值什么的好像)是能经过这条边的所有站点的乘积之和.。然后给你m个炮弹,让你选择破坏掉m段铁路,使剩下的整条铁路的战略价值最小。 题解: 和hdu 34
阅读全文
摘要:题目链接:hdu 3480 Division 题意: 给你一个有n个数的集合S,现在让你选出m个子集合,使这m个子集合并起来为S,并且每个集合的(max-min)2 之和要最小。 题解: 运用贪心的思想,肯定首先将全部的数排好序,然后设dp[i][j]表示前j个数分为i个集合的最优解。 则有dp[i
阅读全文
摘要:题目链接:hdu 3045 Picnic Cows 题意: 题解: 分析:先对n个数进行排序,则可以分析出分组成员一定是连续的 dp[i]表示前i个数得到的最少值则:从j~i作为一组 dp[i]=dp[j-1]+sum[i]-sum[j-1]-(i-j+1)*s[j];//sum[i]表示前i个数的
阅读全文
摘要:题目链接:hdu 2993 MAX Average Problem 题意: 给一个长度为 n 的序列,找出长度 >= k 的平均值最大的连续子序列。 题解: 这题是论文的原题,请参照2004集训队论文《周源--浅谈数形结合思想在信息学竞赛中的应用》 这题输入有点大,要加读入优化才能过。 1 #inc
阅读全文
摘要:题目链接:hdu_4918_Query on the subtree 题意: 给出一颗n个点的树,每个点有一个权值,有两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。 题解: 这里可以去膜膜鸟神的博客。 简单来说就是对树的每个重心建立两个树状数组,然后对于每个点修改
阅读全文