ural1437
2024-09-03 01:45:49
记忆化 模拟倒水过程
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
using namespace std;
#define N 256
#define LL long long
#define INF 0xfffffff
const double eps = 1e-;
const double pi = acos(-1.0);
const double inf = ~0u>>;
bool dp[N][N][N];
bool o[];
int n,m,k;
void dfs(int i,int j,int g)
{
if(dp[i][j][g]) return ;
dp[i][j][g] = ;
o[i] = ,o[j] = ,o[g] = ;
o[i+j] = ,o[j+g] = ,o[i+g] = ;
o[i+j+g] = ;
dfs(n,j,g);dfs(i,m,g);dfs(i,j,k);
int ii = n-i,jj = m-j,gg = k-g;
if(j<=ii) dfs(i+j,,g);
else dfs(n,j-ii,g);
if(g<=ii) dfs(i+g,j,);
else dfs(n,j,g-ii);
if(i<=jj) dfs(,i+j,g);
else dfs(i-jj,m,g);
if(g<=jj) dfs(i,j+g,);
else dfs(i,m,g-jj);
if(i<=gg) dfs(,j,i+g);
else dfs(i-gg,j,k);
if(j<=gg) dfs(i,,j+g);
else dfs(i,j-gg,k);
}
int main()
{
int i,j,g;
while(cin>>n>>m>>k)
{//cout<<",";
memset(dp,,sizeof(dp));
memset(o,,sizeof(o));
dfs(,,); int ans = ;
for(i = ; i <= n+m+k ; i++)
if(o[i]) ans++;
cout<<ans<<endl;
}
return ;
}
最新文章
- PC虚拟现实应用的性能分析与优化:从CPU角度切入
- ClownFish:比手写代码还快的通用数据访问层
- eclipse远程调试Tomcat方法
- JavaScript之Loading进度条
- WDC2106 iOS10新特性及开发者要注意什么
- Java中Scanner类
- css详解笔记
- IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)
- android开发字符串工具类(一)
- Junit单元测试对线程测试没反应
- EXCEL读写NPOI
- wemall app商城源码Android中ViewHolder详细解释
- UML 教程
- postgresql语句
- StringBuufer与StringBulder线程的区别
- TeeChart For VCL/FMX V2017使用教程:第一章-准备开始
- select+异步
- [VUE ERROR] Invalid default value for prop ";slides";: Props with type Object/Array must use a factory function to return the default value
- centos shell运行报语法错误: 未预期的文件结尾
- LINUX中的ACL
热门文章
- 理解Paxos Made Practical
- web 界面设计---js提交表单
- 【iOS系列】- UITableView的使用技巧
- 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层
- perl BEGIN block and END block
- maximize_window fullscreen_window minimize_window
- POJ2594 Treasure Exploratio —— 最小路径覆盖 + 传递闭包
- html5--7-33 阶段练习5
- 【idea】idea快捷键
- I.MX6 MAC Address 导致的系统崩溃