随笔分类 - HDU
摘要:题解证明很详细 *更新了代码,原代码TLE- -,num <= p 的时候就要退出。。
阅读全文
摘要:说实话不是很懂按题解怎么写,思路来源于 http://blog.csdn.net/calabash_boy/article/details/76272704?yyue=a21bo.50862.201879 写起来倒是挺短的。
阅读全文
摘要:*修正了一下写错的部分
阅读全文
摘要:* 修正了写错的公式
阅读全文
摘要:建模简析: 按标程的思路,不同的主要是缩点:
阅读全文
摘要:/* HDU 6043 - KazaQ's Socks [ 找规律 ] | 2017 Multi-University Training Contest 1 题意: 一共 n 双袜子编号 1~n,每天早上选取编号最小的一双穿, 当晚上发现只剩一双袜子能穿时,把之前的袜子都洗了, 明天晚上就可以穿了。 问第 k 天穿的是编号为几的袜子 分析: n = 3时模拟每天穿的袜子 :...
阅读全文
摘要:/* HDU 6033 - Add More Zero [ 简单公式 ] | 2017 Multi-University Training Contest 1 题意: 问 2^n-1 有几位 分析: 位数直接 log10 ,减一可忽略 */ #include int t, m; int main() { t = 0; while (~scanf("%d", &m)) ...
阅读全文
摘要:和题解大致相同的思路 限制第k小的大小后,满足这个限制的答案的数量具有单调性,故还可以二分第k小 暴力DFS+剪枝 验证,就是代码不算好写
阅读全文
摘要:/* HDU 6050 - Funny Function [ 公式推导,矩阵快速幂 ] 题意: F(1,1) = F(1, 2) = 1 F(1,i) = F(1, i-1) + 2 * F(1, i-2) , i >= 3 F(i, j) = ∑ F(i-1, j) , k∈[j, j+N-1] 给定 N, M using namespace std; #define LL lo...
阅读全文
摘要:/* HDU 6053 - TrickGCD [ 莫比乌斯函数,筛法分块 ] | 2017 Multi-University Training Contest 2 题意: 给出数列 A[N],问满足: 1 = 2 ; 的 B[N] 数列的个数 分析: 设 gcd(b1,...bn) = k (k >= 2),此时 k 对答案的贡献为 (a1/k)*(a2/k)*(a3/k)*...*...
阅读全文
摘要:/* HDU 6055 - Regular polygon [ 分析,枚举 ] 题意: 给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少 N using namespace std; int n; bool mp[1005][1005]; int ans; int x[505], y[505]; void solve(int x1, int ...
阅读全文
摘要:/* HDU 6045 - Is Derek lying [ 分析 ] 题意: 有N个问题, 每个问题有A,B,C三种答案,答对加一分,答错不加分 给出甲乙两人的答案,给出两人的分数先x, y,问分数是否正确 分析: 统计甲乙相同的答案数目为 a, 不同的答案数目为 b 若甲的分数为x,则y能取到的最小值为 max(0, x-b),即甲答对的题目尽量在b中 y能取到的最大值为 b-ma...
阅读全文
摘要:研究一下建树 : 要么直接 map
阅读全文
摘要:/* HDU 6040 - Hints of sd0061 [ 第k小数查询,剪枝 ] 题意: 给出随机数列 a[N] (N using namespace std; #define LL long long unsigned x, y, z; unsigned rng61() { unsigned t; x ^= x > 5; x ^= x = 0; i--) ...
阅读全文
摘要:/* HDU 6038 - Function [ 置换,构图 ] 题意: 给出两组排列 a[], b[] 问 满足 f(i) = b[f(a[i])] 的 f 的数目 分析: 假设 a[] = {2, 0, 1} 则 f(0) = b[f(2)] f(1) = b[f(0)] f(2) = b[f(1)] 即 f(0) = b[b[b[f(0)]]] f(1) = ...
阅读全文
摘要:/* HDU 6035 - Colorful Tree [ DFS,分块 ] 题意: n个节点的树,每个节点有一种颜色(1~n),一条路径的权值是这条路上不同的颜色的数量,问所有路径(n*(n-1)/2条) 权值之和是多少? 分析: 考虑单种颜色,这种颜色的贡献是 至少经过一次这种颜色的路径数 = 总路径数(n*(n-1)/2) - 没有经过这种颜色的路径数 求没有经过这种颜色的路径数,即...
阅读全文
摘要:/* HDU 6034 - Balala Power! [ 大数进位,贪心 ] 题意: 给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多少? 要求每个数字不能有前导0,即每个字符串首位字符不能赋0 分析: 对于每个字符,将每个字符串按位相加,得到这个字符的一个每位上的数量的数组 将其看成一个大数,满26进位,然后排序,从...
阅读全文
摘要:/* HDU 6047 - Maximum Sequence [ 单调队列 ] 题意: 起初给出n个元素的数列 A[N], B[N] 对于 A[]的第N+K个元素,从B[N]中找出一个元素B[i],在 A[] 中找到一个数字A[p]满足 B[i] using namespace std; #define LL long long const LL MOD = 1e9+7; const in...
阅读全文
摘要:题意: 给出一场篮球赛每次得分后的分差,求最终这场比赛的比分有多少种分析: 因为知道了最终的分差,只需要考虑最终的得分之和有多少种,就能确定比分的种数 只有分差 1-2 或 2-1 能使总分的增量为 1 或 3. 其他情况只有一种增量 若 1-2 或 2-1 有 cnt 种,则最后比分之和有 cnt
阅读全文
摘要:题解: Kruskal 算法的基本思想是,按照边长排序,然后不断将短边加入集合,最终一步如果能成功把 n-1 条边都加入同一个集合,则找到了最小生成树。在维护集合时,可以使用并查集来快速处理。 如果把 Kruskal 的过程按照边长划分成多个阶段,实际上是处理了所有短边的连通性之后继续处理下一个长度
阅读全文

浙公网安备 33010602011771号