1704: [Usaco2007 Mar]Face The Right Way 自动转身机

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 457  Solved: 276
[Submit][Status][Discuss]

Description

   农夫约翰有N(1≤N≤5000)只牛站成一排,有一些很乖的牛朝前站着.但是有些不乖的牛却朝后站着.农夫约翰需要让所有的牛都朝前站着.幸运的是约翰最近买了一个自动转身机.这个神奇的机器能使K(1≤K≤N)只连续的牛转身.  因为约翰从来都不改变K的价值,请帮助他求出K,使旋转次数M达到最小.同时要求出对应的M.

Input

    第1行:整数N.
    第2行到第N+1行:第i+l行表示牛j的朝向,F表示朝前,B表示朝后.

Output

一行两个数,分别是K和M,中间用空格隔开

Sample Input

7
B
B
F
B
F
B
B

Sample Output

3 3

可以将原题转化为:一个长度为n的01串,每次可以将连续k个数字翻转,

问当k等于多少时,将串翻为全0所需翻转次数最少

暴力k的大小,然后贪心判断能否全部转过来。

从左向右每次找到一个没翻转的,就把从它开始连续的k个转过来,如果不够k个,说明无法翻转

#include<stdio.h>
#include<string.h>
int a[5005], f[5005];
int main(void)
{char ch;int n, i, k, sum, rev, ans, temp;while(scanf("%d", &n)!=EOF){for(i=1;i<=n;i++){scanf(" %c", &ch);if(ch=='B')  a[i] = 1;else  a[i] = 0;}ans = n;for(k=1;k<=n;k++){sum = rev = 0;memset(f, 0, sizeof(f));for(i=1;i<=n-k+1;i++){if((a[i]^rev)==1){sum++;rev ^= 1;f[i+k-1] = 1;}rev ^= f[i];}for(;i<=n;i++){if((a[i]^rev)==1)break;rev ^= f[i];}if(i<=n)continue;if(sum<ans)ans = sum, temp = k;}printf("%d %d\n", temp, ans);}return 0;
}

bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机相关推荐

  1. 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心

    题目描述 农夫约翰有N(1≤N≤5000)只牛站成一排,有一些很乖的牛朝前站着.但是有些不乖的牛却朝后站着.农夫约翰需要让所有的牛都朝前站着.幸运的是约翰最近买了一个自动转身机.这个神奇的机器能使K( ...

  2. [BZOJ] 1637: [Usaco2007 Mar]Balanced Lineup

    1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 697  Solved: 463 ...

  3. BZOJ 1639: [Usaco2007 Mar]Monthly Expense 月度开支( 二分答案 )

    直接二分答案然后判断. ----------------------------------------------------------------------------- #include&l ...

  4. bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 821   ...

  5. bzoj 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通(拓扑排序?+DP)

    1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 971  Solved: 37 ...

  6. bzoj 1637: [Usaco2007 Mar]Balanced Lineup

    1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 689  Solved: 456 ...

  7. bzoj 1639: [Usaco2007 Mar]Monthly Expense 月度开支(二分)

    1639: [Usaco2007 Mar]Monthly Expense 月度开支 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1057  Solve ...

  8. bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】

    我是怎么想出来的-- 把种族为0的都变成-1,按位置x排升序之后,s[i]表示种族前缀和,想要取(l,r)的话就要\( s[r]-s[l-1]==0 s[r]==s[l-1] \),用一个map存每个 ...

  9. 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 510   ...

最新文章

  1. Solr-5.3.1安装配置
  2. pppcloud云主机内LINUX用户安全管理2
  3. c语言春考题目,PAT 2017年春考乙级真题(1066. 图像过滤)(C语言)
  4. DataGuard和GoldenGate灾备方案对比
  5. 直播丨 如何从零快速搭建一整套监控体系(日志采集+主机+数据库)
  6. Flex3 CRUD 与Java后台交互 完整Demo
  7. 机器学习与神经网络的学习
  8. Python学习笔记--Python字符串连接方法总结
  9. springboot配置手动提交_Spring Boot 入门教程 | 图文讲解
  10. 「 软件安装 」嵌入式开发Keil5安装教程
  11. Linux开发书籍推荐
  12. linux在当前目录 查找abc文件夹,《find技巧》-“linux命令五分系列”之一
  13. 笔记本电脑频繁自动重启_笔记本电脑频繁自动重启的原因和纠正
  14. 视频录制——SurfaceView + MediaRecorder 实现视频录制功能
  15. PDF文件旋转最好用的方法
  16. 目标检测学习笔记-3D摄像头与 2D摄像头区别
  17. 微信小程序笔记(三)
  18. groupByKey与reduceByKey区别
  19. 快速制作响应式的个人主页案列
  20. 水果店线下营销玩法有哪些,水果店前期营销方案有哪些

热门文章

  1. python 下载文件-Python实现http文件下载
  2. python 代码命令大全-深度学习中python常用命令
  3. Android语音识别开发详解(基于讯飞语音SDK)
  4. python windows 消息通讯_如何使用python與windows中的事件/消息掛鈎
  5. JavaScript创建页面节点
  6. php对象数字属性,PHP获取对象的纯数字属性
  7. 【链表】牛客网:合并两个排序的链表
  8. 【蓝桥杯】题目 1117: K-进制数
  9. bootstrap 悬浮固定_开箱测评|悬浮歌词蓝牙音箱,视听享受!
  10. 猜数游戏控制猜测次数c语言,C语言小游戏之猜数字,三子棋游戏