随笔分类 -  HDU

摘要:题目连接:hdu_2457_DNA repair 题意: 给你N个字符串,最后再给你一个要匹配的串,问你最少修改多少次,使得这个串不出现之前给的N的字符串 题解: 刚学AC自动机,切这题还真不知道怎么来DP,然后看了一下题解,需要在失败指针那里做文章,这里我们要将trie的每一个节点当作一个状态,然 阅读全文
posted @ 2016-07-15 14:45 bin_gege 阅读(155) 评论(0) 推荐(0)
摘要:题目连接:hdu_5555_Immortality of Frog 题意: 给你一个NxN的网格,第N行的每一列都有个青蛙,这些青蛙只会往上走,上帝会在每个膜中放一个长生不老的药,一共有N个膜,每个膜覆盖一些区间,如果这个区间恰好为N那么就是好膜,否则是坏膜,每个青蛙最多只能穿过10个坏膜,问全部青 阅读全文
posted @ 2016-07-12 16:15 bin_gege 阅读(350) 评论(0) 推荐(0)
摘要:题目连接:hdu_2159_FATE 题意:完全背包的题意 题解:把杀敌数看成背包的容量,维护一个经验的最大值,我是多开一维来记录最大的忍耐度,当然你也可以直接开一位,并记录忍耐度,最后扫一遍 1 #include<cstdio> 2 #include<cstring> 3 #define F(i, 阅读全文
posted @ 2016-07-11 19:54 bin_gege 阅读(159) 评论(0) 推荐(0)
摘要:题目连接:hdu_2844_Coins 题意:给你n个硬币的价值和对应的数量,问你从1到m有那些数能组合出来 题解:如果我们将硬币的价值看成一个物品的容量和价值,那么对应1-m,如果dp[i]==i,那么这个数就能组合出来,所以这题就变成了一个多重背包,多重背包可以分为完全和01背包,也可以直接用0 阅读全文
posted @ 2016-07-11 17:49 bin_gege 阅读(153) 评论(0) 推荐(0)
摘要:题目连接:hdu_2688_Rotate 题意:给你n数,(n<=3e6),有两个操作,Q为 当前有多少对数,满足严格递增,R l,r为旋转l,r这个区间的数 题解:求严格递增的顺序对我们可以反向用树状数组求逆序对,300W的数据还是有点够呛,不过这里求出来也就nlogn,然后对于旋转操作,因为区间 阅读全文
posted @ 2016-07-11 14:02 bin_gege 阅读(297) 评论(0) 推荐(0)
摘要:题目连接:hdu_2546_饭卡 题意:中文,不解释 题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 using namespace st 阅读全文
posted @ 2016-07-09 22:41 bin_gege 阅读(122) 评论(0) 推荐(0)
摘要:题目连接:hdu_5110_Alexandra and COS 题意: 给你一个图,X代表宝藏,然后有一个船,它的声纳的频率为D,定船到宝藏的距离为Dis=max(abs(x1-x2),abs(y1-y2)),如果D是Dis的约数并且宝藏在船的上方开角45°,那么这个船就能探测到这个宝藏,现在给你q 阅读全文
posted @ 2016-07-09 14:33 bin_gege 阅读(299) 评论(0) 推荐(0)
摘要:题目连接:hdu_5589_Tree 题意:给你一棵树和一些边值,n个点n-1条边,一个m,q个询问,每个询问让你输出在[l,r]区间内任意两点树上的路径的边权异或的和大于m的点对数。 题解:这题很巧妙,看数据知道要用莫队,不过如何来处理树上任意两点的边权异或和大于m呢?我们知道,一个数和另一个数异 阅读全文
posted @ 2016-07-08 20:02 bin_gege 阅读(259) 评论(0) 推荐(0)
摘要:题目连接:hdu_5085_Counting problem 题意:给你一个计算公式,然后给你一个区间,问这个区间内满足条件的数有多少个 题解:由于这个公式比较特殊,具有可加性,我们考虑讲一个数分为两个部分,这样就可以用莫队的思想均摊时间复杂度,将9位数分为一个4位和一个5位,这里我感觉sqr为10 阅读全文
posted @ 2016-07-08 11:11 bin_gege 阅读(424) 评论(0) 推荐(0)
摘要:题目连接:hdu_4467_Graph 题意:给你n个点,m条边,每条边有一个权值,有两个操作,一个是修改单点的颜色,一个是询问边的两个端点都为指定颜色的权值和 题解:这题如果暴力的话,就是维护3个ans,一个是两个端点都为0的,一个是一个为1一个为0的,最后还有个两个端点都为1的,对于每个询问,可 阅读全文
posted @ 2016-07-06 23:01 bin_gege 阅读(266) 评论(0) 推荐(0)
摘要:题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1<=xi<=r1,l2<=y2<=r2,使得x+y=K; 题解:首先,这题没有修改操作,即可以离线,离线区间问题就要想到莫队算 阅读全文
posted @ 2016-07-06 18:39 bin_gege 阅读(158) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3886 题意:这题的题意有点晦涩难懂,大概意思就是给你一个区间,让你找一些满足递增递减条件的数,举个列:/-\,要匹配这个关系,把一个数字分成一列数位,满足先递增,然后相等,然后递减的关系:ie:1233 阅读全文
posted @ 2016-07-06 15:05 bin_gege 阅读(221) 评论(0) 推荐(0)
摘要:题目连接:hdu_4352_XHXJ's LIS 题意:这题花大篇篇幅来介绍电子科大的一个传奇学姐,最后几句话才是题意,这题意思就是给你一个LL范围内的区间,问你在这个区间内最长递增子序列长度恰为K的数有多少个 题解:数位DP+状态压缩,这题首先考虑如何来求数位的LIS,很明显不可能用n*n的方法, 阅读全文
posted @ 2016-07-06 10:20 bin_gege 阅读(350) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给你n,m 让你求出 for(1-n)for(1-m)gcd(i&j,i|j)的sum 题解:这题正解是枚举子集或者Claris的数位DP,不过这些我都不会,还是觉得简单粗暴的方法比较适合我 阅读全文
posted @ 2016-07-05 19:43 bin_gege 阅读(152) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5179 题意:给你一个范围,问你漂亮的数有多少个,漂亮的数的定义为 数位高的比数位低的大,并且 数位高的数%数位低的数为0 题解:数位DP,详细看代码,为了方便,我把所有的参数全部设为了状态,这样就不用判 阅读全文
posted @ 2016-07-05 16:33 bin_gege 阅读(121) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:给你n,m,共有n个女孩,标号为1—n,n个数xi表示第ith个女孩在第xi个教室,然后下面有m个询问,每个询问有l,r两个数,表示要去找编号为l到r的女孩,每进一次教室只能找一个女孩,问有 阅读全文
posted @ 2016-07-05 15:14 bin_gege 阅读(190) 评论(0) 推荐(0)
摘要:题目连接:hdu5711 这题是 HDU 女生赛最后一题,TSP+贪心,确实不好想,看了wkc巨巨的题解,然后再做的 题解传送门:Ingress 1 #include<cstdio> 2 #include<queue> 3 #include<algorithm> 4 #define F(i,a,b) 阅读全文
posted @ 2016-07-02 15:20 bin_gege 阅读(251) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 题意:给你n个点,和一些边,找一条路径经过全部的点,并回到起点,问最小的花费是多少, 题解:m<=1e5,n<16,说明有多边,需要处理一下,处理完用floyd跑一下,然后进行状态压缩dp。 1 阅读全文
posted @ 2016-07-02 11:34 bin_gege 阅读(170) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5691 题意:中文,不解释 题解:设dp[i][j]表示当前状态为i,以第j个数为末尾的最忧解,然后dp下去就行了 1 #include<cstdio> 2 #define F(i,a,b) for(in 阅读全文
posted @ 2016-07-02 10:18 bin_gege 阅读(195) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3564 题意:给你N个数的位置。数i的位置为第i个数,比如 0 0 2,表示1插在第0个位置,此时数列为{1},2插在第0个位置,此时数列为{2,1},3插在第2个位置,此时数列为{2,1,3},每插一个 阅读全文
posted @ 2016-07-01 22:28 bin_gege 阅读(347) 评论(0) 推荐(0)