自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 SVG格式图片的放大

SVG是一种矢量格式图片,即可以无损放缩,其存储的是图像中每个元素的定义,如方块、椭圆等。越来越多的网站采用SVG格式来表达图表。但是SVG格式并不能像png、jpj那样直接拖拽防缩,但只要稍微修改源代码简单的无限放大。

2017-03-05 11:49:10 5219

原创 [2016ICPC 沈阳网络预选赛] HDU 5894 排列组合

题意m个相同的同学放到n个不同的组成一个环的座位,每两人之间至少间隔k个,求方案数。0思路座位是不同的所以不是polya。如果座位不构成环那么就可以把每个人和k个空位打包直接算组合数了。现在考虑把每个人和他右边k个座位打包,计算放置方案C(n-m*k,m)。这样计算的结果其实是最后一个同学不放在最后k个位置上的所有情况,即要么最后一个同学放在前面,要么最后一个同学放在最后,由于他捆绑了k个空座位,所

2016-09-19 14:42:54 631

原创 [2016ICPC 青岛网络预选赛] HDU 5889 网络流

题意给一个图,1号点到N号点最短路位L,现在要求删除权值和最小的边,让最短路全部断掉。思路让原来的最短路全部断掉,显然一条最短路只要有一个边删掉就可以了,多条最短路构成一个最短路图,割断他的最小代价就是最小割。就是最短路重新建图,然后跑个最大流。AC代码 C++#include <stdio.h>

2016-09-19 14:01:59 726

原创 [2016ICPC 青岛网络预选赛] HDU 5881 构造

题意有一壶茶,体积在[L,R]单位,但你不确定。你要把它分倒到两个杯子,最后不能剩下超过1单位,必须确保结果中两个杯子相差不超过1单位。思路大体上应该尽快逼近R,而且为了避免在[L,R]区间突然倒空无法挽救,在区间中要每个杯子依次倒2单位,交替增加,第一次和第二次应分别倒(L+1)/2和(L+1)/2+1,要特判L=0和L=R=2的情况,L=0第一次也要倒1,L=R=2时,第一次仍然倒1。 题目很

2016-09-19 00:35:37 459

原创 [2016ICPC 青岛网络预选赛] HDU 5879 数列求和

题意给出几个N,输入文件不超过1M。对每个N求数列{1/k^2}的前N项和。精确到小数点后5位思路这个数列是有极限的,小数据暴力,中等数据积分近似,大数据直接输出极限。打表测试百万时已经打到极限,所以打表百万,更大输出极限。对于很大的N,我还放了一下前导零,不知道有没有,总之这场题普遍挺坑。AC代码 C#include <stdio.h>#define MAXN 1000005long double

2016-09-19 00:26:57 483

原创 [2016ICPC 青岛网络预选赛] HDU 5878 筛表

题意找出大于n(<=1e9)的最小的只有2,3,5,7为质因数的数,可以不全有,但不能有别的质因数。思路N挺大不过2^30次方,所以所求的数的质因数分解,2357的个数都不会超过30。那么我们先打表找出2357构成的2*1e9以内的所有数,然后排序。没读入一个n找大于等于n的第一个数。AC代码 C++#include <stdio.h>#include <algorithm>using names

2016-09-19 00:19:05 479

原创 [ACM湖南省赛] CSU 1806 动态最短路的积分

题意给一个有向图,n<=10个点m条边,第i条边连接思路边权是一次函数,最短路f(t)一定是一些线段组成的函数。理想情况是按照拐点划分,然后分段积分。这里如果区间中点等于左右端点的平均值那么就可以认为这里是一条直线,不必继续划分。而拐点数和点数同一规模,所以这样可以划分到很高的精度。因为被积函数是由一次函数连接的,所以不必用普通辛普森公式的二次拟合,直接用梯形算就好了。AC代码 C

2016-09-17 00:02:42 765

原创 [2016ICPC 大连网络预选赛] HDU5876 图论

题意给一个无向图,求它的补图中,每个点到S点的最短路。输入点数N<=2*10^5,边数M<=2*10^4。思路原图边很少,所以补图边很多。那么有相当多的点最短路为1,而且最短路的长度也会很小。那么我们可以一层一层的求出最短路。先从S求出距离为1的点,即原图不存在(1,u)。然后再从距离为1的点集向距离未知的点集更新。更新的过程就是扫边表,如果有一个跨两个集合的原图边,就把未知点的cnt++。如果未知

2016-09-16 00:26:02 420

原创 [2016ICPC 大连网络预选赛] HDU5874 构造

