摘要:
考试 T2,是一个脑筋急转弯. 最暴力的贪心是每次先选左,再选右,再选左..... 然而这么做在一些情况下是错的. 但是,我们发现我们的选法一定是 $LLLLRLRLRLRLR$ 或 $RRRRLRLRLRLRLR$ (易证明) 所以直接枚举第一次向左/右走多少次,然后剩余的直接 $O(1)$ 计算 阅读全文
摘要:
比较简单的状压 dp,令 $f[S][i]$ 表示已经经过的点集为 $S$,且最后一个访问的位置为 $i$ 的方案数. 然后随便转移一下就可以了,可以用 $lowbit$ 来优化一下枚举. code: #include <bits/stdc++.h> #define N 21 #define LL 阅读全文
摘要:
code: #include <bits/stdc++.h> #define N 1005 using namespace std; void setIO(string s) { string in=s+".in"; string out=s+".out"; freopen(in.c_str()," 阅读全文
摘要:
题意:给定一个序列,每个位置有 $t_{i},b_{i}$ 两个属性,分别代表该点的权值,和 $i$ 后面只允许不超过 $i+b_{i}$ 在 $i$ 前打饭. 而每一次 $i$ 打饭的代价为 $上一个打饭位置t_{上一个打饭位置}$ ^ $t_{i}$ 求一种分配打饭的先后顺序,使得总代价最小. 阅读全文