题目名称 | 884. 解密牛语 |
---|---|
输入输出 | cryptcow.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | sywgz 于2012-07-11加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:7, 提交:94, 通过率:7.45% | ||||
史莱克音洛 | 100 | 0.184 s | 0.38 MiB | C++ |
ceerRep | 100 | 0.217 s | 0.38 MiB | C++ |
cstdio | 100 | 0.221 s | 0.34 MiB | C++ |
cstdio | 100 | 0.222 s | 0.38 MiB | C++ |
mildark | 100 | 0.227 s | 0.38 MiB | C++ |
张灵犀不和我一般见识真可怕呢(笑 | 100 | 1.661 s | 1.27 MiB | C++ |
mikumikumi | 100 | 1.720 s | 1.27 MiB | C++ |
张灵犀不和我一般见识真可怕呢(笑 | 90 | 1.872 s | 1.27 MiB | C++ |
jekyll | 90 | 1.976 s | 8.87 MiB | C++ |
张灵犀不和我一般见识真可怕呢(笑 | 90 | 2.101 s | 1.27 MiB | C++ |
关于 解密牛语 的近10条评论(全部评论) | ||||
---|---|---|---|---|
好难的剪枝
| ||||
剪枝方法:
1.将“分隔符中间且在目标串中只出现一次”的串替换为某个单字(从(char)1开始的char值) 2.上一条执行完毕后,找出目标串所有的“相邻的两个字”,在DFS时若有这些组合以外的直接退出 2.前后缀不一样直接退出,第一个分隔符不是C或最后一个分隔符不是W直接退出 3.用BKDRhash,set判重。 | ||||
这也太奇葩了吧……在linux下将string直接赋值成“Begin the Escape execution at the Break of Dawn”中间某个词(好像是execut?)会被自动替换,必须先加上前一半再加上后一半!
cstdio
2013-10-31 13:17
1楼
|
Cryptcowgraphy解密牛语
描述
农民Brown和John的牛们计划协同逃出它们各自的农场。它们设计了一种加密方法用来保护它们的通讯不被他人知道。
如果一头牛有信息要加密,比如"International Olympiad in Informatics",它会随机地把C,O,W三个字母插到到信息中(其中C在O前面,O在W前面),然后它把C与O之间的文字和 O与W之间的文字的位置换过来。这里是两个例子:
International Olympiad in Informatics -> CnOIWternational Olympiad in Informatics
International Olympiad in Informatics -> International Cin InformaticsOOlympiad W
为了使解密更复杂,牛们会在一条消息里多次采用这个加密方法(把上次加密的结果再进行加密)。一天夜里,John的牛们收到了一条经过多次加密的信息。请你写一个程序判断它是不是这条信息经过加密(或没有加密)而得到的:
Begin the Escape execution at the Break of Dawn
格式PROGRAM NAME:cryptcow
INPUT FORMAT:
(file cryptcow.in)
一行,不超过75个字符的加密过的信息。
OUTPUT FORMAT:
(file cryptcow.out)
一行,两个整数. 如果能解密成上面那条逃跑的信息,第一个整数应当为1,否则为0;如果第一个数为1,则第二个数表示此信息被加密的次数,否则第二个数为0。
SAMPLE INPUT
Begin the EscCution at the BreOape execWak of DawnSAMPLE OUTPUT1 1