集合删数问题求指教
绝对领域2013/05/18软件综合 IP:重庆
【问题描述】


  给出一个N位数字串,删除任意K位,使剩下的数最大。




【输入】


  第1行:2个整数N和K(1<=K<=N<=500000)
  第2行:N个非全0数字。




【输出】


  第1行:1个可行到的最大的数


下面是我的想法:


由于给定的位数是确定的,删除的位数也是确定的,所以剩下的数一定是一个M位数,只要让最高位最大就能使最后的数最大
我的贪心是每次从数字串中最高位可能的选择情况中选取一个最大的数作为最高位
例如 5 4 6 8 9 中删除要两个数,剩下一个三位数,所以最高位只能从5 4 6 中选择,显然应该选6,所以删除 5 4 然后原问题转化为在 8 9 中删除零个数,所以最后的结果是 6 8 9
假如有些位上的数是相等的比如 4 9 9 9 9 5中删3个数,剩下一个三位数,最高位从4 9 9 中选,将第一个9作为最高位,删除4,再递归求解,保证了被删除的数一定是小于当前选为最高位的数
来自:计算机科学 / 软件综合
3
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
绝对领域 作者
11年1个月前 IP:未同步
526685
下面是我自己写的程序
有一个大数据是在是调不出来。。
#include<stdio.h>
#include<stdlib.h>
int d[500050],f[500050],k=1;
char s[500050];
int N,K;
void deal(int a,int b,int i)//当前需要删除i个数,要在区间[a,b]中选出一个最大的数字作为该位上的数字
{
    int temp;
    if(i==0)//删除完毕,退出
    {
        for(int x=a;x<=b;x++)
            d[k++]=f[x];
        return;
    }
    int n=b-a+1;//区间长度
    int max=0;
    for(int x=0;x<=i;x++)
        if(f[a+x]>max)
        {
            max=f[a+x];
            temp=a+x;//记录当前选取数的位置
        }
    d[k++]=max;
    deal(temp+1,b,i-(temp-a));
}
void change()
{
    for(int i=0;i<N;i++)
        f[i+1]=s[i]-48;
}
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    scanf("%d %d",&N,&K);
    scanf("%s",s);
    change();
    deal(1,N,K);
    for(int i=1;i<=N-K;i++)
        printf("%d",d[i]);
    return 0;
}
attachment icon 1.txt 54.71KB TXT 27次下载

attachment icon in.txt 97.67KB TXT 27次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn
11年1个月前 IP:未同步
526947
冒泡排序,然后删除掉最小的K个……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}