08 2014 档案
摘要:这题 其实我觉得并不是那么容易想到欧拉函数的 但又很容易让你去联想他 因为题目的条件有点感觉适合擦 这句话 好矛盾啊...有一点 很重要 这题 很容易因为背景是gcd的 让你去想 一定要用到gcd函数=-=一开始 我走上了歧途 还好 看了下 数据太大了..10E啊我们都知道 phi( x )求出的是...
阅读全文
摘要:开篇 敬仰下 大师-tarjan 发明的这些算法太流弊了=-=使用这个lca_tarjan之前 可以先去学习下使用tarjan解决scc强连通问题我本来是去做到hdu-4912-发现做不来=-= 去网上搜了下 都说是神马lca的....那就去学下吧 而且很多也将这题当做入门题..lca分离线和在线 ...
阅读全文
摘要:有些人说 归并排序的递归版本实用性差 可读性强非递归版本恰好相反我觉得 也没那么明显差距吧....其实非递归版本也不难理解的假如 我们需要进行排序的数组的长度为 len 每次的子排序数组区间为size那么我们首先将它拆成 len个size为1的小区间 然后2个相邻的进行合并merge排序 这时候 你...
阅读全文
摘要:发现一个小小的 逆序数里真的藏了好多东西啊=-=解决这题 你需要知道一点...对于一串给定的数字 我随便写一串吧..index: 0 1 2 3 4value: 4 8 7 5 6 这时候 总的逆序对数是 3+2=5 假如我们只能进行相邻元素的交换 这最好情况是什么呢?那肯定就是...
阅读全文
摘要:这题 算很新颖的.....以前 做01背包的时候 自己怎么没想到可以去求第K优解呢 就知道傻傻地直接写个dp[vol]直接求出能达到的最优解就是了=-=一开始 我忽略了一点 dp[x] 1-vol 存的都是当前X体积下能存到的最优解... 所以 我要是选择遍历这个数组 来求出第K个解 肯定是不行的因...
阅读全文
摘要:BIT---Binary Index Tree. 树状数组...关于它的入门介绍 网上有很多博客 我这边不具体展开写了 就想提一些..lowbit(x)是真正的这个树状数组的核心 都是靠它来传递的网上 那张经典的图 有必要好好模拟计算一下 一维是二维的基础。。使用的好 它能解决很多线段树可以解决的问...
阅读全文
摘要:.......想了很久 没想出一个比O(n^2)更快的算法..但我知道 肯定是有O(nlogN)的算法在的 可能需要用到一些高效的数据结构去维护吧然后 惊心地3900ms水过以后 看到discuss里面 一个人贴了个自己博客地址 去看了下 的确存在... 但有些麻烦=-= 有兴趣的自己可以去点开来看...
阅读全文
摘要:这应该是最简单的数学了吧...给你一个数N 问有多少种方法可以组成N=A^2+B^2..对于样例1 R(2)=4 分别是 其他的情况 题目hint已经告诉我们了这题 直接上代码吧=-= 1 #include 2 #include 3 using namespace std; 4 5 in...
阅读全文
摘要:缩点 很简单的啊... 就是将原来一个连通块变成一个点..可能你原本是这样的 A->B->C->A 缩点完成后 我们就把{A,B,C}用数字1来表示 如果还有D->E->D 那我们再讲{D,E}用2表示....最后的sum就是代表连通块总的个数然后 一般 缩点完成后 我们现在得到了n个连通块 我们要...
阅读全文
摘要:连通分量: 一个非连通图的 连通分量 是指这个非连通分量的极大连通子图-------连通分量是针对 非连通图 来说的一个非连通图的连通分量具备以下几个要点:连通图&&子图&&极大的极大:--------在这个连通子图中 不能再添加任何其它结点 否则就不连通了还有个连通度的概念 它主要是分 点连通度 ...
阅读全文
摘要:这2天 每天学个新的算法吧...可以的话....tarjan的代码 还是很容易写的 也很容易构图 但总觉得有些细节不那么好理解传送1 传送2怎么说呢 总觉得他定义的 low数组含义是有问题的这是 原作者下的定义定义DFN(u)为节点u搜索的次序编号(时间戳),Low(u)为u或u的子树能够追溯到的最...
阅读全文
摘要:这题 实在太奇怪了....看来 我对背包的理解还不够深刻.... 总有一些没想明白...我和discuss里面一个人都A了 但是初始化的方式不一样 我不知道这样是否重要 .... 有点想法 但很模糊 艹了/./ 1 //二维费用的01背包 2 #include 3 #include 4 #inc...
阅读全文
摘要:发明这个算法的人 太聪明了 想到了顶标这个概念 -.-虽然 图论就是个建图过程 然后就是模板的使用 但是 一定要理解这个算法 模板 真的....我给2个我看资料的链接..传送1传送2这题的话 有一点特殊 就是需要求 相反数 因为问的是 最小值...还有 这题有重边的存在 开始WA在这里-.- 1 ...
阅读全文
摘要:我记得 大概是几个月前吧 那时候就看过 次小生成树了 虽然感觉听上去很简单 就是放条边进去 那条边出来 但实现起来不简单那=-=这次 正好做到这题 是次小生成树的 就又去学了下...---传送要是懒得点击链接 我把核心思想写下来. 一种容易想到的方法是枚举删除最小生成树上的边,再求最小生成树。用kr...
阅读全文
摘要:这题 让我深刻地 感受到了 题如其名 =-= .........一直以来都写spfa 这次 也顺便写了下 dij 代码太长了..但是 要是思路清晰的话 写下去的感觉很爽的...当然 我还是更加喜欢 spfa关于 链式前向星 可以---传送--出产地学习关于 spfa -- 我没找到特别出色的介绍 这...
阅读全文
摘要:我也不知道 为什么这题 那么水=-=有人在discuss说数据弱了....求这棵树上这个结点的深度就可以了可能是数据比较大把 为什么我的运行时间那么长呢 touch me写了2种 一个是慢慢搜上去 一个就直接depth[]数组记录当然也可以depth father数组混合使用 这样就可以加上 路径...
阅读全文
摘要:距离上一篇 又过去2天了=-=我发现 我最近开始忘记写 题目链接了 算了 以后 先写链接 省得忘记 touch me------------这题 就是个01背包 只是多了一些 限制条件 但读题一定要注意啊..我刚开始 没读清 一直WA...当你的金额少于5元时 是不能购买任何东西的 卧槽....我没...
阅读全文
摘要:发现最近 忘记写了 题目链接 我的错 =-=我现在 开始直接随机点一套题目来做 这样 的最大好处就是 你不知道是什么算法来做 这样很好六度分离 名字 真的很好听 =-=但 题目 想到了 就蛮简单的 就是个 最短路 用floyd 这题 最方便 touch me 1 #include 2 using ...
阅读全文
摘要:数学渣掩面走过=-=还好 这题 是高中知识吧... 数列求和的..一开始 我想到了2层for最胸大无脑的方法.. 看到这数据就算了 2 using namespace std; 3 4 int main() 5 { 6 cin.sync_with_stdio(false); 7 ...
阅读全文
摘要:这题 做的时候 肯定自己短路了...一开始 拿到手 思考了下 我就想 暴力做了...我是想到kmp了 但我考虑错了 对于跳出循环那边 想错了 艹....然后 就暴力 tle tle 。。。然后 我去看了下 别人的解题报告 顿悟啊...直接贴别人的AC代码吧 不想写了 心累啊 1 #include ...
阅读全文
摘要:擦 终于做出题了........... 这2天 没心思啊 烦 烦 ...这题 虽然不难 但还是有地方要注意可能会有空格存在 所以不能用cin scanf去读 一定要用getline gets来读取而且 可能会有除了题目中这些 ( ) , +这4个符号以为的字符 所以判断的时候 用!(ch>='0' ...
阅读全文
摘要:这题 题意别搞错就是了 它给你的数据 很容易让你种错觉 是求第N位素数 但其实不是这样的而是第一个数如果给了你一个2 那么后面的4 6 8 10 ......都应该被pass 然后接下去就是3了 再后面的 9 15 21..同样被pass就是说在一个 2~inf的数字串中距离选出的那个数字是 K*I...
阅读全文
摘要:做了这题 绝逼 累啊..mle -- re--tle--wa---ac经过这么5步 终于AC了这题 我觉得可以让你更好地来 理解 拓扑排序的一些细节问题首先 这题 为什么要用到并查集呢? 因为 会有 A = B这种情况的出现 然后可能再来个 B =C A = D....那么我们就需要将它们全部表示成...
阅读全文
摘要:我觉得 这题 是纯粹的 并查集 可以算成 入门题吧问你有几章桌子 就是问你有几个 连通块嘛 一个道理 touch me这题 我采用了下 father[x]开始 初始化为-1 1 #include 2 #include 3 using namespace std; 4 5 const in...
阅读全文
摘要:其实 觉得 这个标题 起得不太恰当...但我又想 并查集 的操作 是形成一颗树的结构 这题的话 是基于图来考虑比较好因为 是中文 很容易理解题意 而且我一般也不喜欢讲题意 就想随便讲下应该注意和考虑的地方 从我的角度来出发这题 一开始我的考虑方向是 给出的这些点会不会形成回路 就是成环 如果出现了 ...
阅读全文
摘要:这题 花了我好久时间啊 卧槽 ....但是 也越来越迷茫了 有点觉得 acm带给了你什么?现在 已经不再向当初在自己OJ那样刷题 来追求ranklist =-=我们应该是获得思维上的提高 那么 刷题 不是感觉回到了 高三时代吗? 只是换了种形式所以 我也不知道了现在 每天 有时间 就尽量能做到1 2...
阅读全文
摘要:头太晕了 喝了太多 ..就想提一点 对于 拓扑排序的这2题 为什么一个是正向 一个是逆向主要是看题目要求 因为拓扑排序的结果总是有很多种存在的一般来说 它会让你输出它指定要求的形式的答案那么 如果是按字典序输出 就是 greater 情况下的优先队列 并且 正向 如果是尽量使小的数字 靠前输出 而...
阅读全文
摘要:一直觉得 指针版的 字典树 各种好 直到这题 出现了MLE之后 才发现 还是有点烦的=-=但其实 解决的方法也蛮简单的 只要写了个deleteTrie函数就好了 1 void deleteTrie( trie* root ) 2 { 3 if( root == NULL ) 4 ...
阅读全文
摘要:啊 .... 这次的CF我正好没去做啊=-= 那晚 电脑突然神经质了 各种网页超慢打开。。。更坑的是 持续了1个多小时 都搞的我想 重装了 .... MD 又可以正常访问了 卧槽*******但 巧的是 那时候 正好快开始CF了 一下子 没心情去做了 touch me今天 去看了下 就...
阅读全文
摘要:擦 这题 绝逼 坑人 + 一波N折。。。。 touch me我一开始 用了最简单 最sb的 一维hash数组 来做 我看时间2000ms最大数才10W 还以为能过的 ...果断tle了然后 就觉得应该用更高效的数据结构来做了我去问下了下porker 他一开始和我提了下 splay 不会啊=-=...
阅读全文
摘要:做不来啊 =-=touch me哪位 做出来 不妨 告诉我下 ..
阅读全文
摘要:假如给你一个二进制 1101101010101 问你转换成10进制是多少 反正 我第一想到的是用2的k次方 这样算其实完全不用 用如下代码 就可-------我们假设以 字符串来接受这个二进制 一般我们也都是这样做的1 for( int i = 0 ; str[i]!='\0' ; i++ )2 {...
阅读全文
摘要:这题 一眼望去 又TM想用map了。。想起自己已经学过 字典树了 这题 需要拆分出给的字符串的每个子串 还是蛮麻烦的然后就是再去匹配查找了其实 这题 我觉得难点是再有没有想到将字符串拆分成子串进行create想到了这点 还有一点 就是你怎么判断重一性 或者说 假如有个字符串aabb那么你可以拆成a...
阅读全文
摘要:这题 自己没做出来啊 擦看了别人的解题报告 才发现自己读错题了 草。。。我理解成( i , j )周围的4个格子不能取 。。。 题目给的图 都没有仔细看那就懒得分析了 直接贴下别人的 自己的思维也被定势了 不能有新的做法了 ---传送---touch me注意将 数组开大点。。。其实 这题就是求 每...
阅读全文
摘要:真爽啊 打完一把绝对carry的亚索 来做这题 一发AC=-=touch me这题 反正数据很大 不用二进制拆分 肯定tle的反正 二进制拆分 很简单的啊 不会的 现在看我代码 学下就好了。。 1 #include 2 #include 3 using namespace std; 4 5 c...
阅读全文
摘要:虽然标题名上挂着 优先队列 我懒得去写遍了 因为感觉没太大意义啊=-=就是将for i 1->n变成了qe.top() qe.pop() qe.empty().........这题 不难 它的另外一题 doing homework难啊 我至今不会 状态压缩DP =学会了的时候 再写那题 t...
阅读全文
摘要:这题 我开始的做法是 记忆化搜索 但是tm地竟然tle了。。。很想不通 因为数据很小啊 就100 虽然方案的总数可能会很大..然后 我就去百度 记忆化搜索 看下是不是我用错方法了 事实证明 我虽然没有用错 但还是 学到了很多=-=、其实 我很早以前 也看过关于 记忆化搜索的一些介绍 但是 并没有太多...
阅读全文
摘要:这2天 做的都是有关矩阵的 =-=....小小矩阵 竟然有这么多 花头...这题 的特点是 We can swap any two columns any times 就是可以任意交换X列与Y列 任意次一开始 我还担心我的方法 会不会tle 看到3000ms就放心了。。。我总觉得 会有更高效的方法 ...
阅读全文
摘要:草噢 先发泄一下 一个写错 TM地 找了我半小时多的错误 擦真SB。。。一把游戏时间。。。先放题目上来 touch me 这题 是上一题的简单版=-= 上一题掌握了 这题 很简单被这个 找错给折磨了 不想多讲了这个stack的写法 难想到 但是容易看懂 不清楚的 留言 给我 =-= 缺人互动...
阅读全文
摘要:这题 是蛮特别的..虽然可以将R F转换为 0 1然后求最大子矩阵和 但是这个矩阵中 不能有0 即这个矩阵的元素都是1即F这题 一开始不会做啊=-= 看了discuss里面的人用了 left 和 right数组 还是一知半解 白痴啊=-=我把我的理解和porker讲了下 他纠正了我的错误... --...
阅读全文
摘要:这题 还好 我A了之后 习惯性地去看了下 discuss 然后发现 基本上所有人的解法都在说 二维费用完全背包。。。还好 看到一个人 是和我一样的用 一维 完全背包 加一个计数的cnt数组去解决的。。。还好 在那边看到了一个人的质疑 并给出了一组数据 果然 一维的不能通过=-=那就只能 去学下 二维...
阅读全文
摘要:Ah...day by day...今天 看到公公建立个新生 程序群 想起了去年夏天 自己刚刚得知是计科的时候 的 一片茫然。。记得 去看了视频学了下C 发现太难了啊 又去学了下java 发现还是java的入门比C简单啊。。。反正 现在快忘光了 =-=我只想和学弟学妹们说: 慢慢来 不用急着问 哪本...
阅读全文
摘要:这2题 可以放一起 1231可以算1003的进化版...这2题 我用的方法一样 O(1)空间复杂度 O(n)时间复杂度 ... 这是我自己的说法 错了告知我=-=其实 1231你要是开一个数组的话 就和1003写的时候差不多了 当然那就最好不要开了 touch me 1st ...
阅读全文
摘要:赤裸裸的字典树...就来熟悉下字典树的 顺便注意下写的时候的各种小细节 touch me 1 #include 2 #include 3 using namespace std; 4 5 const int size = 26; 6 char str[size]; 7 typedef...
阅读全文
摘要:做这题的时候 我完全没想到 字典树 就直接用map来做了 =-=我是有 多不 敏感啊~~然后去 discuss 一看 很多都是说 字典树的问题....字典树 给我感觉 它的各个操作的意思都很清晰明了 直接手写 不那么容易啊。。晚些 时候 试下来写------用map写是真心方便 只要注意下那么\n的...
阅读全文
摘要:每个dp 没个30来分钟 tm的就写不出什么状态转移方程 还是太弱了啊=-= touch me其实用滚动数组 就是看你上一个状态转移到当前状态 与 i 前面多少个有关系 因为这里需要用到 i - 2 i - 1那么其实只要用 i % 3就可以了像上一题 我们只涉及到 i + 1那么只...
阅读全文
摘要:这题的题意 一定要好好理解----touch me当你在pos处 你下一秒能去的地方就是pos-1 pos pos+1这3个地方 而且如果你在 I 秒的时候 去了pos+1 你就不能捡到 I 秒的时候pos 和 pos-1 处掉下来的馅饼清楚了这点 那么样例这个4 就不难得到了这题 我想了好久 一开...
阅读全文