bzoj3917【Baltic2014】sequence
来源:互联网 发布:大数据 通用 解决方案 编辑:程序博客网 时间:2024/06/06 09:08
3917: [Baltic2014]sequence
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 190 Solved: 90
[Submit][Status][Discuss]
Description
序列A由从N开始的连续K个数按顺序构成,现在将A中的每个数只保留某一个数码,记为序列B,给定K和B,求可能的最小的N
Input
第一行一个数K,第二行K个数B_i
Output
输出一个数N
Sample Input
6
7 8 9 5 1 2
7 8 9 5 1 2
Sample Output
47
HINT
K<=100000,0<=B_i<=9
N是正整数
APIO2016练习赛第二题
对于一个数,会有一些数必须要填,我们用一个二进制数来记录这些限制。
我们考虑从低到高依次处理每一位,对于每一位枚举所有数,然后递推得到下一位的限制信息,这样直到处理到最后。
有一种情况比较特殊,n≤2&&i==9的时候下一位不能填9,否则会停不下来,算是一个搜索的终止状态。
#include<iostream>#include<cstdlib>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#define F(i,j,n) for(int i=j;i<=n;i++)#define D(i,j,n) for(int i=j;i>=n;i--)#define ll long long#define maxn 100005using namespace std;int a[maxn];inline int read(){int x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline ll solve(int *a,int n,int flag){ll ret=1ll<<60;if (n==1){ret=0;F(i,1,9) if (a[1]&(1<<i)){ret=ret*10+i;if (ret==i&&(a[1]&1)) ret*=10;}if (ret==0&&(a[1]&1)) ret=10;return ret;}int b[maxn],cnt=0;F(i,0,9){if (i==9&&!flag) break;int num=0,now=i;cnt=0;bool p=false;F(j,1,n){num|=a[j]&(1023-(1<<now));if ((a[j]&1)&&now==0) p=true;now=(now+1)%10;if (!now||j==n) b[++cnt]=num,num=0;}ll ans=solve(b,cnt,i<9||n>2)*10+i;if (!ans&&p) ans=10;ret=min(ret,ans);}return ret;}int main(){int n=read();F(i,1,n) a[i]=1<<read();printf("%lld\n",solve(a,n,1));}
0 0
- 【Baltic2014】【BZOJ3917】Sequence
- bzoj3917【Baltic2014】sequence
- BZOJ3917 [Baltic2014]sequence
- [Baltic2014]sequence 解题报告
- [暴力] BZOJ 3917 [Baltic2014]sequence
- bzoj 3916: [Baltic2014]friends
- 【BZOJ3916】【Baltic2014】friends 暴力
- 【bzoj3916】 Baltic2014 friends hash
- 【Baltic2014】【BZOJ3916】friends
- [BZOJ3916] [Baltic2014]friends
- 【bzoj3916】【Baltic2014】【friends】【hash】
- BZOJ3916 [Baltic2014]friends
- bzoj3916: [Baltic2014]friends
- bzoj3916 [Baltic2014]friends 暴力
- bzoj3917 && apio2016练习赛T2 题解
- BZOJ 3916 [Baltic2014]friends Hash
- bzoj 3916: [Baltic2014]friends hash
- sequence
- 数据库设计简要规范
- 5.sqlMapConfig配置
- 【C语言】整型溢出和整型提升
- git的学习(各个版本之间的转换)
- hihocoder -#1043 : 完全背包
- bzoj3917【Baltic2014】sequence
- [Android]百度地图之地图标注
- 魔兽改键程序修改
- c++作业5
- C++常见问题系列(一)——基础问题
- bzoj1009【HNOI2008】GT考试
- Centos6升级python26到python27
- 欢迎使用CSDN-markdown编辑器
- 关于maven版本管理 SNAPSHOT RELEASE(version)