2019南大计算机本科开放日机试题

1.同NOI OJ 3528 最小新整数

题目描述:

给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。
现在从m位中删除k位(0 例如: n = 9128456, k = 2, 则生成的新整数最小为12456

输入
第一行t, 表示有t组数据;
接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n, k。
输出
t行,每行一个数字,表示从n中删除k位后得到的最小整数。
样例输入
2
9128456 2
1444 3
样例输出
12456
1


我的做法:

使用动态规划,D[i][j]表示前i个数组成j位数的最小数,T[i]表示第i个数

D[i][1] = min(T[1]->T[i])

D[i][j] = min(D[i-1][j-1]*10+T[i],D[i-1][j])

最后只通过了60%的测试用例,其余显示runtime error,考虑可能是大数?(int改为long long)或者数组越界

参见贪心算法:

https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/80211556

 

 

你可能感兴趣的:(算法)