摘要: 中文题 题意不再赘述对于中间这个“P” 根据dp的无后效性 我们只需考虑前面的就变成了 只需考虑:也就是状压前两行具体与HDOJ的4539类似: 看HDOJ 4539仅仅是共存状态的判断不同 1 //#include 2 #include 3 #include 4 #include 5 #i... 阅读全文
posted @ 2015-03-15 10:34 Empress 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 中文题,题意不再赘述对于“?”这一格,它所能攻击到的(曼哈顿距离为2的) 前方的 即“√”的四个位置那么与此格有关的即它前方两行(即状压这两行)首先预处理每行能满足的:i 和(i<<2)不能同时放然后分别枚举前一行和再前一行的所有状态(每一行的状态至多只有$2^{10}$=1024个) 判断能否共存... 阅读全文
posted @ 2015-03-15 09:56 Empress 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个人,每个人都有3个参数,分别是名字,能做的事(a:statements b:testdate a、b都可以:anything),Rank要求:一个人只能做一个事件,要两个人Rank相差2才能共同做a、b,问最多能做多少个a、b,并输出 做a人的名字 做b人的名字很明显是二分匹配 稳定婚姻... 阅读全文
posted @ 2015-03-08 17:27 Empress 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 遍历string:for(string::iterator it=str.begin(); it!=str.end(); it++ cout<<*it;或者for(inti=0; i<str.length(); i++) cout<<str.at(i);substr:s=s.substr(a... 阅读全文
posted @ 2015-02-12 14:29 Empress 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意很清楚 和linux的语句是一样的pwd输出路径 cd进入 ..回上一层目录此题完全是string的应用String的用法 1 vector s; 2 int main() 3 { 4 int n; 5 scanf("%d", &n); 6 while(n--) ... 阅读全文
posted @ 2015-02-11 11:02 Empress 阅读(134) 评论(0) 推荐(0) 编辑
摘要: http://baike.baidu.com/item/%E5%BA%B7%E6%89%98%E5%B1%95%E5%BC%80?force=1就是百度百科的康拓展开解决魔板问题的代码 打了一遍 调试了一下 长了一下姿势感觉就是和状压一样 展开就是为了标记?一共只有8格 即8!=40320个状态用a... 阅读全文
posted @ 2015-02-09 10:18 Empress 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意:要在m个数里面选n个数, 要求这n个数的差值要最小题意在hint里很清晰了这道题从题意到题目本身都没有什么trick写这道题完全是为了用一下#include 里面的两个小朋友:adjacent_difference 求相邻数的差 &&accumulate 求和p.s.边界要注意,都是左... 阅读全文
posted @ 2015-02-04 20:50 Empress 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题意:给了这样一张图 有两种状态:pushed(*)和unpushed(.) 为方便起见分别成为 开 和 关改变一个点的开关状态 会同时改变与它相邻的点的开关状态 比如改变5,则2、3、4、6、8、9都会改变N(行数)最多为6 即 最多21个点求: 任意改变开关状态后 最多能有几个关着。为什么这么... 阅读全文
posted @ 2015-02-04 19:58 Empress 阅读(172) 评论(2) 推荐(0) 编辑
摘要: 题目链接题意:给n个数a[i], 要求b[i]每位数的和等于a[i], 并且b[i]要严格递增 求最小的b[i]b[0]最小一定是X9999...这样的形式后面的b[i]位数一定大于等于前一个用ans[i][0]记录b[i]的位数也就是 每次从ans[i-0][0]位开始 若不满足b[i]>b[i-... 阅读全文
posted @ 2015-02-02 09:56 Empress 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 对于数独问题 1 const int N=16; //3*3数独 2 const int MaxN=N*N*N+10; // 一格能填9个数 9*9格 3 const int MaxM=N*N*4+10; // 9*9*4=(9+9+9)*9+9*9 (9+9+9)是9行... 阅读全文
posted @ 2015-01-30 10:20 Empress 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 边权线段树 1 const int MAXN=10005; 2 struct Edge 3 { 4 int to, next; 5 }edge[MAXNnum[son[u]]) 41 son[u]=v; 42 } 43 } 4... 阅读全文
posted @ 2015-01-27 20:34 Empress 阅读(158) 评论(0) 推荐(0) 编辑
摘要: KMP是众多字符串问题的基础理解next数组尤为重要next又称前缀数组 是 它所处位置的前一个位置的元素 与 该链 链首开始 几个元素相匹配(即相同)举个实例来说明:next对应的是该位置的前一个元素, 即next[i]对应a[i-1]因为-1头指针的存在 next均对应前一个 很重要next可以... 阅读全文
posted @ 2015-01-27 10:45 Empress 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题意: 一看图就明白了 要求的是1与n端点间的等效电阻重点在于转化成考虑电流根据KCL定理:在任一瞬间流出(流入)该节点的所有电流的代数和恒为零 U = IR 可以令1点的电势为零 那么n点的电势就等于它的等效电阻可以列出方程组 $\sum\limits \frac{U_j-U_i}{R... 阅读全文
posted @ 2015-01-26 13:31 Empress 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题意: *代表0,a-z代表1-26 题目第三行给了一个公式 f (k) = $\sum\limits_{i=0}^{n-1} a_i k^i \pmod{P}$ {f(i)是输入的一串字符串中第i的字母代表的数 $a_i$即$x_i$是要求的 p是输入给的}然后列出len个方程 用Gauss求解就... 阅读全文
posted @ 2015-01-26 10:32 Empress 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n种小工具要加工,每种工具的加工时间为3到9天,给了m条加工记录。 每条记录 X $s_1$ $s_2$ 分别代表 这个工人在$s_1$到$s_2$(前闭后闭)的时间里加工了X件小工具 下一行给出这X件小工具的种类 要求的是每件工具的加工时间 (唯一解:输出各个时间;无解:Inc... 阅读全文
posted @ 2015-01-26 09:37 Empress 阅读(189) 评论(0) 推荐(0) 编辑