显然DP题...

f[i][0]表示这个点不装路由器,f[i][1]表示装路由器

转移也很简单,在前面一段区间找最小值就好了

但是直接转移是$O(n*k)$的,会T掉

大佬说这个东西有单调性,但是菜鸡我找不到,因为是区间问题,所以线段树强上

区间查询+单点修改

 #include<bits/stdc++.h>
#define int long long
#define inf (0x7f7f7f7f7f7f7f)
using namespace std;
inline int read(){
int ans=,f=;char chr=getchar();
while(!isdigit(chr)){if(chr=='-') f=-;chr=getchar();}
while(isdigit(chr)){ans=(ans<<)+(ans<<)+chr-;chr=getchar();}
return ans*f;
}const int M = 2e5+;
struct Segment_Tree{
int s[M<<];
#define mid (l+r>>1)
#define ls (i<<1)
#define rs (i<<1|1)
inline void Push_Up(int i){s[i]=min(s[ls],s[rs]);}
void Build(int i,int l,int r){
if(l==r)return (void)(s[i]=inf);
Build(ls,l,mid),Build(rs,mid+,r);
Push_Up(i);
}void Update(int i,int l,int r,int pos,int x){
if(l==r)return (void)(s[i]=min(s[i],x));
if(pos<=mid) Update(ls,l,mid,pos,x);
else Update(rs,mid+,r,pos,x);
Push_Up(i);
}int Query(int i,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr)return s[i];
int t1=inf,t2=inf;
if(ql<=mid) t1=Query(ls,l,mid,ql,qr);
if(qr>mid) t2=Query(rs,mid+,r,ql,qr);
return min(t1,t2);
}
}T1,T2;
char s[M];
int n,m,k,f[M][];
signed main(){
n=read(),k=read();
scanf("%s",s+);
T1.Build(,,n),T2.Build(,,n);
memset(f,0x3f,sizeof(f));
T2.Update(,,n,,f[][]=f[][]=);
for(int i=;i<=n+;i++){
f[i][]=T1.Query(,,n,max(i-k,1ll),i-);
if(s[i]=='') f[i][]=T2.Query(,,n,max(1ll,i-k-),i-)+i-;
else f[i][]=min(T1.Query(,,n,max(1ll,i-k-),i-),min(f[i-][],f[i-][]))+i-;
T2.Update(,,n,i,min(f[i][],f[i][]));
if(s[i]=='') T1.Update(,,n,i,f[i][]);
}cout<<min(f[n+][],f[n+][]);
return ;
}

[CF587-F]WI-FI的更多相关文章

  1. 【hdu4734】【F(x)】数位dp + 小小的总结一下

    (https://www.pixiv.net/member_illust.php?mode=medium&illust_id=65608478) Problem Description For ...

  2. Mysql_以案例为基准之查询

    查询数据操作

  3. 关于C++对汉字拼音的处理——终结篇

    以前写过了3个博文,都是关于汉字转拼音的,后来发现都不是很“完美”的解决方案,第一个和第二个利用的unicode编码的范围进行确定汉字的拼音,但是难免有遗漏,这个在后面的实践中发现的,后来第三个方法是 ...

  4. ISO7816协议中几个时间

    T=0协议 第一.初始等待时间: 复位应答时,卡片回复的连续两个数据的起始沿之间的时间间隔,这个时间间隔不超过9600etu, 在波 特率为9600是,该时间为1s 第二.GT: 两个连续字符之间的最 ...

  5. bzoj1649 [Usaco2006 Dec]Cow Roller Coaster

    Description The cows are building a roller coaster! They want your help to design as fun a roller co ...

  6. BZOJ 1649: [Usaco2006 Dec]Cow Roller Coaster( dp )

    有点类似背包 , 就是那样子搞... --------------------------------------------------------------------------------- ...

  7. android intent收集转载汇总

    Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);                 ComponentName comp = ...

  8. 01背包dp+并查集 Codeforces Round #383 (Div. 2)

    http://codeforces.com/contest/742/problem/D 题目大意:有n个人,每个人有重量wi和魅力值bi.然后又有m对朋友关系,朋友关系是传递的,如果a和b是朋友,b和 ...

  9. C# 经典入门12章-使用泛型-1

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8sAAAK5CAIAAAAHDiuGAAAgAElEQVR4nOyd9V9Uzfv/v3/J0t0N0p

  10. 使用sed删除拼音的音调

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

随机推荐

  1. OpenSceneGraph | OSG如何存储带纹理osgb格式可以节省空间

      在使用OSG(OpenSceneGraph)存储带纹理osgb格式的过程中,大家会遇到这样一种情况:存储后的osgb文件所占用的大小远大于原始文件的大小,几倍至几十倍.这是为何呢?原因是OSG默认 ...

  2. string的find("")

    ); string strleft; int FindMin = TempRangeData1.find(("_")); ) { strleft = (TempRangeData1 ...

  3. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  4. 4.RabbitMQ Linux安装

    这里使用的Linux是CentOS6.2 将/etc/yum.repo.d/目录下的所有repo文件删除 先下载epel源 # wget -O  /etc/yum.repos.d/epel-erlan ...

  5. 春节跳槽最新Java面试题及答案整理

    今天大部分码农同学已经上班了吧,最近也是跳槽人才流动的高峰期,拿了年终奖,找找更好的机会. 小编也面了几家公司了,回来整理下面经分享给大家做个参考.有很多,暂时先分享20道,后续更多会陆续整理分享出来 ...

  6. 大道浮屠诀---cwRsync同步工具的使用

    目的: 在日常生活中,我们有时候会遇到这样类似的问题 ---需要把一台服务器上的某个重要的文件进行备份(拷贝另外的服务器上) ---需要同步系统上的配置文件到其他系统 利用此cwRsync软件可以解决 ...

  7. xwiki系统 知识库 xwiki

    1.下载tomcat tar  -zxvf  apache-tomcat-8.0.14.tar.gz mv apache-tomcat-8.0.14 tomcat-xwiki-8.0 2.下载xwik ...

  8. 使用Photoshop+960 Grid System模板进行网页设计

    前几天彬Go和大家一起讨论了960 Grid System这个CSS网格系统框架的基本原理和使用方法.今天,暴风彬彬将教大家使用Photoshop结合960 Grid System模板来设计一个真正符 ...

  9. 【转载】C# 开源库大全非常好

    原文地址:http://m.blog.csdn.net/woddle/article/details/37311877 C#开源大全 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMuk ...

  10. PKPM快捷键

    e删除sc删除节点hq绘制直线墙lbz布置梁zz楼层组装bsc板生成bxg板修改门窗洞dbz(洞布置)全房间洞(fd)正交轴网zww拉伸s