自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

绝丶爵的博客

我眼中的风景

  • 博客(36)
  • 收藏
  • 关注

原创 并查集

并查集并查集顾名思义,并查集分为合并和查询。在图中给定n点问你n个点组成多少部分,如:4 2 1 3 4 3 第一行告诉你,一共有4个点,2条路。下面两行告诉你,1、3之间有条路,4、3之间有条路。那么整幅图就被分成了1-3-4和2两部分。合并的思想:主要使用树型来维护在同一个树代表同一个部分,用个pre数组来表示没个点的父亲节点,一开始每个人父亲节点都是自己,但有两个点相连...

2017-08-12 17:14:11 280

原创 尺取法

尺取法尺取法顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。之所以需要掌握这个技巧,是因为尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以尺取法是一种高效的枚举区间的方法,一般用于求取有一定限制的区间个数或最短的区间等等。当然任何技巧都存在其不足的地方,有些情况下尺取法不可行,

2017-08-12 11:05:59 239

原创 拓扑排序

拓扑排序概念对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。 通俗点就是:按一定条件进行排序,完成前提条件才可以进行后面事件 (如:在日常工作

2017-08-07 11:31:01 170

转载 矩阵快速幂

矩阵快速幂在讲矩阵快速幂之前,先引入整数快速幂的概念。整数快速幂为了引出矩阵快速幂,以及说明快速幂算法的好处,我们可以先求整数的幂。如果现在要算X^8: 则X*X*X*X*X*X*X*X*X 按照寻常思路,一个一个往上边乘,则乘法运算进行7次。 用(X*X)*(X*X)*(X*X)*(X*X)这种求法,先进行乘法得X^2,然后对X^2再执行三次乘法,这样去计算则乘法运算执行4次。已经比七次少。所

2017-08-07 11:19:53 294

原创 HDU 6168 Numbers(数列,思维)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6168题目意思有一个长度为n的a数组,由a数组任意两项相加的和得到b数组,现在a,b数组混合起来了,给你混合的m个元素。求原本的a数组长度和原本a数组的元素。解题思路由于b数组是由a数组相加得到的,所以最小两项一定是a数组,把混合数列去除a[1],a[2]和a[1]+a[2],接着加入第3小项,去除

2017-08-23 16:30:07 251

原创 HDU 6143 Killer Names(容斥定理)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6143题目意思姓和名都是n个字母,给m个不同字母来组名字,问你组成姓和名没有相同字母方案数解题思路把字母分成2部分,一部分来组姓一部分来组名,也就是i从1到m-1种分法每次有c(i,m)选法,接着只要考虑i个字母在n个位置有多少种放法,,每个位置是i个放法。为了不和前面取出来方法数重复每个字母都用到

2017-08-21 17:00:10 220

原创 HDU 6140 Hybrid Crystals(思维)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6140题目意思给定一些数,有的增加能量,有的减少能量,有的可以增加或者减少能量。问你k个能量能否够组成(L为加,D为减,N为可加可减),(最重要的是这个能量值居然是连续的,明明说了可以偷懒只看后面的,但是这个居然是在上面体现的) 解题思路所以题目就转化成了,初始区间【-1,1】.当假如一个N性水晶的

2017-08-21 16:11:46 227

原创 HDU 6127 Hard challenge (思维)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6127题目意思给定n个点,每个点都有自身权值,找一条直线,每两个点相连穿过这条直线那么两个点所产生的权值为两点各自权值的乘积。问你最大权值总和是多少。解题思路任意一条直线所产生的权值都等于直线左边点总和*直线右边点权值总和(自己找4个点画画就明白)。初始定条直线。然后把给的点全部按极角排序,根据极角

2017-08-21 10:57:15 190

原创 给定r,n求[1,r]内与n互素的个数有多少个?(容斥定理+位运算)

题目给定r,n求[1,r]内与n互素的个数有多少个?解题思路正面想太过复杂,所以从反面来求,那么问题就变成[1,r]中有多少个和n不互质的的数。而要解决这个问题就可以把n的质数都枚举出来,在通过这些质数倍数个数和,减去重叠部分(容斥定理)就可以了。而我写这篇博客的目的是下面代码对位运算的应用让我吃惊。。。祭奠这次发现新大陆。代码部分LL Solve(LL n,LL r){ vector<

2017-08-17 20:57:28 544

原创 HDU6121 Build a tree(树+异或)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6121题目意思有一棵n个点的有根树,标号为0到n-1,i号点的父亲是​i-1/k号点,求所有子树大小的异或和。(也就是建立一棵k叉树)解题思路性质:一棵满k(k>1)叉树所以子树大小异或和等于数的深度。 根据性质可以把题目分两种情况: 1.当k=1时候,由于k==1时候不满足性质要单独提出,而k

2017-08-16 19:35:38 365

原创 HDU6129 Just do it (找规律)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6130题目意思有一个长度为n的整数序列a,对其做m次前缀异或和,求最终的序列。解题思路用i表示次数,用j表示位子。那么就可以得到a[i][j]=a[i][j-1]^a[i-1][j](自己写两个不难看出),接着有两种处理: 1. 根据上式可以得到a[1]对后面的异或次数为: 1 1

2017-08-16 10:55:48 276

原创 HDU6130 Kolakoski

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6130题目意思给你个kilakoski数列,问你第n个数字是什么。解题思路首先kilakoski是由1,2组成的无序数列,而kilakoski a[i]为数表示的是第i为相同数字的长度。比如(1,2,2),a[3]==2,所以后面(1,2,2,1,1)数字不对交叉。题目给的时间够打表所以打表过就好了

2017-08-15 19:26:57 950

原创 HDU6124 Euler theorem

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6124题目意思告诉你本来想求a mod b,发现b不知道了,问你给定a有多少a mod b不同的结果解题思路当b大于a时,mod注定是a本身。当(a-1)/2代码部分#include<bits/stdc++.h>using namespace std;int main() ///不用怀疑就

2017-08-15 19:12:29 356

原创 HDU2144 Evolution (最长子序列+并查集)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2144题目意思首先给定n个动物,和百分比p,接着给n个动物的dna。如果两动物的dna相同长度超过总长的百分比p就可以把两动物分成一类,问你最终这些动物分成多少类。解题思路对于分类问题不难想到用并查集,而判断两字符串相同最长长度就用最长子序列就可以了。时间给的比较多直接跑就可以了。代码部分#inc

2017-08-15 09:39:24 285

原创 POJ1182 食物链(并查集)

【题目链接】 http://poj.org/problem?id=1182题目意思动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示X和Y是同类。 第二种说

2017-08-14 19:32:47 184

原创 HDU 1232 畅通工程(并查集)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1232题目意思某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 解题思路假定一开始点都是分开的,那么就要修n-1条路,然

2017-08-14 09:41:02 168

原创 HDU 6105 Gameia(树+博弈)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6105题目意思给出一棵树,Alice 和 Bob 轮流操作, Alice先手, Alice的操作是选一个未染色的点将其染成白色,Bob的操作是选一个未染色的点将其染成黑色,并且和这个点有直连边的点也被强制染成黑色(无论这些直连点之前是否有颜色),Bob还有一个小技能是去掉一条边,最后当所有点都有颜色

2017-08-12 15:32:51 325

原创 HDU6098 Inversion

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6098题目意思给你一个长度为n的数组a;求数组b,数组bi满足i不是a数组下标的因数的最大值。解题思路用个结构体存储数组a,存储a的数数值和下标,然后根据a的数值排序,b数组从最大值开始往小的找,直到找到满足条件的一个为止。代码部分#include<bits/stdc++.h>using name

2017-08-12 11:47:32 240

原创 HDU6106 Classes

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6106题目意思给出选 A,B,C,AB,AC,BC,ABC 课程的学生,其中 AB 是 A 和 B 都选….,确定该班级的人数,给出的数据中有一些数错误的,但保证一组正确答案,输出最多的班级的人数解题思路根据ABC的人数可以推出只选AB,AC,BC的人数,在根据前面4个可以推出只选A,B,C,的人数

2017-08-12 11:14:11 233

原创 HDU 6103Kirinriki

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6103题目意思给出一串字符串,从中选出两个不重叠的字符串,使得两个字符串的距离和 <= m 的最长字符串长度,A,B 串中的字符距离计算为 disA,B=∑i=0n−1|Ai−Bn−1−i|解题思路看到这题时一开始想用的dp做后来,后来实在是想不出来动态转移方程(太菜没办法)后来发现直接用尺取就可以

2017-08-12 10:23:56 220

原创 HDU 6092Rikka with Subset

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6092题目意思T组测试,接下来一行n和m,下面一行m+1个数字代表B(0~m)求A序列,Bi 代表A序列中的所有子集之和为i的有Bi个,A序列总和为m,n个元素; 解题思路一个0 1背包问题,有空子集等于1可以得出初始值dp【0】=1;然后根据b数组和为i个数-dp中由小数子加和为的个数得出a数组中

2017-08-09 10:51:23 217

原创 HDU6090 Rikka with Graph

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6090题目意思在一个无向图中,给你n个点和m条边。每个点到其他点权重为所走过的边的个数,无法到达的点权重为n。问你全部权重总和。解题思路当m=n-1时,正好将可以n点全部链接。而要使权值最小也就是选个中心点其他点都先与中心点相连。总权重等于(n-1)*(n-1)*2当m>n-1时把除中心点其他任意两

2017-08-09 09:44:28 189

原创 HDU6095 Rikka with Competition

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6095题目意思一场n个人比赛,给个数组a表示n个人的实力,当|ai−aj|>K,则ai获胜。否则都可以能获胜。问你a数组里面可能获胜的人数。解题思路对数组排序,从大到小不断比较看是否满足相减小于等于k,如果满足继续比较下组,直到不满足为止代码部分#include<iostream>#includ

2017-08-09 09:01:16 196

原创 HDU6063RXD and math

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6063题目意思公式题:不弄题目了。解题思路考莫比乌斯函数,最终答案等于n^k取模,用整数快速幂跑。代码部分#include <bits/stdc++.h>using namespace std;const int N = 1e6+7;typedef long long ll;const l

2017-08-07 11:17:47 237

原创 HDU6058 Kanade's sum

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6058题目意思给你长度为n的a数组,问你数组a组成的区间第k大的总和。解题思路确定a数组一个元素x,判断x右边是否有k比x大的元素,没有左边补。找到右边第k个比x大的数a[j](或小于k),如果a[j]右边还有y个比x小的数,就多y个区间满足第k大。右边找找完往左找,每找到一个比x大数,右边比x的退

2017-08-07 09:50:19 226

原创 HDU 6055 Regular polygon

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6055题目意思给定n个点问你可以形成多少个正多边形。解题思路因为给定点为整数,所以只能形成正4边形,因此从上往下,从左往右。任意两个点两两判断剩余其余两点是否在给定点中,最后答案除2,因为ab和ba重复计算代码部分#include <bits/stdc++.h>using namespace st

2017-08-07 08:55:54 142

原创 HDU6052 To my boyfriend

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6052题目意思给比个矩阵,矩阵中每个格子都有一个数字,同一数字代表同一种颜色,问你所有子矩阵种颜色个数总和。解题思路对于每个子矩阵含多多少颜色不好判断,所有判断没个颜色占子矩阵个数。而同种颜色判断从上到下,从左到右。没判断完一个位子上所占矩阵个数,就标记,防止下面同种颜色重复计算。代码部分#incl

2017-08-07 08:46:17 274

原创 HDU6047 Maximum Sequence

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6047题目意思给你两个数组a,b。没个数组都有n个元素,接着求a【n+1】到啊【2*n 】,而a[i]=max{a[j]-j},b[k]解题思路根据题目可以知道每次a组值因为不断求出新的ai值而改变,所以设个dp数组存储区间的最大值,还有b数组限制着j能取的范围,而b数组的值的选择可以从小到大选,

2017-08-06 17:27:43 239

原创 HDU 6045 Is Derek lying?

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6045题目意思两个人在答题,答对得一分,现在A给你n,x,y。分别代表n道题,A和B的得分,最后给你两个字符串代表AB的每题答案是什么。问你给出的答案是否可能出现。输出A是不是说谎了解题思路如果两人不同答案小于两人的分数差或两人相同答案数小于两人分数和减题目数。都是说谎了其他都是没说谎代码部分#incl

2017-08-06 16:45:57 210

原创 HDU 6043 KazaQ's Socks

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6043题目意思给你n双袜子,编号从1~n,每天穿编号最小的一双,当穿到最后一双时,把前面袜子都洗了,然后再按编号最小的开始穿。问你第k天穿的编号是多少。解题思路可以发现除了第一轮是n双袜子,之后都是n-1双袜子在轮,而没两轮最后一天正好是穿最大编号和第二大编号。所以直接把(k-n)%(n-1)看是否有余

2017-08-05 17:57:10 219

原创 HDU 6075 Questionnaire

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6075题目意思给你个n,接着n个数字,请输出一个m,一个k。当n个数字里对m取mod正好等于k的个数大于等于半数的情况(mk有多少输出其中一组)解题思路就一思维题,如果m为2的时候k就只剩1或0可以选择了,这个时候题目就变成n里面偶数多还是奇数多了。代码部分#include<bits/stdc++.h>

2017-08-04 17:22:43 222

原创 HDU 6078Wavel Sequence

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6078题目意思给定两个数组问你同时满足波浪的波浪数。不理解可以看题目提示部分解题思路首先从a数组一个个往下查询b数组是否有相同数字。在查询新的数字时候就要判断前面是否有可以与新加的数字组成波浪的,而当新加数比前面的数大时候就可以添加前面数字为波谷的情况下,而自己添加后处在波峰的位子(如前面有的1 3,现

2017-08-04 17:04:04 611

原创 HDU 6069 Counting Divisors

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6069题目意思给你了l,r,k。问你i从l到r,i^k因子个数的总和解题思路根据约数个数定理:n=p1^a1×p2^a2×p3^a3*…*pk^ak,n的约数的个数就是(a1+1)(a2+1)(a3+1)…(ak+1).(p为质数) 若i=p1^a1×p2^a2×p3^a3*…*pk^ak,则i^K=

2017-08-04 15:54:21 172

原创 HDU 6035 Colorful Tree

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6035题目意思给你n个点,每个点都会用一个数字代表一种颜色,之后给你(n-1)相连的条路,问你n总共形成的n*(n-1)/2条路每路经过的颜色的个数的总和(1到2,2到3,1到3是3条路。所以n个点能形成n*(n-1)/2条路)解题思路首先题目意思可以转化成每种颜色经过的路的条数总和,有可以转化成全部的

2017-08-01 20:18:31 260 1

原创 HDU 6034 Power!

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6034题目意思题目大意为:给你一个n,后面有n个字符串,字符串每个字母对应0到25之间的一个数,问你这些字母分别等于多少时候字符串代表的值总和最大(相当于25进制)。而且在字符串不能能有前导0出现。(数值过大对10^9+7取余)解题思路不考虑统计没个字符在权位谁高谁低,然后就从25排到0就好了,但是他又

2017-08-01 19:55:29 218

原创 HDU 6033 Add More Zero

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6033题目意思一个简单的问题,给你一个m问你2的m次方是几位数。解题思路一开始还用整数快速幂来跑,后来发现直接用对数就可以轻松简单的得出答案,恩就是这样。代码部分#include <bits/stdc++.h>using namespace std;int main(){ int i=1,

2017-08-01 19:33:09 195

空空如也

空空如也

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

TA关注的人

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