本文主要是介绍gym 101196E Red Rover(枚举),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们的一个较老的火星车已经完成了他的任务,正在等待指示最后一次探索火星表面的任务。调查组已经选择了一条路线
委托你将最终的指令传送给流动站。这条路线
只是一个主要方向的一系列动作:北,南,东,西。这些
可以使用相应字符串N,S,E和W发送指令。但是,
接收到信号会消耗流动站的电源,这已经很危险了。幸好,
流动站的创建者内置了您可以选择定义可以使用的单个“宏”的功能
如果路线有很多重复。更具体地说,要发送一个带有宏的消息,两个字符串是
发送。第一个是字符{N,S,E,W,M},第二个超过{N,S,E,W}。首先
字符串表示对宏(M)的移动和调用序列,而第二个字符串确定
宏扩展到什么。例如:
WNMWMME
EEN
是一个编码
WENEENWEENEENE
请注意,具有宏的版本只需要10个字符,而原始版本则需要13个字符。
给定路由,确定将其发送到流动站所需的最少字符数。
输入
输入由包含由字母N,S,E和W组成的字符串的单行组成
传输到流动站的路由。字符串的最大长度为100。
输入
显示编码路由所需的最少字符数。
样品输入1样品输出1
WNEENWEENEENE 10
样品输入2样品输出2
NSEW 4
ECNA 2016问题E:Red Rover 9
样品输入3样品输出3
EEEEEEEEE 6
int main()
{string S,s,u;cin>>S;int n = S.length();int ans = n;for(int i=0;i<n;i++)for(int j=i+1;j<n;j++){s=S.substr(i,j-i+1);int cnt = 0;for(int k=0;k<n;k++){u=S.substr(k,j-i+1);if(u==s){k+=(j-i);cnt++;}}ans = min(ans,cnt+j-i+1+n-cnt*(j-i+1));}//ans = min(ans,n);cout<<ans<<endl;return 0;
}
这篇关于gym 101196E Red Rover(枚举)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!