poj 3276
来源:互联网 发布:lua 编译linux 编辑:程序博客网 时间:2024/06/06 20:37
尺选法、反转。
//212k, 344ms#include <iostream>#include <cstring>using namespace std;const int MAX_N = 5005;int n;int dir[MAX_N], f[MAX_N];int calc(int K) { memset(f, 0, sizeof(f)); int res = 0, sum = 0; for(int i=0; i+K<=n; i++) { if((dir[i] + sum ) % 2 != 0) { res++; f[i] = 1; } sum += f[i]; if(i - K + 1 >= 0) sum -= f[i-K+1]; } for(int i=n-K+1; i<n; i++) { if((dir[i] + sum) % 2 != 0) return -1; if(i-K+1 >= 0) sum -= f[i-K+1]; } return res;}void solve() { int K = 1, M = n; for(int k=1; k<=n; k++) { int m = calc(k); if(m >= 0 && M > m) { M = m; K = k; } } printf("%d %d\n", K, M);}int main() { freopen("in.txt", "r", stdin); scanf("%d", &n); getchar(); char c[2]; for(int i=0; i<n; i++) { scanf("%s", c); if(c[0] == 'B') dir[i] = 1; else if(c[0] == 'F') dir[i] = 0; } solve(); fclose(stdin); return 0;}
0 0
- poj 3276
- poj 3276
- 【POJ】3276
- 开关问题 POJ 3276 POJ 3279 POJ 1222
- POJ 3276 dp
- POJ 3276 反转问题
- POJ 3276 尺取法
- POJ 3276 (水题)
- POJ 1002--487-3276
- poj 3276 开关反转
- ***POJ 3276【反转】
- POJ 3276 尺取
- POJ 1002--487-3276
- POJ
- poj
- POJ
- POJ
- poj
- 主题内容该怎么通过XMind放置在线上?
- 如何理解Java跨平台
- 在fragment里面嵌套fragment
- java实现数据结构之根据先序中序找后序
- red hat环境下安装vim编辑器以及简单配置
- poj 3276
- all about ubuntu tool install
- OpenDayLight 氢版本 RestAPI 调用实例(1)-拓扑的获取(Java)
- [转载]Unity3d三种截屏方法
- HOG特征+SVM训练过程
- Visual Studio 2015update3编译开发linux程序
- c语言----高位舍弃的左旋和右旋操作
- 文件 和 目录操作方法总结
- c#winform开发笔记