随笔分类 - HDU
摘要:题目链接:hdu 2609 How many 题意: 给你一些01串,a能通过循环到b的算一个种类,问有多少种串。 题解: 最小表示法板子题。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++i) 3 using
阅读全文
摘要:题目链接:hdu 1817 Necklace of Beads 这题的弱化版:传送门 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 typedef long lo
阅读全文
摘要:题目链接:hdu 3923 Invoker 题意: 将n种元素,填在有m个位置的戒指上,问有多少种方案。 能旋转,翻转的算一种。 题解: 通过打表发现,对于x个位置的戒指,旋转i位的循环数为gcd(i,x); 然后对于翻转:考虑m的奇偶性,一共有m条对称轴。 然后就可以直接上快速幂解了。 1 #in
阅读全文
摘要:题目链接:hdu 3430 Shuffling 题意: 给出n张牌,标号为1-n,然后给出两个序列,序列1表示序列1,2,3,4……,n洗一次牌后到达的. 序列2表示目标序列,问初始序列按序列1的洗牌方式洗几次能到达序列2的情况,如果不能到达输出-1. 题解: 在初始序列和序列1的变换中找出1能变到
阅读全文
摘要:题目链接:hdu 1802 Black and white painting 题意: 有一个n*n的格子,然后用c种颜色去涂,问你有多少种方案。 能旋转,反射的算一种方案。 题解: polya定理的经典运用 旋转只有 0,90,180,270度三种旋法。旋0度,则置换的轮换数为n*n旋90度,n为偶
阅读全文
摘要:题目链接:hdu 1439 Cipher 题意: 给你一个n元的key,让你将一个字符串置换k次。 题解: 暴力将每个数的循环数找到,然后k%后对应填字符就行了。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3
阅读全文
摘要:题目链接:hdu 4355 Party All the Time 题意: 有n个人,在一个一维的坐标轴上,现在让他们聚在一起。 每个人移动一段距离会产生一个 不开心值=S3*W,现在问你最小的全部加起来的不开心值是多少。 题解: 目标函数是一个凸函数,直接上三分就行了。 1 #include<bit
阅读全文
摘要:题目链接:hdu 1565 方格取数(2) 题意: 有一个n*m的方格,每个方格有一个数,现在让你选一些数。使得和最大。 选的数不能有相邻的。 题解: 我们知道对于普通二分图来说,最大独立点集 + 最小点覆盖集 = 总点数,类似的,对于有权的二分图来说,有: 最大点权独立集 + 最小点权覆盖集 =
阅读全文
摘要:题目链接:hdu 4717 The Moving Points 题意: 在二维平面上有n个点,每个点给出移动的方向和速度。 问在某个时刻,这些点中最大距离最小是多少,输出时刻和距离。 题解: 我们可以知道,每个点对的距离要么是单调递增,要么是有一个峰的函数。 举例画一下可知道合成的这个函数最多只有一
阅读全文
摘要:题目链接:hdu 5306 Gorgeous Sequence 题意: 给你一个序列,有三种操作。 0 x y t:将[x,y]的数取min(a[i],t) 1 x y:求[x,y]的最大值 2 x y:求[x,y]的区间和 题解: 吉老师的课件题:传送门 1 #include<bits/stdc+
阅读全文
摘要:题目链接:hdu 5710 Digit-Sum 题意: 定义S(n)=n的数位和,给你一个a,b让你找一个n使得a*S(n)=b*S(2n)。 题解: 传送门 构造题很少做啊!! 太弱了 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a
阅读全文
摘要:题目链接:hdu 6031 Innumerable Ancestors 题意: 给你一棵n个节点的树,现在有m个询问,每次给你两个点集a,b。 让你从a,b点集中选两个点x,y,使得这两个点的LCA的深度最大。 题解: 标解应该是二分+LCA,不过我试了一下暴力,稍微剪了点枝,就直接过去了。 具体看
阅读全文
摘要:题目链接:hdu 6026 Deleting Edges 题意: 给你n个点,和一个邻接矩阵,非0表示有边,0表示没边。 现在让你删一些边,构成一棵树,使得每个点到0这个点的距离为没删边之前的最短路。 问有多少棵这样的树。 题解: 首先,题意说从0点开始对每个点都最短路,那么用单源最短路就能搞定。
阅读全文
摘要:题目链接:hdu 6030 Happy Necklace 题意: 给你一个有n颗只有红黑的珠子串,对于任意一个连续的质数个珠子,红的珠子都不能少于黑的珠子。 问你有多少个这样的含n颗珠子的串满足这样的条件。 题解: 首先打个表,发现是An=An-1+An-3。 然后直接上矩阵就好了 1 #inclu
阅读全文
摘要:题目链接:hdu 6029 Graph Theory 题意: 有n个点,每个点按标号排序,现在每个点有两种操作,1表示将这个点和之前全部的点连一条边,2表示没有操作。 现在问你是否有一个边集能构成完美匹配。 完美匹配的定义为:1.每个点有且只有一条边。2.每条边的两端都没有重叠的点。 题解: 首先n
阅读全文
摘要:题目链接:hdu 6025 Coprime Sequence 题意: 给你n个数,让你删掉一个数,使得剩下的数的gcd最大 题解: 先将这一列数的前缀后缀gcd预处理一下。 然后挨着for一下就行了 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(i
阅读全文
摘要:题目链接:hdu 6024 Building Shops 题意: 要在n个点上建若干小卖店,每个点建造小卖店的消费为cost[i],如果这个点没有建造小卖店,那么这个点的费用为和左边最近的点的坐标差。 求总的最小费用。 题解: 首先,第一个点必须建造,然后对于第i个点: dp[i]=min(dp[i
阅读全文
摘要:题目链接:hdu 4609 3-idiots 题意: 给你n条线段。问随机取三个,可以组成三角形的概率。 题解: FFT搞,具体可看kuangbin菊苣的详细题解:传送门 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++
阅读全文
摘要:题目链接:hdu 1402 A * B Problem Plus 题意: 让你求两个大数的乘法。 题解: FFT裸题。 FFT学习推荐:FFT学习笔记 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using
阅读全文
摘要:题目链接:hdu 4578 Transformation 题意: 有n个数一开始全为0,现在有m个操作. 1 a b c :将[a,b]区间的数全部加c 2 a b c :将[a,b]区间的数全部乘c 3 a b c :将[a,b]区间的数全部set成c 4 a b p :询问[a,b]区间的数的p
阅读全文

浙公网安备 33010602011771号