uva 11795 - Mega Man's Mission 洛克人的难题 基础集合动态规划

news/2024/11/30 6:34:16/


题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2895



/**==========================================*   This is a solution for ACM/ICPC problem**   @source:uva 11795 - Mega Man's Mission*   @type:  dp*   @author: wust_ysk*   @blog:  http://blog.csdn.net/yskyskyer123*   @email: 2530094312@qq.com*===========================================*/
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#define ysk(x)  (1<<(x))
using namespace std;
typedef long long ll;
const int INF =0x3f3f3f3f;
const int maxn=16   ;
int n;
char s[maxn+5];
int ab[maxn+5];ll dp[2][ ysk(maxn)];
int Can[2][ ysk(maxn)];int ed,kase=0;void getab(int ind)
{scanf("%s",s);int & ans=ab[ind];ans=0;for(int i=0;s[i];i++){if(s[i]=='1') ans|=ysk(i);}}
void pre()
{scanf("%s",s);int can=0;for(int i=0;s[i];i++){if(s[i]=='1')   can|= ysk(i);}for(int i=0;i<n;i++){getab(i);}memset(dp,0,sizeof dp);memset(Can,0,sizeof Can);//我艹memset(ab,0,sizeof ab);dp[0][0]=1;Can[0][0]=can;ed=ysk(n)-1;}void DP()
{int now= 0,nex= 1;int m=n;int i,s;while(m--){for( i=0;i<n;i++){for( s=0;s<=ed;s++)  if(dp[now][s]&& !(s&ysk(i) ) && (Can[now][s]&ysk(i) )  ){int y=s|ysk(i);if(!dp[nex][y])  Can[nex][y]=Can[now][s]|ab[i];dp[nex][y]+=dp[now][s];}}memset(dp[now],0,sizeof dp[now]);now^=1,nex^=1;}printf("Case %d: %lld\n",++kase,dp[now][ed]);}
int main()
{int T;scanf("%d",&T);while(T--){scanf("%d",&n);pre();DP();}return 0;
}



http://www.ppmy.cn/news/573031.html

相关文章

深入浅出学习 TypeScript 语言

课程简介 2012年10月&#xff0c;微软发布了首个公开版本的 TypeScript&#xff0c;2013年6月19日&#xff0c;在经历了一个预览版之后微软发布了正式版 TypeScript 0.9。TypeScript 是 JavaScript 的超集&#xff0c;完全支持 JavaScript 语法&#xff0c;并且在 JavaScript …

你让稻船敬二玩洛克人他也瞎

0.6这个版本号跳得有点心虚&#xff0c;毕竟只加上了游戏结束的判定。 对的现在没法无限玩下去了&#xff0c;我倒是觉得挺可惜的。 我第一关总是过不去是不是难度有点高了。 然后也可以存读档了&#xff0c;其实这条本来不应该说的&#xff0c;毕竟是特别基础的功能了。 最后嘿…

uva 11795洛克人的难题(集合dp)

题意&#xff1a;给定一个初始武器&#xff0c;可以消灭编号1-i的人 每消灭一个机器人&#xff0c;获得其武器。 求总共可以有多少种方法消灭所有的机器人。 思路很简单&#xff0c;集合的动态规划&#xff0c;但要注意的是&#xff0c;由于16&#xff01;会爆int&#xff0…

UVa 11759 洛克人的难题 状压dp

题意&#xff1a; 你最初只有一个武器&#xff0c;你需要按照一定的顺序消灭n个机器人(n<16)。每消灭一个机器人将会得到他的武器。每个武器只能杀死特定的机器人。问可以消灭所有机器人的顺序方案总数。 分析&#xff1a; 基础的集合dp&#xff0c;我是用f[s][num]表示已经…

洛克人4java7723_最新7723游戏版榜单下载_九游

[详情] Building & crafting and Exploration for age girls! Crafting game for age girls and boys. Girls craft! Exploration of the sandbox blocky world! City builder game! Sim house design craft ! Create your own girls world! Design your dream house, girl…

UVA e 11795 洛克人的难题

题目大意 洛克人有一个武器&#xff0c;它需要按照一定的顺序消灭n个其他的机器人&#xff0c;每消灭一个机器人将会得到他的武器&#xff0c;而且某些机器人只能用特定的武器才能将其消灭。统计出可以消灭所有机器人的顺序总数. 分析 由于题目中给定的n值很小可以采用状压Dp&a…

洛克人java下载_JAVA 1.7并发之LinkedTransferQueue原理理解

昨天刚看完BlockingQueue觉得好高级啊&#xff0c;今天扫到1.7就发现了升级版。。。。 就是作者的论文啦&#xff0c;纯英文。。。比较难啃&#xff0c;但是我觉得逻辑上比看代码容易理解&#xff0c;其实代码什么u啊h啊看得很混 LinkedTransferQueue 起源&#xff1a; 我觉得是…

洛克人html5,《洛克人Zero/Zx合集》:跳票冷饭,与预期有差但依旧很香

前言 洛克人系列&#xff0c;卡普空旗下经典IP之一&#xff0c;一直都是以高难度著称&#xff0c;相信很多90后玩家的童年都有游玩洛克人的经历。从18年发布的洛克人11&#xff0c;整个系列发展有30余年&#xff0c;洛克人元组系列、X系列的合集早已上线Steam&#xff0c;Zero/…