摘要:
无限背包+容斥? 观察数据范围,可重背包无法通过,假设没有数量限制,利用用无限背包 进行预处理,因为实际硬币数有限,考虑减掉多加的部分 如何减?利用容斥原理,减掉不符合第一枚硬币数的,第二枚,依次类推 加上不符第一枚和第二枚的方案,第一枚和第三枚的方案以此类推,不明 白原理可以去看一下容斥原理 较长 阅读全文
摘要:
p1127(dfs+欧拉通路/回路) 题目链接 1.题目分析 我们需要找出一条包含所有单词,这些单词在词链中出现且仅出现一次,且字典序最小的链。 假设我们对每一个单词连一条从首字母指向尾字母的有向边,假设存在这样的一条链,那么我 们所建成的图中便一定存在欧拉通路或者欧拉回路。 欧拉通路 从一点出发, 阅读全文
摘要:
龟速乘,快速乘法 龟速乘 在遇到求两个>1e9的数相乘mod m且m>1e9的情况下long long 会爆 我们便可以采取龟速乘来避免 ll mul(ll x,ll y,ll mod){ ll ans=0; while(y){ if(y&1) ans+=x,ans%=mod; x+=x; x%=m 阅读全文
摘要:
洛谷 P1377 [TJOI2011]树的序 (单调队列优化建BST 链接 题意分析 本题思路很简单,根据题意,我们利用所给的Bst生成序将Bst建立起来,然后输出该BST的先序遍历即可; 但,如果我们不加优化,建BST的时间复杂度在最劣情况下将达到O(n^2),显然,在1e5的数据下是过不去的,所 阅读全文
摘要:
关于P4302 [SCOI2003]字符串折叠因细节不同所产生的三种做法 本题的思路很简单,区间dp即可,但做题不是为了Ac,故我在此分享3种有细微差别但思路相同的做 法,以便后续遇到同类型题来选择适合自己的方法。 第一种 直接读入字符串,枚举的区间长度不包括起点 #include<iostream 阅读全文
摘要:
Manacher(马拉车算法) 序言 mannacher 是一种在 O(n)时间内求出最长回文串的算法 我们用暴力求解最长回文串长度的时间复杂度为O(n3) 很明显,这个时间复杂度我们接受不了,这时候,manacher也就是俗称的马拉车算法就出世了 算法描述 先考虑一种在O(n2)的时间复杂度内求解 阅读全文
摘要:
博弈论(入门,持续更新) 博弈论 本篇只对尼姆博弈和巴什博弈进行介绍(其余博弈遇到了再加进去) 定义 :博弈论,又称为对策论(Game Theory)、赛局理论等,既是现代数学的一个新分 支,也是运筹学的一个重要学科。博弈论 是二人在平等的对局中各自利用对方的策略变换自己的 对抗策略,达到取胜的目的 阅读全文
摘要:
P1295 [TJOI2011]书架 本题思路比较好想(对我来说不是),但代码细节很多,奈何洛谷的题解只有思路,然后就是 没有丝毫解释的代码,让人看起来很头疼(~~ 尤其是像我这样的蒟蒻~~),所以便打算写一篇带 注释的题解; 题目大意 题目链接 给出一个长度为 n 的序列 h,请将 h 分成若干段 阅读全文
摘要:
洛谷P1712 [NOI2016]区间 noi2016第一题(大概是签到题吧,可我还是不会) 链接在这里 题面可以看链接; 先看题意 这么大的l,r,先来个离散化 很容易,我们可以想到一个结论 假设一个点被覆盖次数大于m 我们将覆盖这个点的区间升序排序; 则所选区间一定是排序后序列中的一个长度为m+ 阅读全文
摘要:
洛谷 P1131 [ZJOI2007]时态同步(dfs) 链接 观察题目 我们发现所给图为一棵树,则终止节点就为叶子节点,我们dfs一遍即可 先看代码吧 #include<iostream> #include<cstring> #include<string> #include<cstdio> #i 阅读全文