听课笔记--DP--Authentication Failed
Authentication Failed
https://www.codechef.com/problems/AUTHEN/
从一个长为N+K的由小写字母组成的字符串中删去K个字符,
可以得到多少种不同的字符串?
输出答案减1
N<=10000, K<=100
样例输入:
3
2 1
aaa
3 1
abcd
4 2
ababab
样例输出:
0
3
10
方案的最小表示:
abcb:计入答案
abcb:不计入答案
每种方案只在最早出现的位置计入答案
f[i,j]表示前i个字符内去掉了j个字符,且第i个字符被保留,此时的方案数
如果保留第i位,
则上一个被保留的位与i之间不能有和第i位相同的字符
否则就不是最小表示
例:
(假设正在算f[6,3])
## abcadc
f[6,3]=f[5,3]+f[4,2]+f[3,1];
此时在计算保留第六位,前面删去了3个;
所以它可以直接由f[5][3](上一位保留第五位d,即第六位与第五位之间没有删去字符)转移来;
也可以由f[4][2](上一位保留第四位a,中间删去d)转移来;
还可以由f[3][1](上一位保留第三位c,中间删去两个字符a,d)转移来;
那为什么不可以又f[2][0]转移来呢?答案是显然的,此时,我们是按题目要求(每种方案只在最早出现的位置计入答案)从左到右转移来的,当前面在枚举到第三位c时,已经有了abc或bc这一种状态。故:
上一个被保留的位与i之间不能有和第i位相同的字符
否则就不是最小表示
首先,我们要预处理对于每个字符与它相同的字符的位置。
然后在转移时难道要从那里开始一个个遍历吗?
同时通过此图我们发现,我们只需维护斜着的前缀和,这样状态转移可以在O(1)内完成。
听课笔记--DP--Authentication Failed的更多相关文章
- smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')解决办法
raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (535, b'Error: authentica ...
- javaMail使用163邮箱报535 Error: authentication failed
javaMail使用网易163邮箱或者是126或者是网易其他邮箱报535 Error: authentication failed javax.mail.AuthenticationFailedExc ...
- github提交失败并报错java.io.IOException: Authentication failed:
一.概述 我最近在写一个android的项目. 软件:android studio.Android studio VCS integration(插件) Android studio VCS inte ...
- IndexOf("authentication failed") > -1
if (e.Value.Error.Message.IndexOf("authentication failed") > -1) { strFailMessag ...
- (转载)postgresql navicat 客户端连接验证失败解决方法:password authentication failed for user
命令:su - postgres CREATE USER foo WITH PASSWORD 'secret'; ==================== 1.2个配置修改 postgresql.co ...
- pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 的解决办法
转自:http://blog.csdn.net/tingyuanss/article/details/43763899 用pgadmin3 新建服务器出现错误 Peer authentication ...
- MongoDB3.4安装配置以及与Robomongo1.1的连接——解决Authentication Failed导致的不能连接问题
本文环境:win10(64)+MongoDB(3.4.5)+Robomongo(1.1) 目录: MongoDB的安装 MongoDB的配置 Robomongo的安装以及与MongoDB的连接 一些新 ...
- fatal: Authentication failed for “someurl”
一.前言 我们在公司做项目,很多时候会遇到这个问题:Git failed with a fatal error. Authentication failed for ‘ http// xxx..... ...
- cs231n spring 2017 lecture9 CNN Architectures 听课笔记
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
随机推荐
- 关于form与表单提交操作的一切
原文链接:http://caibaojian.com/form.html 你知道,一个表单里面只要有form元素,如果没有给action加一个默认值,为空白的时候,当你刷新页面时,会弹出一个警告框提示 ...
- vue实现滚动条滚到相应高度触发动画的操作
一.vue项目引入animate.css 第一步:在命令行中执行: npm install animate.css --save 第二步:引入及使用: main.js中: import animate ...
- angular 中如何使用自定义组件
1.创建header组件 ng g component components/header header.component.ts import { Component, OnInit } from ...
- delete 删除指针
危险的代码: int* p=new int(1); delete p; delete p; 安全的代码: int* p=new int(1); delete p; p = NULL; ...
- 算法习题---4.4信息解码(UVa213)
一:题目 消息编码方案要求在两个部分中发送一个被编码的消息.第一部分:称为头,包含消息的字符.第二部分包含一个模式 表示信息.你必须写一个程序,可以解码这个消息. (一)题目详细 你的程序的编码方案的 ...
- Qt编写控件属性设计器9-数据库采集
一.前言 数据库作为数据源,在很多组态软件中使用非常多,指定数据库类型,填写好数据库连接信息,指定对应的数据库表和字段,采集间隔,程序按照采集间隔自动采集数据库数据,绑定到界面上的控件赋值显示即可.使 ...
- 123457123456#0#-----com.threeapp.MakerHanBao01----儿童汉堡制作游戏
----com.threeapp.MakerHanBao01----儿童汉堡制作游戏
- css3 animation 点亮灯光效果
<style> .wrap .bulb { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50% ...
- Python3之返回函数
参考:https://www.cnblogs.com/mzc1997/p/7641995.html Python中函数不仅可以作为参数还可以作为结果返回 >>> def pro1(c ...
- 【miscellaneous】视频浓缩摘要简介
视频摘要,就是以自动或者半自动的方式,通过分析视频的结构和内容存在的时空冗余,从原始视频中提取有意义的片段,将它们以某种特点的方式重新组合成紧凑的.能够充分表现视频语义内容的浓缩视频. 一.静态视频摘 ...