题目名称 884. 解密牛语
输入输出 cryptcow.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarsywgz 于2012-07-11加入
开放分组 全部用户
提交状态
分类标签
USACO 搜索法 散列
分享题解
通过:7, 提交:94, 通过率:7.45%
Gravatar史莱克音洛 100 0.184 s 0.38 MiB C++
GravatarceerRep 100 0.217 s 0.38 MiB C++
Gravatarcstdio 100 0.221 s 0.34 MiB C++
Gravatarcstdio 100 0.222 s 0.38 MiB C++
Gravatarmildark 100 0.227 s 0.38 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 100 1.661 s 1.27 MiB C++
Gravatarmikumikumi 100 1.720 s 1.27 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 90 1.872 s 1.27 MiB C++
Gravatarjekyll 90 1.976 s 8.87 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 90 2.101 s 1.27 MiB C++
关于 解密牛语 的近10条评论(全部评论)
好难的剪枝
剪枝方法:
1.将“分隔符中间且在目标串中只出现一次”的串替换为某个单字(从(char)1开始的char值)
2.上一条执行完毕后,找出目标串所有的“相邻的两个字”,在DFS时若有这些组合以外的直接退出
2.前后缀不一样直接退出,第一个分隔符不是C或最后一个分隔符不是W直接退出
3.用BKDRhash,set判重。
Gravatarcstdio
2013-10-31 19:40 2楼
这也太奇葩了吧……在linux下将string直接赋值成“Begin the Escape execution at the Break of Dawn”中间某个词(好像是execut?)会被自动替换,必须先加上前一半再加上后一半!
Gravatarcstdio
2013-10-31 13:17 1楼

884. 解密牛语

★★★   输入文件:cryptcow.in   输出文件:cryptcow.out   简单对比
时间限制:1 s   内存限制:128 MiB
USACO/cryptcow(译 by Jeru)

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 Dawn 
SAMPLE OUTPUT  
1 1