首页 > 代码库 > 【NOIP 模拟赛】中值滤波 打表找规律
【NOIP 模拟赛】中值滤波 打表找规律
对于这样看起来不像什么算法也没什么知识点的题,一脸懵逼的话不是手推规律就是打表找规律.........
当然还有一些超出你能力之外的数学题......
#include <cstdio>const int N=500010;int n,ans,A[N];inline int Max(int x,int y){ return x>y?x:y;}int main(){ scanf("%d",&n); int last,now,P=0; for(int i=1;i<=n;i++){ scanf("%d",&now); if(i!=1&&now==last){ int len=i-P-1; ans=Max(ans,((len+1)>>1)-1); if(len&1){ for(int j=P+1;j<i;j++) A[j]=now; }else{ for(int j=P+1;j<=P+(len>>1);j++) A[j]=now^1; for(int j=P+(len>>1)+1;j<i;j++) A[j]=now; } P=i-1; } last=now; } int i=n+1; int len=i-P-1; ans=Max(ans,((len+1)>>1)-1); if(len&1){ for(int j=P+1;j<i;j++) A[j]=now; }else{ for(int j=P+1;j<=P+(len>>1);j++) A[j]=now^1; for(int j=P+(len>>1)+1;j<i;j++) A[j]=now; } printf("%d\n",ans); for(i=1;i<=n;i++) printf("%d ",A[i]); return 0;}
【NOIP 模拟赛】中值滤波 打表找规律
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。