[kuangbin带你飞]专题一 简单搜索 M HDU 1495
来源:互联网 发布:机械手臂编程软件 编辑:程序博客网 时间:2024/06/06 09:18
题目地址:https://vjudge.net/contest/65959#problem/M
思路:倒倒倒……写的快死了……所有状态判断是否合法,合法就入队。
AC代码:
#include<bits/stdc++.h>using namespace std;int s,n,m;bool vis[110][110][110];struct pos{int a,b,c,s;};//int bfs(){memset(vis,false,sizeof(vis));pos start;start.a=s;start.b=0;start.c=0;start.s=0;queue<pos>q;q.push(start);vis[s][0][0]=true;while(!q.empty()){pos temp=q.front();q.pop();int a=temp.a,b=temp.b,c=temp.c,s1=temp.s;if((a==b && a==s/2) || (a==c && a==s/2) || (b==c && c==s/2))return s1;if(a>0){//可以倒满bif(a>=n-b && !vis[a-n+b][n][c]){vis[a-n+b][n][c]=true;q.push((pos){a-(n-b),n,c,s1+1});}//无法倒满bif(a<n-b && !vis[0][a+b][c]){vis[0][a+b][c]=true;q.push((pos){0,a+b,c,s1+1});}//可以到满c if(a>=m-c && !vis[a-m+c][b][m]){vis[a-m+c][b][m]=true;q.push((pos){a-(m-c),b,m,s1+1});}//无法倒满cif(a<m-c && !vis[0][b][c+a]){vis[0][b][a+c]=true;q.push((pos){0,b,c+a,s1+1});}}if(b>0){//倒满aif(b>=s-a && !vis[s][b-s+a][c]){q.push((pos){s,b-s+a,c,s1+1});vis[s][b-s+a][c]=true;}//倒不满aif(b<s-a && !vis[a+b][0][c]){q.push((pos){a+b,0,c,s1+1});vis[a+b][0][c]=true;}//可倒满cif(b>=m-c && !vis[a][b-m+c][m]){q.push((pos){a,b-m+c,m,s1+1});vis[a][b-m+c][m]=true;}//倒不满cif(b<m-c && !vis[a][0][b+c]){q.push((pos){a,0,b+c,s1+1});vis[a][0][b+c]=true;}}if(c>0){if(c>=s-a && !vis[s][b][c-s+a]){q.push((pos){s,b,c-s+a,s1+1});vis[s][b][c-s+a]=true;}if(c<s-a && !vis[a+c][b][0]){q.push((pos){a+c,b,0,s1+1});vis[a+c][b][0]=true;}if(c>=n-b && !vis[a][n][c-n+b]){q.push((pos){a,n,c-n+b,s1+1});vis[a][n][c-n+b]=true;}if(c<n-b && !vis[a][b+c][0]){q.push((pos){a,b+c,0,s1+1});vis[a][b+c][0]=true;}}}return -1;}int main(){while(scanf("%d%d%d",&s,&n,&m)){if(s==0 &&n==0 &&m==0)break;if(s%2==0){int temp=bfs();if(temp!=-1)printf("%d\n",temp);elseprintf("NO\n");}else{printf("NO\n");}}}
0 0
- [kuangbin带你飞]专题一 简单搜索M - 非常可乐(HDU 1495)
- [kuangbin带你飞]专题一 简单搜索 M - 非常可乐 HDU 1495
- [kuangbin带你飞]专题一 简单搜索 M HDU 1495
- HDU 1495 & [kuangbin带你飞]专题一 简单搜索 M
- [kuangbin带你飞]专题一 简单搜索 M
- HDU 1495 非常可乐 (kuangbin带你飞 专题一:简单搜索)
- HDU 1495 非常可乐([kuangbin带你飞]专题一 简单搜索)
- [kuangbin带你飞]专题一 简单搜索G - Shuffle'm Up(POJ 3087)
- [kuangbin带你飞]专题一 简单搜索 G - Shuffle'm Up poj 3087
- [kuangbin带你飞]专题一 简单搜索 -G - Shuffle'm Up
- [kuangbin带你飞]专题一 简单搜索 Shuffle'm Up : 水题
- POJ 3087 Shuffle'm Up(kuangbin带你飞 专题一:简单搜索)专题一完结
- [kuangbin神带你飞]专题一 简单搜索
- kuangbin带你飞 专题一 简单搜索 (题解)
- Fire Game [kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 总结
- Kuangbin带你飞专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 D - Fliptile
- 前端开发面试题之综合篇
- hibernate二级缓存解析
- 为什么我不看好婚礼直播市场
- NOIp2009 Hankson的趣味题
- roscd 找不到文件的解决办法
- [kuangbin带你飞]专题一 简单搜索 M HDU 1495
- 托福--红宝书
- 大数据量中的模糊查询优化方案
- spring IOC源码学习(一):资源定位过程,类加载器的使用
- CDH5实践(三)Cloudera Manager 5卸载步骤
- java实现函数重载,求最大值!
- unity3d随手记1
- 右下角的弹出框
- android studio Messages乱码解决方法