题意N个人,任意两个人要么敌人要么朋友。每人做一个彩色项链,朋友间至少有一个共同颜色,敌人间不能有共同颜色,颜色数可以为空。问M种颜色,能否满足任意一种社交关系,即关系不给定,而是考虑最坏情况。思路为了让颜色数需求多,不应当让任何一个人没朋友(这样他直接为空就不用占颜色数了)。那么就应当让大家在一个朋友圈中,并尽可能用敌对关系岔开颜色。 可以设想,如果每个人不能为空,那么几个人的完全敌对就需要多少

2016-09-15 23:02:14 461

原创 [2016CCPC 网络预选赛] HDU5834 记忆化搜索

题意给一棵树,每个结点有宝贝,通过每条路要付费,问从每个点出发的最大收益。思路宝贝只能拿一次,边每次过都要交费。一个点的最大收入显然就是去几个路费小的子树拿宝贝,然后走一条不归路。那么就来两遍搜索,第一遍回溯每个子树回与不回的最大收益,第二遍把父亲方向回与不回的情况传下去,计算答案。这里比较难处理的就是第二次搜索下传的时候,第一次统计当前子树不回的最优值是从下传的路径上来的,所以第一遍搜索额外要记录

2016-08-14 23:28:41 752

原创 [2016ACM多校] HDU5829 卷积 NTT

题意给N(10^5)个点,每个点有个权值A[i],对于所有非空子集,该子集的值就是其前K大的数的和,不够K个数就是所有数的和。求对于K=1~N,每个K值对应的子集值的和。思路首先枚举所有子集,那么和点的顺序无关,可以先排序方便组合数学的计算,这个直觉做法很重要,这里就按sort默认从小到大排序。然后不难想到按照贡献法,可以计算每个值*它在多少个子集中被计算。一个点被计算,它要是前K大,他所出现的子集

2016-08-13 00:26:38 965

原创 [2016ACM多校] HDU5809 KD树 并查集

维平面有N(<=10^5)个蚁穴,每个蚁穴的蚂蚁会不断的爬向最近的蚁穴(距离相同则按x,y坐标选最小的),Q(<=10^5)个查询,问两只蚂蚁是否会相遇。思路其实行走过程就像不断寻找、逼近最近点对,最终再最近点对循环,那么落入同一个最近点对的蚂蚁就会相遇。即把每个点和离他最近的点连边,不必考虑方向,同一个连通分量中的蚂蚁一定会相遇。建立图之后用并查集维护一下联通关系即可。   建图KD树

2016-08-10 19:33:05 1245

原创 HDU 4804 Campus Design 轮廓线DP

原题DescriptionNanjing University of Scienceand Technology is celebrating its 60th anniversary. In order to make room forstudent activities, to make the university a more pleasant place for learning

2016-08-05 18:46:23 465

原创 [2016ACM多校] HDU5787 数位DP

