码迷,mamicode.com
首页 > 其他好文 > 详细

2019雅礼集训 D10T1 数字重排 [DP]

时间:2019-01-16 21:50:15      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:inpu   标签   amp   技术分享   bit   lse   img   mes   解释   

题目描述:

技术分享图片

样例:

input:
5
5 5 10 17 23

output:
3

数据范围与约定:

技术分享图片

标签:DP


简单DP,不做解释,直接搬题解。

技术分享图片

标程:

#include<bits/stdc++.h>
using namespace std; 
const int N=1e5+5;
int n,a[N],m,s;
bitset<N>f,g;
int main(){
    freopen("sort.in","r",stdin);
    freopen("sort.out","w",stdout); 
    int i,j,k;
    scanf("%d",&n);
    for(i=1;i<=n;++i)scanf("%d",a+i);
    sort(a+1,a+n+1);
    if(a[1]!=a[2])printf("%d\n",a[1]),exit(0);
    m=unique(a+1,a+n+1)-a-1;
    s=a[n];
    f[0]=1;
    for(i=s,j=m;i>=1;i--){
        if(a[j]==i){
            f[i]=1;
            for(k=a[j];k<=s;k+=a[j])g[k]=1;
            --j;
        }else if(((f>>i)&g).any())f[i]=1;
    }
    for(i=a[1]-1;!f[i];--i);
    printf("%d\n",i);
}

2019雅礼集训 D10T1 数字重排 [DP]

标签:inpu   标签   amp   技术分享   bit   lse   img   mes   解释   

原文地址:https://www.cnblogs.com/p-b-p-b/p/10279229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!