UVA - 11795 Mega Man's Mission】的更多相关文章

题目传送门 /* 题意:洛克人有武器可以消灭机器人,还可以从被摧毁的机器人手里得到武器,问消灭全部机器人的顺序总数 状态压缩DP:看到数据只有16,就应该想到状压(并没有).因为是照解题报告写的,代码里加点注释,省的以后忘记了 */ /************************************************ * Author :Running_Time * Created Time :2015-8-8 10:41:28 * File Name :UVA_11759.cpp…
Mega Man is off to save the world again. His objective is to kill the Robots created by Dr. Wily whose motive is to conquer the world. In each mission, he will try to destroy a particular Robot. Initially, Mega Man is equipped with a weapon, called t…
题意:你最初只有一个武器,你需要按照一定的顺序消灭n个机器人(n<=16).每消灭一个机器人将会得到他的武器. 每个武器只能杀死特定的机器人.问可以消灭所有机器人的顺序方案总数. 析:dp[s] 表示已经杀死 s 这个状态的机器人有多少种方案,然后挨着枚举每个机器人,在枚举机器人要保证能够杀死该机器人. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #in…
七 Mega Man's Mission Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Practice UVA 11795 #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; ]; ],weapons[]; int main()…
kill[S]表示消灭机器人的集合为S,剩下的所能杀死的机器人集合. 设d(S)表示杀死机器人集合为S的方法数,答案为d((1<<n) - 1). d(S)可以由d(S')转移过来,其中S'为S中少一个机器人的子集,而且S'的状态下能够杀死缺少的这个机器人. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace s…
把消灭了那些机器人作为状态S,预处理出状态S下可以消灭的机器人,转移统计方案.方案数最多16!,要用64bit保存方案. #include<bits/stdc++.h> using namespace std; , maxs = <<; int a[Mx];//arm typedef long long ll; ll meo[maxs]; int vis[maxs] ,clk; int canAtk[maxs]; int n; ll dp(int S) { if(vis[S] ==…
B Mega Man’s Missions Input Standard Input Output Standard Output Mega Man is off to save the world again. His objective is to kill the Robots created by Dr. Wily whose motive is to conquer the world. In each mission, he will try to destroy a particu…
状压dp #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #include<vector> #include<queue> #define MAXN 20 #define ll long long using namespace std; int n; vector<int> G[MAXN]; ll f[<<MAX…
传送门 Description 你要杀n个怪,每杀掉一个怪那个怪会掉落一种武器,这种武器可以杀死特定的怪.游戏初始你有一把武器,能杀死一些怪物.每次只能杀一只,求有多少种杀怪方法. Input 多组数据,第一行是数组组数T,对于每组数据,有: 第一行是怪物个数n 第二行以0/1串的形式描述初始武器能杀死的怪物 下面n行,第i行以0/1串的形式描述干掉第i只怪以后掉落武器能杀死的怪物 Output 对于每组数据,输出: 杀怪的顺序数,形式为Case X: Y Sample Input Sample…
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<string> #include<vector> #include<stack> #include<queue> #include<set> #…