zoukankan      html  css  js  c++  java
  • POJ-3078.Shuffle'm Up(简单模拟题)

      这道题做了有四个小时吧,今天一整天都处于边玩边学的状态,我很是不喜欢...一开始用了20分钟模拟,过了样例后TLE了,就在考虑是不是判断是否重复判定的数组开大了,结果一直蛙,后面想到了map判重,结果由于还没有将BUG改完,都只是能过样例,最后看了题解,发现由于我菜将一个判断条件的位置写错了位置......

      本次主要就是写教训的,感觉自己可能是已经麻木了就没有去仔细找BUG,知道错了...

      本题大意:给出两个长度为len的字符串s1, s2和一个长度为2 * len的字符串s12,每次先让s2先s1后先后依次取一个字符得到一个长度为2 * len 的字符串s,如果发现得到的字符串s与s12相等就输出交换的次数,否则让s的左半边等于s1右半边等于s2再进行上面的变换,如果无法使的变换后的s == s12则输出-1。

      本题思路:模拟。

      参考代码:

     1 #include <string>
     2 #include <map>
     3 #include <iostream>
     4 using namespace std;
     5 
     6 int len, ans, kase = 0;
     7 bool flag;
     8 
     9 int main () {
    10     int T;
    11     cin >> T;
    12     map <string, bool> vis;
    13     while(T --) {
    14         vis.clear();
    15         string s1, s2, s12;
    16         ans = 0;
    17         cin >> len;
    18         cin >> s1 >> s2 >> s12;
    19         while(true) {
    20             flag = true;
    21             ans ++;
    22             string str;
    23             int i = 0;
    24             for(int j = 0; j < len; j ++) {
    25                 str += s2[i ++];
    26                 str += s1[j];
    27             }
    28             if(vis[str] && str != s12) {
    29                 ans = -1; //记得判重条件要放到最前面
    30                 break;
    31             }
    32             vis[str] = true;
    33             if(str == s12) break;
    34             s1 = str.substr(0, str.size() / 2);
    35             s2 = str.substr(str.size() / 2, str.size());
    36         }
    37         cout << ++ kase << " " << ans << endl;
    38     }
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    关于闹钟的题
    【历史】- UNIX发展史(BSD,GNU,linux)
    使用EF操作Mysql数据库中文变问号的解决方案
    javascript方法的方法名慎用close
    使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
    ADO.NET生成的数据库连接字符串解析
    在WebBrowser控件使用js调用C#方法
    Mysql数据库之auto_increment
    Visual Studio插件Resharper 2016.1 及以上版本激活方法【亲测有效】
    Windows下Mysql5.7开启binlog步骤及注意事项
  • 原文地址:https://www.cnblogs.com/bianjunting/p/10485970.html
Copyright © 2011-2022 走看看