题意求[L,R]中这样一种数的个数,它的每连续K位都满足两两不相同。2<=K<=5思路K很小,典型的数位动态规划,为了方便写成记忆话搜索的形式。从高位往低位决策,传入之前临近的K位是哪些数,这一位是否可以自由枚举0~9,是否来自前导零。为了修改最近的K位所占用的数,要用一个队列或者其他数据结构维护填数的先后顺序。如果这一位可以自由枚举那么之后就都可以自由枚举,而且仅受制于前K位用过几个数(前导零不算

2016-08-05 18:33:32 583

原创 [2016ACM多校] HDU5784 极角序 正难则反

题意给N个点,问组成多少个锐角三角形。N<=2000思路一开始想的是枚举线段,然后构成锐角三角形的另一个点在线段两端点的垂线内,还在以线段为直径的圆外。垂线好搞,圆卡到比赛结束。赛后发现直接用三角形总数减去非锐角的个数就可以了,没用正难则反这个思维就去坑第五题T到爆。  在算非锐角个数是,平角是个特殊情况,所以不能算钝角直角相加,而要算非锐角再除以2。最后代码只写了40行,感觉挺不错的。AC代码

2016-08-05 18:16:44 662

原创 [2016ACM多校] HDU5764 搜索

题意给一棵树,结点编号1~N,权值原本是1~N的一个排列。现在让每个点的权值更新为它所在子树的最大权值。给出更新后的树,输出所满足的最小字典序的1~N原排列,否则输出不可能。(根不给定)思路赛场上没看到最小字典序,榜也有点歪去坑03了,读题很重要!更新就是回溯是当前结点变为自己和上传的最大值并上传。显然,所有的值一定是一个链不能中断也不能分叉,根一定是值为n的链的端点。这样根最多只有两个情况,其实

2016-07-29 23:12:55 616

原创 [2016ACM多校] HDU5768 容斥原理 中国剩余定理

题意给出数组p和a,是7的倍数且除以任何一个pi余数不为ai的数是幸运数,问[x,y]中有多少幸运数。思路因为幸运数n要满足使得任意一个n%pi=ai不成立,鉴于中国剩余定理可以方便的解出{x%pi=ai}这样的模方程组,所以用容斥原理,先求出7的倍数在减去满足一个方程的,+满足两个方程的-。。。就可以得到结果了。当然,在每次解方程组时都要加上x%7=0这个方程。 注意!pi累乘<10……18且a

2016-07-29 22:09:19 556

原创 [2016ACM多校] HDU5758 贪心 搜索

题意一棵树,要遍历所有的边,不能往回走。走到尽头的时候可以传送到另一个点,首先要保证使用传送次数最少。思路所走的路径是最小链覆盖,由两个两个叶子的链组成,如果有奇数个子叶节点,那么会多一条从某一个叶子到祖先的一条特殊路径。那么对于每一个叶节点,一定有且只有一条指向祖先的路径。对于一个非叶,会收到来自子节点上传的多条路径,那么这时两两合并一定最优,但是又必须要保证它向根的路径被覆盖。所以如果上传了

2016-07-27 22:03:31 673

原创 [2016ACM多校] HDU5730 FFT 重叠相加法

题意x(n)=x(n)h(n)[u(n)-u(n-N-1)],求x(N)。N为10^5,表示卷积。思路不要一看这个式子就以为h(n)是delta(n),如果h(n)=delta(n)则满足这个式子,但不能逆向推导。这里h(0)=0,也就是说每个x(n)是由前面的结果得出的。不能直接快速傅里叶变换求卷积。既然x(n)是强制在线一个一个输入的,显然是数字信号处理中的分段流水处理,有重叠相加法和重叠保留

2016-07-23 22:06:38 1567

原创 [2016ACM多校] HDU5739 搜索

题意给一个无向图G,N个点,删去一个点i后得到Gi的重Zi为Gi所有仍然联通的分量的内部点权值乘积再求和。思路CDQ暴力回滚并查集,可解决。这里使用tarjan算法,挺坑的。依次搜索每个没被搜索过的点,进入该点几下时间戳,看能否访问到时间戳更早的点,如果不能这个点就是割点。对于不是割点的点很好办,联通分量的累乘积乘以它自己的逆元再加上其他分量的乘积。为了计算割点,在搜索的时候全局记录一个到目前为止经

2016-07-22 23:08:56 442

原创 [2016ACM多校] HDU5745 匹配

题意给出一个长度N不超过10^5的字符串s,和一个长度M不超过5000的模式串p。p可以做一次这样的变换,在p中任意选几个相邻的但互不冲突的字符对,交换这k对。问s中每个起点的子串是否和p匹配。思路显然O(mn)的暴力字符匹配不会超时,就想想怎么处理多变的p串。因为所选的这些交换对互不相关所以可以需要的时候再交换,而交换可以向前或向后交换,这就是题解的思路。其实仔细想想,按照一般的匹配,其实只用考虑

2016-07-21 20:29:04 607

原创 [2016ACM多校] HDU5728 数论 欧拉函数及其定理

题意给n,m,p,定义k=sigma(1~m,phi[i*n]),计算k^k^k^……^k。phi是欧拉函数,n无平方因数,最后有无限个k思路 这里补充说明一下phi(i*p*n)=p*phi(i*n)这个公式,这里p已经是n的因数,这里是讨论当

2016-07-21 10:43:19 512

原创 [2016ACM多校] HDU5724 博弈论 SG

题意n行棋盘,每行20个放有棋子,两人每次可以把一个棋子移动到它右边第一个空位,不能操作者失败,输出先手是否必胜。思路典型的Nim游戏,搜索求SG函数,然后把每行的SG(状态)值异或一下。用for把代码变得很短,感觉很良好。AC代码 C#

2016-07-20 12:18:04 1152

原创 [2016ACM多校] HDU5726 st表 离线

题意给n个数{a[i]},q个询问(l,r),与[l,r]最大公约数相同的区间有多少个。思路首先是查询最大公约数,然后统计相同的区间。查询可以用各种结构,既然只用查询那就用st简单高效,主要考虑统计。指定开头s,那么从s开始的区间,随着结尾t的减小,gcd减小,gcd种类不超过log(a[s])个,可以二分每种gcd结束的位置,然后累加。这样全统计时间复杂度为O(n*logn*logn),鉴于gcd

2016-07-19 22:31:43 501

原创 HDU 3255 题解 线段树+扫描线

线段树 扫描线 分层求体积并

2015-08-18 18:57:39 362

空空如也

空空如也

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

TA关注的人

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