poj 3276 Face The Right Way
来源:互联网 发布:日本dvd播放软件 编辑:程序博客网 时间:2024/06/10 03:10
解题思路,就是对于每个k值,求其最小的移动次数m,然后比较大小,取其最小值。而对于某个特定的K,就是从头到尾检查序列,如果此时是B就对其反转(同时影响后面的k-1个),到最后,扫描到倒数第k+1个完毕,最后只剩下k个,要不都是B全部反转,要不全是F(不用反转),如果出现其它情况,那么反转k个,不能使序列全部变成F。
#include<stdio.h>#define N 5050int T;//序列长度int dir[N];//把字符转化成数字int f[N];int cal(int k){int res,sum,i; memset(f,0,sizeof(f));res=0;sum=0;for(i=0;i+k<=T;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(i=T-k+1;i<T;i++){if((dir[i]+sum)%2!=0){return -1;}if(i-k+1>=0)sum-=f[i-k+1];}return res;}int main(void){char ch;int i,K=1,M,m,k; scanf("%d",&T); M=T; getchar(); for(i=0;i<T;i++) { scanf("%c",&ch); if(ch=='B') dir[i]=1; else dir[i]=0; getchar(); } for(k=1;k<=T;k++) { m=cal(k);if(m>=0&&M>m){M=m;K=k;} } printf("%d %d\n",K,M);}
0 0
- poj 3276 Face The Right Way
- poj 3276 Face The Right Way
- POJ-3276-Face The Right Way
- Poj 3276 Face The Right Way
- poj 3276 Face The Right Way
- POJ 3276 Face The Right Way
- POJ 3276 Face The Right Way
- poj 3276 Face The Right Way
- Face The Right Way POJ 3276
- poj 3276 Face The Right Way
- POJ 3276 Face The Right Way
- POJ 3276 Face The Right Way
- POJ-3276 Face The Right Way
- POJ 3276 Face The Right Way【枚举】
- POJ-3276 Face The Right Way
- POJ 3276 Face The Right Way 模拟
- poj 3276 Face The Right Way@
- poj 3276 Face the right way
- poj1077 Eight —— 正向bfs+康拓
- Localizable.strings文件一点小知识
- zookeeper大集合
- 背景学习模型 —》codebook算法
- 利用Python数据分析:数据规整化(三)
- poj 3276 Face The Right Way
- 戒除浮躁(不知作者但是超级棒)
- gitlab无法拉起代码Deploy Key
- 区间调度问题-贪心选择
- Struts.xml的配置
- 程序员技能正在点亮中ing
- request、response与servlet总结
- log4j的使用
- 面试问题你的优势是什么或者说体现你的价值的地方在哪里