SRM588 Div1Medium KeyDungeonDiv1
来源:互联网 发布:vmware 12.5 mac os x 编辑:程序博客网 时间:2024/05/21 06:48
这题简直有毒,这么多奇奇怪怪的数组。。。
但这题确实很水
刚开始很明显的一个思路就是
定义
红色钥匙
但是这样数组显然会炸
于是我们稍微仔细想想就会发现:
对于某一情况,知道白色钥匙数量,另外两种钥匙数量已经确定,
毕竟肯定是用完哪两种钥匙才会来用白色钥匙
我们可以定义
于是很容易就能
代码如下:
#include<bits/stdc++.h>using namespace std;#define M 12int a[M],b[M],c[M],d[M],e[M];struct node{ int x,y;}dp[1<<M][M*M];int main(){ int n,ans=0; scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&a[i]); for(int i=0;i<n;i++)scanf("%d",&b[i]); for(int i=0;i<n;i++)scanf("%d",&c[i]); for(int i=0;i<n;i++)scanf("%d",&d[i]); for(int i=0;i<n;i++)scanf("%d",&e[i]); int A,B,C; scanf("%d %d %d",&A,&B,&C); for(int sum=0;sum<(1<<n);sum++) for(int k=0;k<M*M;k++) dp[sum][k]=(node){-1,-1}; dp[0][C]=(node){A,B}; for(int sum=0;sum<(1<<n);sum++) for(int k=0;k<M*M;k++){ if(dp[sum][k].x==-1&&dp[sum][k].y==-1)continue; int i=dp[sum][k].x,j=dp[sum][k].y; if(i+j+k>ans)ans=i+j+k; for(int p=0;p<n;p++){ if(sum&(1<<p))continue; if(i+k>=a[p]&&j+k>=b[p]&&i+j+k>=a[p]+b[p]) dp[sum|(1<<p)][k-max(a[p]-i,0)-max(b[p]-j,0)+e[p]]=(node){max(0,i-a[p])+c[p],max(0,j-b[p])+d[p]}; } } printf("%d\n",ans); return 0;}
1 1
- SRM588 Div1Medium KeyDungeonDiv1
- SRM588 Div1Medium KeyDungeonDiv1
- SRM588 KeyDungeonDiv1
- SRM588 div2
- srm588 div1
- topcoder SRM588 DV2 1000
- topcoder SRM588 DIV1 解题报告
- SRM548 Div1Medium KingdomAndDice
- SRM551 Div1Medium ColorfulWolves
- SRM573 Div1Medium Ski Resorts
- SRM574 Div1Medium PolygonTraversal
- SRM579 Div1Medium TravellingPurchasingMan
- SRM589 Div1Medium GearsDiv1
- SRM554 Div1Medium TheBrickTowerMediumDivOne
- SRM548 Div1Medium KingdomAndDice
- SRM551 Div1Medium ColorfulWolves
- SRM593 Div1Medium MayTheBestPetWin
- SRM573 Div1Medium Ski Resorts
- codeforces 474D flowers 普通计数dp
- 跟小刀学习 递归简单实现
- 自动化运维工具Ansible详细部署
- C语言制作简谱播放器
- BZOJ 1441: Min 裴蜀定理
- SRM588 Div1Medium KeyDungeonDiv1
- Apache2.4.x版本局域网访问设置
- PHP多维数组排序之array_multisort
- Linux 创建一个简单的私有CA、发证、吊销证书
- malloc 背后的系统知识
- Oracle变量定义和使用(sqlplus和sql developer使用变量的区别)
- Silver Cow Party(USACO 07 FEB & POJ3268)
- 初学kd-tree
- 图像处理中 什么叫 bit-depth