zoukankan      html  css  js  c++  java
  • 三个水杯

     1 #include<stdio.h>
     2 #include<queue>
     3 #include<string.h>
     4 using namespace std;
     5 
     6 int c[2][3];
     7 int v[100][100];
     8 typedef struct 
     9 {
    10     int vis[3];
    11     int deep;
    12 }node;
    13 
    14 int fun()
    15 {
    16     int i,j,at;
    17     queue <node> q;
    18     node n,t;
    19     memset(v,0,sizeof(v));
    20     n.vis[0]=c[0][0];
    21     n.vis[1]=n.vis[2]=0;
    22     n.deep=0;
    23     q.push(n);
    24     while(!q.empty())
    25     {
    26         t=q.front();
    27         if(t.vis[0]==c[1][0]&&t.vis[1]==c[1][1]&&t.vis[2]==c[1][2])
    28             return t.deep;
    29         for(i=0;i<3;i++)
    30         {
    31             for(j=0;j<3;j++)
    32             {
    33                 if(i==j) continue;
    34                 at=t.vis[i]<c[0][j]-t.vis[j]?t.vis[i]:c[0][j]-t.vis[j];
    35                 n=t;
    36                 n.vis[i]-=at;
    37                 n.vis[j]+=at;
    38                 n.deep++;
    39                 if(!v[n.vis[1]][n.vis[2]])
    40                 {
    41                     v[n.vis[1]][n.vis[2]]=1;
    42                     q.push(n);
    43                 }
    44             }
    45         }
    46         q.pop();
    47     }
    48     return -1;
    49 }
    50 
    51 int main()
    52 {
    53     int i,t;
    54     scanf("%d",&t);
    55     while(t--)
    56     {
    57         for(i=0;i<3;i++)
    58             scanf("%d",&c[0][i]);
    59         for(i=0;i<3;i++)
    60             scanf("%d",&c[1][i]);
    61         printf("%d\n",fun());
    62     
    63     }
    64     return 0;
    65 }
  • 相关阅读:
    StringBuffer与Stringbuilder
    String与其他类型的转换
    创建多进程的方法
    8.进程
    克隆虚拟机
    初探12306售票算法(二)-java代码实践
    初探12306售票算法(一)- 理论
    手机上mcd程序耗电异常问题相关
    vue版app上下拉加载
    css基础
  • 原文地址:https://www.cnblogs.com/xiaofanke/p/3002573.html
Copyright © 2011-2022 走看看