随笔分类 - HDU
摘要:题目链接:hdu 6125 Free from square 题意: 从不大于n的所有正整数中选出至少1个且至多k个使得乘积不包含平方因子。 题解: 很容易想到,选出来的数所包含的每个质因子只能有一个。 那么我们对所有的质因子进行状压dp,500以内大概有100个质因子。 那么就成了2100,显然不
阅读全文
摘要:题目链接:hdu 6128 Inverse of sum 题意: 给你n个数,问你有多少对i,j,满足i<j,并且1/(ai+aj)=1/ai+1/aj 在%p意义下。 题解: 不愧是高中生,推公式神题。 将式子通分化简后可得(ai2+aj2+ai*aj)%p=0。 然后两边同时将两边乘(ai-aj
阅读全文
摘要:题目链接:hdu 6109 数据分割 题意: 给你一些不等和相等关系,然后分割,每次都按第一个不成立的等式分割。 题解: 由于相等关系具有传递性,不等关系不具有传递性。 所以相等关系可以由并查集来存储,不相等关系用set来存,目的是为了让查找log(n) 然后在两个集合进行合并的时候,要采用启发式合
阅读全文
摘要:题目链接:hdu 6119 小小粉丝度度熊 题意: 给你n个区间,和一个数m,m表示可补上不连续的位置累计和为m,现在问你最长的连续区间和为多少。 题解: 我可能写的有点复杂,大概就是将每个区间排序后离散化,将这些间隔看成一个点,然后双指针一下。 1 #include<bits/stdc++.h>
阅读全文
摘要:题目链接:hdu 6118 度度熊的交易计划 题意: 中文,说的很清楚了。 题解: 对着输入建一些图,跑一下可行费用流就行了,即当费用为正的时候就不跑了,这样就先满足了费用最小。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i
阅读全文
摘要:题目链接:hdu 6015 Gameia 题意: 给出一棵树,Alice 和 Bob 轮流操作, Alice先手, Alice的操作是选一个未染色的点将其染成白色,Bob的操作是选一个未染色的点将其染成黑色,并且和这个点有直连边的点也被强制染成黑色(无论这些直连点之前是否有颜色),Bob还有一个小技
阅读全文
摘要:题目链接:hdu 6096 String 题意: 给你n个字符串,和q个询问,每个询问给出一个前缀和后缀,问你在这n个字符串中有多少个包含给出的询问,前缀和后缀不能重叠。 题解: 比赛的时候用的hash,无限wa,然后下来后发现他有一组特别的数据专卡我的hash,随便怎么换种子都能卡。真是R了狗了。
阅读全文
摘要:题目链接:hdu 6086 Rikka with String 题意: 给你n个只含01的串,和一个长度L,现在让你构造出满足s[i]≠s[|s|−i+1] for all i∈[1,|s|] ,长度为2L,并且包含给出的n个串,问能有多少种这样的串。 题解: 建立两个AC自动机,一个用来放正串,一
阅读全文
摘要:题目链接:hdu 6085 Rikka with Candies 题意: 给你一个A序列和B序列,A和B内的每个数都不相同,现在有q个询问,问对于每个询问的k输出A[i]%B[j]==k的个数的奇偶性。 题解: 考虑两种情况: 1. 当A[i]<B[i]时,对于当前询问的k,只要A[i]中有k,那么
阅读全文
摘要:题目链接:hdu 6090 Rikka with Graph 题意: 给你一个n和m,让你用这m条边将n个点链接起来,使得对于全部的pair<i,j>的最短路之和最小。没有路的值就为n。 题解: 还是和题解说的一样 1 #include<bits/stdc++.h> 2 #define mst(a,
阅读全文
摘要:题目链接:hdu 6092 Rikka with Subset 题意: 给你n和m,让你找一个字典序最小的含有n个数的A序列,使得A序列的和为m, 然后给你m+1个数,是A序列所有的集合的和的个数,然后让你找出这个A序列。 题解: 和题解一样的思想。 1 #include<bits/stdc++.h
阅读全文
摘要:题目链接:hdu 2966 In case of failure 题意: 给你n个点,让你输出每个点到最近点的欧式距离。 题解: KD-树裸题,板子抄的鸟神的。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++i
阅读全文
摘要:题目链接:hdu 6071 Lazy Running 题意: 给你4个点,每两个相邻点有一个距离,现在让你在这四个点来回跑步,从2开始,最后回到2,问你找一个距离ans,ans>=k,问最小的ans是多少。 题解: Claris的官方题解: 1 #include<bits/stdc++.h> 2 #
阅读全文
摘要:题目链接:hdu 6070 Dirt Ratio 题意: 给你n个数,让你找一段区间[l,r],使得[l,r]中不同的数的个数size/(r-l+1)最小。 题解: Claris官方题解: 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=
阅读全文
摘要:题目链接:hdu 6068 Classic Quotation 题意: 给你两个字符串S和T,现在有q个询问,每个询问给出一个l,r,问S[1..i] 和 S[j..n](1≤i≤L,R≤j≤n)中有多少个T,求出全部的总和。 题解: Claris的官方题解: 这里我用hash代替了kmp的作用。
阅读全文
摘要:题目链接:hdu 6078 Wavel Sequence 题意: 给你a,b两个序列,让你在a,b中找出公共子序列p,满足p1<p2>p3<p4...,问有多少种方案。 题解: 考虑dp[i][j][2],表示a序列选择第i个数,b序列选择第j个数,该数和上一个数的关系是:0为小于,1为大于,的方案
阅读全文
摘要:题目链接:hdu 6073 Matching In Multiplication 题意: 给你2*n个点,左边n个点每个点都有两条边,求所有完美匹配的边权乘积的和,题目保证至少有一个完美匹配。 题解: 首先我们先找出各个连通块,每个连通块只要度不是为1的话肯定都是为2的。 所以就先用拓扑排序将度为1
阅读全文
摘要:题目链接:hdu 6059 Kanade's trio 题意: 给你n个数,让你找有多少个(i,j,k),使得i<j<k满足a[i]^a[j]<a[j]^a[k]。 题解: 首先考虑a[i]和a[k],将他们都转换成二进制,对于a[i]和a[k],我们用Bi[p]表示二进制下的a[i]的第p位。考虑
阅读全文
摘要:题目链接:hdu 6058 Kanade's sum 题意: 给你一个n个数的排列,问你全部区间第k大的总和为多少。 题解: 我们只要求出对于一个数x左边最近的k个比他大的和右边最近k个比他大的,扫一下就可以知道有几个区间的k大值是x。 我们考虑从小到大枚举xxx,每次维护一个链表,链表里只有>=x
阅读全文
摘要:题目链接:hdu 6060 RXD and dividing 题意: 给你一棵树,让你将树的节点划分为k个集合,每个集合都会包括1这个节点,每个集合的价值为这个点集的斯坦纳树的价值。 题解: 比赛的时候看错题啊!!!!!,什么鬼斯坦纳树,结果是对于每个集合的点,选一些树上的边,恰好使这个集合的点连通
阅读全文

浙公网安备 33010602011771号