[bzoj1507][Usaco2009 Hol]Transmission Delay 传输谍延时_动态规划
Transmission Delay 传输谍延时 bzoj-1581 Usaco-2009 Hol
题目大意:题目链接。
注释:略。
想法:
动态规划。
首先我们考虑从后往前dp。(最近好多题都是从后往前啊)。
这个题就是如此。
状态:dp[i][j]表示i~n中用了j个1的方案数。
第一问中我们只需要加就行了。
第二问,如果当前位是0的方案比k大,那么我们将这位上添0;
如果当前位是0的方案比k小,我们将这位添1。
最后,附上丑陋的代码... ...
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int N=2010;
const int MOD=1e8;
int n,d,k,cnt0=0,cnt1=0;
int p0[N],p1[N],f[N][N],g[N][N];
char s[N]; int main()
{
scanf("%d%d%d",&n,&d,&k);
scanf("%s",s+1);
for(int i=1;i<=n;i++)
if(s[i]=='0')p0[++cnt0]=i;
else p1[++cnt1]=i;
f[n+1][0]=g[n+1][0]=1;
for(int i=n;i>=1;i--)
for(int j=0;j<=min(n-i+1,cnt0);j++)
{
int k=n-i+1-j;
if(j&&abs(p0[cnt0-j+1]-i)<=d)
{
f[i][j]+=f[i+1][j-1];
if(f[i][j]>MOD)f[i][j]-=MOD;
g[i][j]=min(g[i][j]+g[i+1][j-1],MOD+1);
}
if(k&&abs(p1[cnt1-k+1]-i)<=d)
{
f[i][j]+=f[i+1][j];
if(f[i][j]>MOD) f[i][j]-=MOD;
g[i][j]=min(g[i][j]+g[i+1][j],MOD+1);
}
}
printf("%d\n",f[1][cnt0]);
int s0=cnt0,s1=cnt1;
for(int i=2;i<=n;i++)
{
if(s0&&abs(p0[cnt0-s0+1]-i+1)<=d)
{
if(g[i][s0-1]>=k)s0--,putchar('0');
else s1--,k-=g[i][s0-1],putchar('1');
}
else s1--,putchar('1');
}
if(s0) putchar('0'); else putchar('1');
return 0;
}
小结:好题!
[bzoj1507][Usaco2009 Hol]Transmission Delay 传输谍延时_动态规划的更多相关文章
- [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...
- 红茶一杯话Binder (传输机制篇_下)
红茶一杯话Binder (传输机制篇_下) 侯 亮 1 事务的传递和处理 从IPCThreadState的角度看,它的transact()函数是通过向binder驱动发出BC_TRANSACTION语 ...
- 红茶一杯话Binder (传输机制篇_中)
红茶一杯话Binder (传输机制篇_中) 侯 亮 1 谈谈底层IPC机制吧 在上一篇文章的最后,我们说到BpBinder将数据发到了Binder驱动.然而在驱动层,这部分数据又是如何传递到BBind ...
- 红茶一杯话Binder(传输机制篇_上)
红茶一杯话Binder (传输机制篇_上) 侯 亮 1 Binder是如何做到精确打击的? 我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗 ...
- BZOJ1580 : [Usaco2009 Hol]Cattle Bruisers 杀手游戏
以贝茜为参照物,则贝茜固定于原点,每个杀手是一个圆心在某条射线上的圆. 解出每个杀手可以射杀贝茜的时间区间,然后扫描线即可,时间复杂度$O(n\log n)$. #include<cstdio& ...
- [BZOJ1582] [Usaco2009 Hol]Holiday Painting 节日画画(线段树)
传送门 线段树区间修改傻题 #include <cstdio> #include <cstring> #include <iostream> #define N 5 ...
- BZOJ 3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 动态规划
3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=34 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 排队时延(Queuing delay)
网络时延的构成 Network delay including four parts: Processing delay - time routers take to process the pack ...
随机推荐
- LOJ#503. 「LibreOJ β Round」ZQC 的课堂(容斥+FHQTreap)
题面 传送门 题解 首先\(x\)和\(y\)两维互相独立,可以分开考虑,我们以\(x\)为例 我们把\(x\)做个前缀和,那么就是问有多少\(i\)满足\(s_is_{i-1}<0\),其中\ ...
- ACM_递推题目系列之一涂色问题(递推dp)
递推题目系列之一涂色问题 Time Limit: 2000/1000ms (Java/Others) Problem Description: 有排成一行的n个方格,用红(Red).粉(Pink).绿 ...
- Django--知识补充
自定义标签或过滤器 渲染变量的方法(过滤器:修改数据或格式转换) {{ var | add }} {{ var | date:"Y-m" }} {{ var | safe }} 渲 ...
- Python学习日记之忽略删除字符串空白
使用Python自带的函数strip可以剔除字符串开头.结尾.两端的空白 使用场景:用户输入验证 strip : 去除字符串两端的空白 rstrip : 去除字符串末尾(右端)的空白 lstrip : ...
- dedecms手机网站内页上一篇/下一篇的翻页功能
修改文件include/arc.archives.class.php文件. 1.搜索 function GetPreNext($gtype='') 2.将这个函数的所有内容替换为 function G ...
- CSS——改变浏览器滚动条样式
https://www.cnblogs.com/sun-rain/p/5789417.html
- 【译】x86程序员手册23-6.5组合页与段保护
6.5 Combining Page and Segment Protection 组合页与段保护 When paging is enabled, the 80386 first evaluates ...
- ubuntu部署java环境
一.安装java sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracl ...
- Stack frame
http://en.citizendium.org/wiki/Stack_frame In computer science, a stack frame is a memory management ...
- 如何使用crash分析vmcore - 之基础思路case1
如何使用crash分析vmcore - 之基础思路case1 dmesg查看内核日志 [2493382.671020] systemd-shutdown[1]: Sending SIGKILL to ...