随笔分类 -  OJ -- HDU

摘要:【HDU6037】Expectation Division(动态规划,搜索) 题面 "Vjudge" 你有一个数nn1024,为了方便会告诉你n分解之后有m个不同的质因子,并且把这些质因子给你。 你每次可以把n变成一个它的约数,求变成1的期望步数。 题解 首先 阅读全文
posted @ 2019-07-05 22:17 小蒟蒻yyb 阅读(476) 评论(0) 推荐(0) 编辑
摘要:【HDU1693】Eat the Trees(插头dp) 题面 "HDU" "Vjudge" 大概就是网格图上有些点不能走,现在要找到若干条不相交的哈密顿回路使得所有格子都恰好被走过一遍。 题解 "这题" 的弱化版本吧。。。 因为可以任意分配哈密顿回路的数量,因此根本不需要再考虑插头的配对问题了,那 阅读全文
posted @ 2018-12-09 17:56 小蒟蒻yyb 阅读(362) 评论(0) 推荐(0) 编辑
摘要:【HDU5469】Antonidas(点分治,字符串哈希) 题面 "HDU" "Vjudge" 题解 啊哈?什么垃圾一眼点分治+Hash判断,哈哈哈哈哈,让我来码码码。 诶,怎么WA了。改改改改改。 诶,怎么很对啊,去网上蒯一个标程来拍拍拍。 诶,怎么拍不WA啊,让我来人工检测一波啊哈哈哈哈。 感觉 阅读全文
posted @ 2018-09-17 22:30 小蒟蒻yyb 阅读(488) 评论(4) 推荐(0) 编辑
摘要:【HDU4336】Card Collector(Min Max容斥) 题面 "Vjudge" 题解 原来似乎写过一种状压的做法,然后空间复杂度很不优秀。 今天来补一种神奇的方法。 给定集合S,设max{S}S中的最大值,min{S}为集合S中的最小值。 那么我们可以得到 阅读全文
posted @ 2018-08-21 17:03 小蒟蒻yyb 阅读(341) 评论(9) 推荐(0) 编辑
摘要:【HDU3595】GG and MM(博弈论) 题面 "HDU" 一个游戏由多个游戏组成,每次每个操作者必须操作所有可以操作的游戏,操作集合为空者输。 每个游戏由两堆石子组成,每次可以从较多的那一堆中取走较小那堆的数量的倍数个石子。 判断胜负。 题解 EverySG,所以我们只需要分开考虑两堆 阅读全文
posted @ 2018-08-17 19:53 小蒟蒻yyb 阅读(613) 评论(3) 推荐(0) 编辑
摘要:【HDU3032】Nim or not Nim?(博弈论) 题面 "HDU" 题解 MultiSG模板题 阅读全文
posted @ 2018-08-16 21:19 小蒟蒻yyb 阅读(398) 评论(0) 推荐(0) 编辑
摘要:【HDU1848】Fibonacci again and again(博弈论) 题面 "Hdu" 你有三堆石子,每堆石子的个数是n,m,p,你每次可以从一堆石子中取走斐波那契数列中一个元素等数量的石子数,两人轮流取,不能操作者输,判定先后手的胜利。 题解 根据SG定理,三堆石子可以拆开来看, 阅读全文
posted @ 2018-08-16 20:07 小蒟蒻yyb 阅读(501) 评论(0) 推荐(0) 编辑
摘要:题面 "HDU1527 取石子游戏" "洛谷2252 取石子游戏" 题解 裸的威佐夫博弈 cpp include include using namespace std; const double phi=(sqrt(5)+1)/2; int a,b; int main() { ios::sync_ 阅读全文
posted @ 2018-08-15 19:58 小蒟蒻yyb 阅读(454) 评论(0) 推荐(0) 编辑
摘要:题面 "HDU" 题解 Bash Game模板题 cpp include using namespace std; int T,n,m; int main() { ios::sync_with_stdio(false); cin T; while(T ) { cin n m; if(n%(m+ 阅读全文
posted @ 2018-08-15 19:44 小蒟蒻yyb 阅读(367) 评论(0) 推荐(0) 编辑
摘要:【HDU4471】Homework(矩阵快速幂) 题面 "Vjudge" 给定一个数列的前m项,给定一个和前t项相关的递推式。 有q个位置的递推式单独给出,求数列第n项。 题解 大部分的转移还是相同的,所以可以提前构建好矩阵,预处理转移矩阵的2n, 这样子可以在$O(t^2lo 阅读全文
posted @ 2018-07-30 07:35 小蒟蒻yyb 阅读(275) 评论(0) 推荐(0) 编辑
摘要:【HDU4689】Derangement(动态规划) 题面 "Vjudge" 给定一个+组成的字符串,长度为n。 如果第i位是+,那么pii,否则$p_i include define ll long long ll f[22][22]; char ch[22]; int 阅读全文
posted @ 2018-07-29 20:06 小蒟蒻yyb 阅读(281) 评论(0) 推荐(1) 编辑
摘要:【HDU5421】Victor and String(回文树) 题面 "Vjudge" 大意: 你需要支持以下操作: 动态在前端插入一个字符 动态在后端插入一个字符 回答当前本质不同的回文串个数 回答当前回文串个数 题解 回文树前端插入的操作,学一学感觉并不难? 额外维护一下一个前端插入的$last 阅读全文
posted @ 2018-06-21 21:15 小蒟蒻yyb 阅读(897) 评论(0) 推荐(1) 编辑
摘要:【HDU5909】Tree Cutting(FWT) 题面 "vjudge" 题目大意: 给你一棵n个节点的树,每个节点都有一个小于m的权值 定义一棵子树的权值为所有节点的异或和,问权值为0..m1的所有子树的个数 题解 考虑dpf[i][j]表示以i为根节点的子树中, 阅读全文
posted @ 2018-05-21 08:52 小蒟蒻yyb 阅读(1002) 评论(0) 推荐(1) 编辑
摘要:【HDU5730】Shell Necklace(多项式运算,分治FFT) 题面 "Vjudge" 翻译: 有一个长度为n的序列 已知给连续的长度为i的序列装饰的方案数为a[i] 求将n个位置全部装饰的总方案数。 答案mod 313 题解 很明显,是要求: $f[n]=\sum_ 阅读全文
posted @ 2018-04-11 22:36 小蒟蒻yyb 阅读(539) 评论(1) 推荐(2) 编辑
摘要:【HDU5919】SequenceII(主席树) 题面 "Vjudge" 翻译(by ppl) 题解 先考虑一下怎么求区间内有多少个不同的数 方法有两种 第一种: 记录一下每个数上一次出现的位置 每次将这个位置+1 最后求l,r区间内的数的个数 也就是求区间内上一次出现的位置在l左侧的数的个 阅读全文
posted @ 2018-04-02 16:10 小蒟蒻yyb 阅读(815) 评论(0) 推荐(0) 编辑
摘要:【HDU4336】Card Collector (动态规划,数学期望) 题面 "Vjudge" 题解 设f[i]表示状态i到达目标状态的期望 f[i]=(f[j]p[j]+1)/(p[j]) 直接枚举一下即可 cpp include int n; float f[1 阅读全文
posted @ 2018-03-29 20:00 小蒟蒻yyb 阅读(454) 评论(0) 推荐(0) 编辑
摘要:【HDU4652】Dice(数学期望,动态规划) 题面 "Vjudge" 有一个m面骰子 询问,连续出现n个相同的时候停止的期望 连续出现n个不同的时候停止的期望 题解 考虑两种分开询问来算。 第一种: 设f[i]表示已经有连续的i个相同时,到达目标状态的期望。 $$f[i]=\ 阅读全文
posted @ 2018-03-29 11:57 小蒟蒻yyb 阅读(687) 评论(5) 推荐(3) 编辑
摘要:【HDU4622】Reincarnation(后缀自动机) 题面 "Vjudge" 题意:给定一个串,每次询问l~r组成的子串的不同子串个数 题解 看到字符串的大小很小 而询问数太多 所以我们预处理任意的答案 枚举左端点,依次向右加入新节点 直接统计答案即可 cpp include include 阅读全文
posted @ 2018-02-13 12:50 小蒟蒻yyb 阅读(541) 评论(1) 推荐(0) 编辑
摘要:【HDU1695】GCD(莫比乌斯反演) 题面 题目大意 求$a include include include include include include include include include using namespace std; define MAX 101000 inline 阅读全文
posted @ 2017-12-02 15:26 小蒟蒻yyb 阅读(635) 评论(3) 推荐(0) 编辑
摘要:题面 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可 阅读全文
posted @ 2017-08-14 20:42 小蒟蒻yyb 阅读(250) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示