E. Explosion Exploit time limit per test 2.0 s memory limit per test 256 MB input standard input output standard output In a two player card game, you have nn minions on the board and the opponent has mm minions. Each minion has a health between 11 a…
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1158 题解:这题看起来就像是记忆搜索,由于s很少最多就10位所以可以考虑用状压.然后就简单了. #include <iostream> #include <cstring> #include <cstdio> using namespace std; ]; << ][] , d , dig[] , Po[] , L; int dfs(in…
题目链接 题意 : 每一颗子弹破坏了三个邻近的阳台.(第N个阳台是与第1个相邻)射击后后的生存的怪物都对主角造成伤害- 如此,直到所有的怪物被消灭,求怎样射击才能受到最少伤害. 思路 : 状压,数据不是很大,可以爆一爆,或者DFS下去就行,枚举每一种状态. #include <cstdio> #include <cstring> #include <iostream> #define oo 1 << 28 using namespace std ; ],dp…
http://www.lightoj.com/volume_showproblem.php?problem=1017 题意:给出刷子的宽和最多横扫次数,问被扫除最多的点是多少个. 思路:状态设计DP[i][j]代表刷子下边界为i已用了j次时最大个数.决策为扫和跳过. /** @Date : 2016-12-18 14:25:51 * @FileName: LightOJ 1017 DP?.cpp * @Platform: Windows * @Author : Lweleth (SoundEar…
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1283 题解:这题很显然一看就像是区间dp,但是单纯的区间dp好像解决不了问题可以稍微利用一下区间dp的思想.其实这题就是单纯的往左右放那么很容易会想到用记忆化搜索.设dp[now][l][r],now表示处理到哪一位,l表示左边数最靠右的数是哪个.r表示右边最靠左的数是哪个.那么就是简单的记忆化搜索一下就行了. #include <iostream> #include &l…
题目描述 小$w$偶然间见到了一个$DAG$. 这个$DAG$有$m$层,第一层只有一个源点,最后一层只有一个汇点,剩下的每一层都有$k$个节点. 现在小$w$每次可以取反第$i(1<i<n-1)$层和第$i+1$层之间的连边.也就是把原本从$(i,k_1)$连到$(i+1,k_2)$的边,变成从$(i,k_2)$连到$(i+1,k_1)$. 请问他有多少种取反的方案,把从源点到汇点的路径数变成偶数条? 答案对$998244353$取模. 输入格式 一行两个整数$m,k$. 接下来$m-1$行…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887 题目大意:给定的一个某进制下的排列,问它的全排列有多少个能够整除给定的十进制下的数字k. 思路:记忆化搜索,dp[state][r]表示在某状态下被k除余数为r有多少个. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm>…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25844 思路:首先预处理出点在同一直线上的所有的点集状态(dp[i][j]),然后记忆化搜索. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define inf 1<<…
题意:一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师.每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门. 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老师教而且使得总工资最少. 析:用两个集合来表示状态,s1表示恰好有一个人教的科目,s2表示至少有两个人能教的科目.d(i, s1, s2),表示已经考虑了前 i 个人的最少花费. 这里把所有的人和科目都要从0开始标号,记忆化搜索,对于第 i 个人我们是选还是不选进行求解最小的花费. 剩下的搜索就好.…
题目传送门 /* 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1.答案对错集合为s2时,还要问几次才能区分出来 若和答案(自己拟定)相差小于等于1时,证说明已经能区分了,回溯.否则还要加问题再询问 */ /************************************************ * Author :Running_Time * Created Time :2015-8-13 10:54:…