贪心算法问题键盘输入一个高精度的正整数你(n

shengye88 1年前 已收到1个回答 举报

myzwb 幼苗

共回答了24个问题采纳率:91.7% 举报

//身为大一菜鸟的我曾错了n次的题
//算法是从头开始扫过去,若当前扫到的数比下一个大,则删,删后回退到上一个未被删的数继续,直到删完指定数或扫到最后一个元素,若删不够指定的数,则此刻数组肯定是递增的,所以只要从后向前删至足够数量便行了
#include
#include
using namespace std;
char str[250];
int a[250];
int b[250];
int main(){
int i, len, k, l, r, c, t, f;
do{
f = 0;
cin >> str;
if (str[0] == '0')
break;
len = strlen(str);
cin >> k;
for (i = 0; i= k)
break;
if (str[r] - str[l] >= 0){
l = a[l];
r = a[r];
}
else{
c++;
if (b[l] != -1){
a[b[l]] = r;
b[r] = b[l];
l = b[l];
}
else{
f = 1;
b[r] = -1;
a[0] = r;
l = a[l];
r = a[r];
}
}
}
t = r - 1;
for (; c

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.012 s. - webmaster@yulucn.com