题目传送门

 1 /*
 2     字符串处理:要求解码,然而二维数组开不下,可以直接输出
 3     只要在余数的地方判断一下就行了,vector的效率不高
 4     另外:感觉麻烦的地方应该纸上写写就清楚了
 5 */
 6 #include <cstdio>
 7 #include <iostream>
 8 #include <algorithm>
 9 #include <cstring>
10 #include <string>
11 #include <cmath>
12 using namespace std;
13
14 const int MAXM = 1e6 + 10;
15 const int INF = 0x3f3f3f3f;
16 char s[MAXM];
17 char ans[MAXM];
18
19 int main(void)        //2015百度之星资格赛 1002 列变位法解密
20 {
21     int n, m, k, cas = 0;
22     int T;
23     scanf ("%d", &T);    getchar ();
24     while (T--)
25     {
26         gets (s);
27         scanf ("%d", &m);
28         int len = strlen (s);
29         n = len / m;
30         k = len % m;
31
32         printf ("Case #%d:\n", ++cas);
33         int i = 0, j, l = 0, cnt;
34         while (i < len)
35         {
36             j = i;    cnt = 0;
37             while (j < len)
38             {
39                 printf ("%c", s[j]);    ++l;
40                 if (cnt < k)    {j += (n + 1); ++cnt;}
41                 else    j += n;
42                 if (l == len)    break;
43             }
44             ++i;    if (l == len)    break;
45         }
46
47         puts ("");    getchar ();
48     }
49
50     return 0;
51 }
52
53
54 /*
55 4
56 159263748
57 4
58 Hw doeetrrlloellc adoomm!,my  e w
59 7
60 Toodming is best
61 16
62 sokaisan
63 1
64 */

 1 /*
 2     800多MS
 3 */
 4 #include <cstdio>
 5 #include <iostream>
 6 #include <algorithm>
 7 #include <cstring>
 8 #include <string>
 9 #include <cmath>
10 #include <vector>
11 using namespace std;
12
13 const int MAXM = 1e5 + 10;
14 const int INF = 0x3f3f3f3f;
15 char s[MAXM];
16 vector<char> ss[MAXM];
17
18 int main(void)        //2015百度之星资格赛 1002 列变位法解密
19 {
20     int n, m, k, cas = 0;
21     int T;
22     scanf ("%d", &T);    getchar ();
23     while (T--)
24     {
25         gets (s);
26         //getline (cin, s);
27         scanf ("%d", &m);
28         int len = strlen (s);
29         n = len / m;
30         k = len % m;
31
32         for (int i=0; i<=len; ++i)    ss[i].clear ();
33
34         int l = 0;    int t = k;
35         for (int j=0; j<m; ++j)
36         {
37             for (int i=0; i<n; ++i)
38             {
39                 ss[i].push_back (s[l++]);
40                 //ans[i][j] = s[l++];
41             }
42             if (t > 0)    ss[n].push_back (s[l++]);
43             t--;
44         }
45
46         printf ("Case #%d:\n", ++cas);
47         for (int i=0; i<n; ++i)
48         {
49             for (int j=0; j<m; ++j)
50             {
51                 cout << ss[i][j];
52                 //printf ("%c", ans[i][j]);
53             }
54         }
55         for (int i=0; i<k; ++i)
56             cout << ss[n][i];
57             //printf ("%c", ans[n][i]);
58         puts ("");    getchar ();
59     }
60
61     return 0;
62 }
63
64
65 /*
66 4
67 159263748
68 4
69 Hw doeetrrlloellc adoomm!,my  e w
70 7
71 Toodming is best
72 16
73 sokaisan
74 1
75 */

vector

转载于:https://www.cnblogs.com/Running-Time/p/4544629.html

字符串处理 2015百度之星资格赛 1002 列变位法解密相关推荐

  1. ACM学习历程—BestCoder 2015百度之星资格赛1002 列变位法解密(vector容器)

    Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置 ...

  2. 字符串处理 百度之星资格赛 1002 列变位法解密

    题目传送门 1 /* 2 字符串处理:要求解码,然而二维数组开不下,可以直接输出 3 只要在余数的地方判断一下就行了,vector的效率不高 4 */ 5 #include <cstdio> ...

  3. 2016百度之星 - 测试赛 1002 列变位法解密 (模拟)

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=695&pid=1002 列变位法解密  Accep ...

  4. 2015百度之星资格赛1002

    </pre><p></p><p></p>题目名称:列变位法解密 <p>题目链接:http://bestcoder.hdu.edu ...

  5. 2015年百度之星程序设计大赛 - 资格赛:1002列变位法解密

    列变位法解密  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Others) Problem De ...

  6. HDU 百度之星(测试赛) - 1002 列变位法解密

    Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任 ...

  7. bestcoder 百度之星 1002 列变位法解密

    这题挺水的,主要就是矩阵转换,以及字符串输入,getchar()::::::: 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一 ...

  8. bestcoder 1002 列变位法解密(模拟)

    Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置 ...

  9. 2015百度之星资格赛解题报告

    1001 大搬家  Accepts: 1516  Submissions: 6288  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65 ...

最新文章

  1. tf.placehoder使用
  2. Visual Studio 添加.props属性表文件,以intel.realsense.props为例(附手动配置方法)
  3. plsql 无法解析指定的连接标识符_Java方法加载、解析、存储、调用
  4. Run-time Settings--General--Run Logic
  5. 如何在一小时内更新100篇文章?-Evernote Sync插件介绍
  6. [2013.9.6]说说Win7的Aero效果
  7. 语义分割——语义分割数据集的笔记
  8. iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码
  9. MySQL — 使用命令创建数据库、链接数据库、创建表、查询表数、删除表
  10. js 浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)
  11. 银联支付接口常见错误总结
  12. vue-cli 做前端+ nodejs做服务端的 IIS部署
  13. nas共享服务器怎么同步文件,如何轻松在两个NAS之间文件同步?
  14. 用luac给lua脚本加密
  15. python tab键自动补全怎么用_Python语言之使用tab键自动补全
  16. VirtualBox的vmdk文件压缩
  17. oracle错误1327,问题简述:在oracle linux下安装oracle10g,多个文件报“Permission denied”错误...
  18. QQ邮箱搜索器 邮箱地址批量搜索
  19. 计算机三级数据库考试知识点及题库总结(最全)
  20. (附源码)springboot电子病历管理APP 毕业设计 010350

热门文章

  1. 极客日报:阿里将投入1000亿元助力共同富裕;Siri偷听用户对话被起诉 ;Linux Lite 5.6最终版正式发布
  2. 8、店铺分类 - 后端功能开发 - 微擎小程序模块应用开发
  3. 美国IT业第一季度裁员4.9万人 失业率超过5%
  4. 什么是顶级域名?如何获得顶级域名解析方案
  5. 用html+css实现小米官网的模拟
  6. mysql date 加一年_mysql日期怎么加一年
  7. Java爬虫-WebMagic爬取博客图片(好色龍的網路觀察日誌)
  8. MySQL启动提示The server quit without updating PID file (/[失败]sqld/mysqld.pid).
  9. PayPal Data Scientist 数据科学家面经与工作体验 | 面试笔记
  10. 音视频开发系列(26)三种方式绘制图片-android开发