[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 ...
随机推荐
- 关于dbms_output包的使用
General Source {ORACLE_HOME}/rdbms/admin/dbmsotpt.sql First Available 7.3.4 Data Types TYPE chararr ...
- 【sqli-labs】 less61 GET -Challenge -Double Query -5 queries allowed -Variation4 (GET型 挑战 双查询 只允许5次查询 变化4)
http://192.168.136.128/sqli-labs-master/Less-61/?id=1' 单引号双括号闭合 192.168.136.128/sqli-labs-master/Les ...
- vue-element-admin使用常见问题
一.vue-element-admin添加快捷导航 这个组件是基于vue-i18n因此,首先在项目中安装i18n npm install --save vue-i18n 然后main.js中引入 im ...
- vue组件---插槽
(1)插槽内容 Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 <slot> 元素作为承载分发内容的出口. 在父级组件里可以 ...
- Python学习之LeetCode刷题之路——简单题【1、7、9】
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
- java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS
解决方案: 启动类上加@EnableAutoConfiguration(exclude = { FreeMarkerAutoConfiguration.class }) 或者在配置文件添加spring ...
- 2019西安多校联训 Day4
T1 大水题!!难度简单,显然的贪心策略即可,but... 思路:首先我们按与i点作战后活下来的士兵排序,然后 若当前剩余兵力足够直接减掉战斗死亡人数,如果不够就加 够再打它,但是!我们在考完试观察测 ...
- cc.Node—场景树
对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...
- 剑指offer---正则表达式匹配
题目:正则表达式匹配 要求:请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所 ...
- Python使用Flask框架,结合Highchart处理csv数据(引申-从文件获取数据--从数据库获取数据)
参考链接:https://www.highcharts.com.cn/docs/process-text-data-file 1.javascript代码 var options = { chart: ...