【题解】四个国王 动态规划 状态压缩 codevs – 1698
1. 题目 传送门= ̄ω ̄= 2. 题解 同 https://www.mina.moe/?p=1320。 改下代码就行了。 代码: #include <bits/stdc++.h> using namespace std; typedef long long LL; LL n,m,t,s 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 同 https://www.mina.moe/?p=1320。 改下代码就行了。 代码: #include <bits/stdc++.h> using namespace std; typedef long long LL; LL n,m,t,s 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 这题一看就可以状压。 可以一个格子一个格子地搜索,记录上一行的状态。 我的做法是先预处理出一行中可能的所有状态(即这一行上的国王都不会互相攻击),再在动归过程中枚举这一行的状态,与上一行比较,这样一整行一整行地搜,理论上会快一点吧。 代码: #include 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 搞两个链表存两个人马的速度 输入完了以后排序 然后对链表 1 进行 n 次滚动 (即把链表 1 的首部元素接到链表 1 末尾),每次移动以后判断当前答案。 最后取答案最大值。 ans 的初始值一开始我设置为 INT_MIN,这样在 luogu 上能 ac,但 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 [2017 年 5 月 16 日] 听说能用 trie 树做。 记忆化非递归式深搜。 设 $book(i)$表示状态 $i$是否达到过(即前 $i$个字符都成功分解)。 枚举子串即可。(在这份代码下面有更优做法!)代码: #include <bit 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 记忆化非递归式深搜。。。 首先说下这题很坑的地方:它没说垃圾按照丢下来的时间排序,所以需要自行排序。。。我被这个坑了很久。。。 设 $book(i,j,k)$表示状态(当前牛的深度为 $i$,生命值为 $j$,现在正在丢第 $k$个垃圾)是否访问过。 如果访 阅读更多…
题目描述 给你一个字符集合, 你从其中找出一些字符串出来. 希望你找出来的这些字符串的最长公共前缀*字符串的总个数最大化. 输入格式 第一行给出数字 N.N 在 [2,1000000] 下面 N 行描述这些字符串, 长度不超过 20000 。保证输入文件不超过 10MB 输出格式 a single 阅读更多…
图解扩展 kmp #include <bits/stdc++.h> #define MX 100005 using namespace std; char s[MX], t[MX]; //To calculate lcp of every prefix of s and string t 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 其实。。。很水的一道题。。。(kb 老早就 AC 了)我们把问题分开。 我们首先不设计方案,只求最小的时间。 设 $f(i,j)$为给你 $i$本书和 $j$个人时的最短时间。 设 $sum[i]$为前 $i$本书的页数之和(即前缀和)。 递推式: $f(i, 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 。。。最基础的动规题调了我一个小时。。。 。。。以后再也不在 11 点以后写题了。。。 设 $f(i,j)$为序列 1 前 $i$个字符和序列 2 前 $j$个字符产生的最大相似度。 第 $i$个字符和第 $j$个字符不一定要对齐。 设 $s(i,j)$表示 阅读更多…
1. 题目 传送门= ̄ω ̄= 2. 题解 真 H2O 枚举 1 到 n 的排列,用 algorithm 自带的 next_permutation 函数即可。 对于一个排列,我们可以在 $n^2$的时间内算出该排列的答案。 具体看代码。 在下面的代码中,$judge(i,j)$返回当平面内只存在圆 $ 阅读更多…