Description

 序列A由从N开始的连续K个数按顺序构成,现在将A中的每个数只保留某一个数码,记为序列B,给定K和B,求可能的最小的N

Input

第一行一个数K,第二行K个数B_i

Output

输出一个数N

当确定了N的个位时,可以确定这连续的K个数的个位,这是得到子问题求N/10的值,B数组(压位表示子问题中哪些位必须出现)对应更新为大约K/10的长度,于是可以递归处理,当K=1时贪心确定所需的最高位

当K=2时若选择个位为9则递归下去K仍为2,要特判剪枝一下

递归到K=1时,若答案有必须存在的前导0则要特判在前面补位

#include<cstdio>
typedef long long i64;
int _(){
int x=,c=getchar();
while(c<)c=getchar();
while(c>)x=x*+c-,c=getchar();
return x;
}
int n,v[],d[];
i64 dfs(int*d0,int n,bool _9,bool _0){
bool dd=;
for(int i=;i<n;++i)if(d0[i]){dd=;break;}
if(!dd)return _0;
if(n==){
int x=*d0;
if(x==)x=;
i64 v=;
for(int i=;i<;++i)if(x>>i&){
v=i;
x^=<<i;
break;
}
for(int i=;i<;++i)if(x>>i&)v=v*+i;
return v;
}
i64 v0=1ll<<;
int*d1=d0+n;
for(int a=;a<;++a){
if(a==&&!_9)break;
int n1=,x=a,s=;
for(int b=;b<n;++b){
s|=d0[b]&~(<<x);
if(++x==){
x=;
d1[n1++]=s;
s=;
}
}
if(x)d1[n1++]=s;
i64 v1=dfs(d1,n1,a!=||n>,!a&&(_0||(&*d0)))*+a;
if(v1<v0)v0=v1;
}
return v0;
}
int main(){
n=_();
for(int i=;i<n;++i)d[i]=<<(v[i]=_());
printf("%lld",dfs(d,n,,));
return ;
}

bzoj3917: [Baltic2014]sequence的更多相关文章

  1. Baltic2014 sequence

    问题描述 输入格式 输出格式 一个整数R 样例输入 7 9 4 8 20 14 15 18 样例输出 13 数据范围 所求的Z序列为6,7,8,13,14,15,18. R=13 解析&左偏树 ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  3. oracle SEQUENCE 创建, 修改,删除

    oracle创建序列化: CREATE SEQUENCE seq_itv_collection            INCREMENT BY 1  -- 每次加几个              STA ...

  4. Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等

    功能:备份存储过程,视图,函数触发器,Sequence序列号等准备工作:--1.创建文件夹 :'E:/OracleBackUp/ProcBack';--文本存放的路径--2.执行:create or ...

  5. DG gap sequence修复一例

    环境:Oracle 11.2.0.4 DG 故障现象: 客户在备库告警日志中发现GAP sequence提示信息: Mon Nov 21 09:53:29 2016 Media Recovery Wa ...

  6. Permutation Sequence

    The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  7. [LeetCode] Sequence Reconstruction 序列重建

    Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. Th ...

  8. [LeetCode] Binary Tree Longest Consecutive Sequence 二叉树最长连续序列

    Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...

  9. [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列

    Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary ...

随机推荐

  1. Java 父类和子类

    package chapter11; public class GeometricObject1 { private String color="white"; private b ...

  2. htseq-count 的使用

    Given a file with aligned sequencing reads and a list of genomic features, a common task is to count ...

  3. vim 的快捷操作

    1, 假如你在第10行,你知道有一个错误在第100行.只需要: 90 ↓ 就会到达100行了 2,

  4. iis 管理员执行 aspnet_iis.exe

    如果我们在注册iis的时候,出现上图的问题,我们需要在桌面上新建一个快捷方式 然后在目标处添上我们的命令. 比如:C:\Windows\Microsoft.NET\Framework\v4.0.303 ...

  5. ZSDR101-跑成品MRP

    *&---------------------------------------------------------------------**& Report ZSDR101*&a ...

  6. U盘

    U盘里的.Trashes是什么文件,要怎么去掉?为什么会出现这个文件? 这是苹果电脑的垃圾文件. 1.在苹果电脑上删除文件后,没有清空回收站,就会留下这些文件. 2.可以重新插入Mac, 然后会发现T ...

  7. php配置伪静态的方法

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法 .检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查看 ...

  8. 用 C# 在 Windows 7 中写注册表想到的

    摘自:http://blog.163.com/dpj_001/blog/static/2742941520110251500753/ 某日做一个项目,需要在注册表中加入键,同时写值,操作系统环境为 W ...

  9. [原创]cocos2d-x研习录-第一阶 背景介绍 之 cocos2d家族史

    Cocos2D是一个2D开源游戏引擎,它最早是由Ricardo Quesada(阿根廷人,社区简称Riq)和他的朋友们用Python开发的,用于开发2D游戏和基于2D图形的任何应用.最早引擎的名字源自 ...

  10. matlab绘图+计算心得

    Matlab 常用于做一些计算实验和绘图,我主要用matlab来绘图件.Matlab 可以用GUI界面来完成绘图,但是既然能用鼠标完成的绘图,那么一定能用代码命令来完成绘图,个人比较喜欢用命令来完成m ...