zoukankan      html  css  js  c++  java
  • UVA 101

    刘汝佳上的题目。

     1 #include <cstdio>
     2 #include <vector>
     3 #include <iostream>
     4 using namespace std;
     5 vector<int> pile[25];
     6 void find(const int n,int aim, int& b, int& g) {
     7     for(b=0;b<n;b++)
     8         for(g=0;g<pile[b].size();g++) if(pile[b][g] == aim) return;
     9 }
    10 void moveonto(int ab,int ag,int bb,int bg){
    11     //归位a 
    12     for(int i=ag+1;i<pile[ab].size();i++){
    13         int num=pile[ab][i];
    14         pile[num].push_back(num);
    15     }pile[ab].resize(ag+1);
    16     
    17     //归位b 
    18     for(int i=bg+1;i<pile[bb].size();i++){
    19         int num=pile[bb][i];
    20         pile[num].push_back(num);
    21     }pile[bb].resize(bg+1);
    22     
    23     //放置a
    24     pile[bb].push_back( pile[ab][ag] );
    25     
    26     //删去a
    27     pile[ab].resize(ag);
    28 }
    29 void moveover(int ab,int ag,int bb,int bg){
    30     //归位a 
    31     for(int i=ag+1;i<pile[ab].size();i++){
    32         int num=pile[ab][i];
    33         pile[num].push_back(num);
    34     }pile[ab].resize(ag+1);
    35     
    36     //放置a 
    37     pile[bb].push_back( pile[ab][ag] );
    38     
    39     //删去a
    40     pile[ab].resize(ag);
    41 }
    42 void pileonto(int ab,int ag,int bb,int bg){
    43     //归位b 
    44     for(int i=bg+1;i<pile[bb].size();i++){
    45         int num=pile[bb][i];
    46         pile[num].push_back(num);
    47     }pile[bb].resize(bg+1);
    48     
    49     //放置a
    50     for(int i=ag;i<pile[ab].size();i++){
    51         pile[bb].push_back( pile[ab][i] );
    52     }pile[ab].resize(ag);
    53 }
    54 void pileover(int ab,int ag,int bb,int bg){
    55     //放置a
    56     for(int i=ag;i<pile[ab].size();i++){
    57         pile[bb].push_back( pile[ab][i] );
    58     }pile[ab].resize(ag);
    59 }
    60 int main(){
    61     int a,b,n;
    62     scanf("%d",&n);
    63     string s1, s2;
    64     for(int i = 0; i < n; i++) pile[i].push_back(i);
    65     while(cin>>s1 && s1!="quit") {
    66         cin>>a>>s2>>b;
    67         int ab, ag, bb, bg;
    68         find(n,a,ab,ag);find(n,b,bb,bg);
    69         if(ab==bb) continue;
    70         if(s1=="move" && s2=="onto") moveonto(ab,ag,bb,bg);
    71         if(s1=="move" && s2=="over") moveover(ab,ag,bb,bg);
    72         if(s1=="pile" && s2=="onto") pileonto(ab,ag,bb,bg);
    73         if(s1=="pile" && s2=="over") pileover(ab,ag,bb,bg);
    74     }
    75     for(int i=0;i<n;i++){
    76         printf("%d:",i);
    77         for(int j=0;j<pile[i].size();j++) printf(" %d",pile[i][j]);
    78         printf("
    ");
    79     }
    80 }

    刘汝佳书上的做法明显更加精简……不过刚学STL……老老实实的把四种行为做出来比较靠谱……

  • 相关阅读:
    深入理解 Embedding层的本质
    tf.nn.embedding_lookup()的用法
    深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)
    通俗理解tf.name_scope()、tf.variable_scope()
    TENSORFLOW变量作用域(VARIABLE SCOPE)
    Tensorflow函数——tf.variable_scope()
    tf.variable_scope 参数
    何查看Tomcat版本信息
    XCode4中的文本查找和文本替换功能
    引入第三方库错误Undefined symbols for architecture i386: _OBJC_CLASS_$的解决方案
  • 原文地址:https://www.cnblogs.com/dilthey/p/6804186.html
Copyright © 2011-2022 走看看