[codevs4906] 删数问题
来源:互联网 发布:期货套利分析软件 编辑:程序博客网 时间:2024/05/21 07:06
题目链接
题解:经典贪心,不过也可以用dp
#include<stdio.h>#include<string.h>void find(){ char N[200]; int s; int i=0,j; scanf("%s",N); scanf("%d",&s); while(s>0) /*循环减s次*/ { i=0;/*每次删除后重头开始*/ while(i<strlen(N) && N[i]<=N[i+1])i++;/*算法核心*/ for(j=i;j<strlen(N);j++)N[j]=N[j+1];/*移位将删除的覆盖*/ s--; } printf("%s",N);}int main(){ find();}
dp
#include <iostream>#include <cstdio>#include <climits>#include <cstring>#include <string>using namespace std;#define INF UCHAR_MAXint n,k,x;char s[255];string f[255][255];//前i个数字保留j个数字取到的最小值void init(){ scanf("%s%d",s,&k); n=strlen(s);k=n-k; for(int i=1;i<=n;i++) f[0][i]=INF;}void work(){ for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) f[i][j]=min(f[i-1][j],f[i-1][j-1]+s[i-1]); while(x<k-1&&f[n][k][x]=='0')//去除前导0 x++; for(;x<k;x++) cout<<f[n][k][x];}int main(){ init(); work();}
0 0
- [codevs4906] 删数问题
- 删数问题
- 删数问题
- 1298 删数问题
- 删数问题
- 【贪心】删数问题
- 【贪心】删数问题
- 删数问题 队内赛
- 删数问题
- 删数问题
- 8605 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- sdut2072 删数问题
- HDU 1074 Doing Homework(状压DP+记录路径)
- 画贝兹曲线
- [JS]删除链表重复所有结点3
- Ubuntu 环境变量
- win下code无法复制到ubuntu终端
- [codevs4906] 删数问题
- Linux的异步IO机制(转)
- 登录和oauth机制
- 【JAVA多线程】volatile关键字在JAVA多线程编程中的作用
- 同模定理
- Spring+Quartz实现定时任务的简单方法
- android中的Fragment
- fiddler监视远程服务
- 一个简单能用的LoadingDialog