摘要:
教训很多也收获不少的一道题 首先是DP状态的定义,开始一直不知道怎么下手写,后来觉得这个定义比较合适$dp(i, j)$定义为当前假设第i行全是没拔掉钉子,落在第i行第j个钉子上的钉子的数量(概率分数处理会很麻烦) 然后是数学上的两个问题: 一是概率,想当然的计算从顶向下方法数,结果测试数据一直发现 阅读全文
摘要:
这道题做的让自己很惭愧 一开始想不出来思路,后来只好放弃看题解却发现如此简单。就是把问题拆解为三个部分,king让谁接,在哪里接,重点设置在哪,枚举即可 预处理就是floyd算出所有节点之间距离 可是预处理的时候犯了一个很严重的错误,因为把整个棋盘为了转化为一个图,就把每个格子2维坐标降维改成一字排 阅读全文
摘要:
一道非常非常优秀的题目,学到了很多 首先是进一步加深对于AC自动机理解,这种将自动机看作图的思路实在是太惊艳了。理解0,理解1 此外学习了快速幂的方法,效率显著提升。快速幂 最后,关于高维数组和指针之间的关系,以及typedef具体用法进一步理解,还有指针、函数、数组三种声明的解析 美中不足的是粗心 阅读全文
摘要:
终于来到AC自动机训练,关于AC自动机可以专门开一个post来详述,之后补上 模板题,彻底弄清kuangbin大神的模板后,自己复现了下才发现还是需要很多训练巩固这么精妙的算法 #include <iostream> #include <algorithm> #include <queue> #in 阅读全文
摘要:
数字塔,非常舒服的DP,自底向上的递归搜索填表,非常归整 #include <iostream> #include <algorithm> #include <queue> #include <string> #include <vector> #include <cstdio> #include 阅读全文
摘要:
简单的dp。状态定义好就迎刃而解,令$dp(i, j)$为第$i$种花必须在第j个花瓶,且满足条件的最大aesthetic value。 状态转移方程也很好想,估计了下时间复杂度发现没问题,就着手实现了 #include <iostream> #include <algorithm> #includ 阅读全文
摘要:
最开始DP思路大方向是对的,但是一直苦于状态不知道怎么表示。 略览下题解思路,状态压缩,用是经常用,之前也联系过,实战上还是显出生疏了,对这么常用的技巧竟然一时没想起来 真正写代码的时候也磕磕绊绊debug了很久,一边怕数组越界,一边担心数组开爆,但最后数组还是开小了,RUNTIMEERROR好久 阅读全文
摘要:
这道题的题目叙述着实唬人,感觉太多无关信息了 不过说来惭愧,偷了个小懒去看了下别人怎么翻译的,这部分小痛苦直接跳过了 简单DFS应用 #include <iostream> #include <algorithm> #include <queue> #include <string> #includ 阅读全文
摘要:
八皇后问题的变体,N皇后问题,dfs+回溯即可 真正实现的时候还是遇到了点问题,递归式边界返回条件,一定要等到row已经到N之外才可以,因为这才意味着第N行的点也通过了考验,搜索到第N行并不意味着结束,还有相当关键的临门一脚(感觉对这个问题还有代码是一个双关) #include <iostream> 阅读全文
摘要:
经典的八皇后问题的变种(可以称之为四车问题,手动doge),并利用状态压缩帮助优化,不过开始思路方向错了,或许说不合适更好些,状态记录的是可以防止棋子的地方的状态,但是这样即使状态压缩以后,相关记录数组也是大的不可接受(OJ上一直RUNTIEMERROR) 后来浏览解决状压数组太大问题,概览发现用了 阅读全文