zoukankan      html  css  js  c++  java
  • Mother's Milk

    链接

    分析:我们用vis[i][j][k]来记录A,B,C三个状态是否被访问过,同时用s[i]来记录C的所有可能值,当i==0时,如果j合法,则标记s[k]=1,最后统计所有为1的s即可

     1 /*
     2     PROB:milk3
     3     ID:wanghan
     4     LANG:C++
     5 */
     6 #include "iostream"
     7 #include "cstdio"
     8 #include "cstring"
     9 #include "string"
    10 #include "vector"
    11 using namespace std;
    12 const int maxn=25;
    13 int vis[maxn][maxn][maxn];
    14 int s[maxn];
    15 int A,B,C;
    16 void dfs(int i,int j,int k){
    17     if(vis[i][j][k])  return;
    18     if(i>A||j>B||k>C)  return;
    19     if(i==0){
    20         s[k]=1;
    21     }
    22     vis[i][j][k]=1;
    23     if(k>=A-i)   //C->A
    24         dfs(A,j,k-(A-i));
    25     else
    26         dfs(i+k,j,0);
    27     if(k>=B-j)   //C->B
    28         dfs(i,B,k-(B-j));
    29     else
    30         dfs(i,j+k,0);
    31     if(i>=C-k)   //A->C
    32         dfs(i-(C-k),j,C);
    33     else
    34         dfs(0,j,k+i);
    35     if(j>=C-k)  //B->C
    36         dfs(i,j-(C-k),C);
    37     else
    38         dfs(i,0,j+k);
    39     if(i>=B-j)  //A->B
    40         dfs(i-(B-j),B,k);
    41     else
    42         dfs(0,i+j,k);
    43     if(j>=A-i)  //B->A
    44         dfs(A,j-(A-i),k);
    45     else
    46         dfs(i+j,0,k);
    47 }
    48 int main()
    49 {
    50     freopen("milk3.in","r",stdin);
    51     freopen("milk3.out","w",stdout);
    52     cin>>A>>B>>C;
    53     memset(vis,0,sizeof(vis));
    54     memset(s,0,sizeof(s));
    55     dfs(0,0,C);
    56     vector<int> h;
    57     for(int i=0;i<=C;i++)
    58         if(s[i])
    59             h.push_back(i);
    60     for(int i=0;i<h.size();i++){
    61         if(i==h.size()-1)
    62             cout<<h[i]<<endl;
    63         else
    64             cout<<h[i]<<" ";
    65     }
    66     return 0;
    67 }
    View Code
  • 相关阅读:
    supervise 用来监控服务,自动启动
    tee -a /var/log/jd.log
    类的构造函数与析构函数的调用顺序
    c++之带默认形参值的函数
    zoj1001-A + B Problem
    zoj1037-Gridland
    cf499A-Watching a movie
    cf478B-Random Teams 【排列组合】
    C++版修真小说
    Python_12-线程编程
  • 原文地址:https://www.cnblogs.com/wolf940509/p/7085712.html
Copyright © 2011-2022 走看看