最小新整数(欲張りアルゴリズム)
1248 ワード
説明
10進数の正の整数n(0今mビットの中からkビット(0例えば、n=9128456、k=2であると、生成された新しい整数は最小12456となる.
書式設定
入力フォーマット
第1行tは、tグループのデータがあることを示す.次にt行、各行は1組のテストデータを表し、各組のテストデータは2つの数字n,kを含む.
出力フォーマット
t行は、nからkビットを削除した最小整数を表す行毎に1つの数字である.
サンプル
入力サンプル
出力サンプル
制限
時間制限:1000 ms
メモリ制限:65536 KB
テーマの作り方と削除問題の基本的な意味.
削除数に入る条件if(ans[k]>ans[k+1])に注意し、if(ans[k]>=ans[k+1])と書くことはできません.データの例を挙げると、777888999が5つ削除された後、正解は7899ではなく7778で、自分で体得します.
10進数の正の整数n(0
書式設定
入力フォーマット
第1行tは、tグループのデータがあることを示す.次にt行、各行は1組のテストデータを表し、各組のテストデータは2つの数字n,kを含む.
出力フォーマット
t行は、nからkビットを削除した最小整数を表す行毎に1つの数字である.
サンプル
入力サンプル
9
9126845 2
1444 3
418 1
948576 3
258369147 5
7539518246 5
777888999 5
999888777 5
出力サンプル
12645
1
18
456
2147
18246
15246
7778
8777
制限
時間制限:1000 ms
メモリ制限:65536 KB
テーマの作り方と削除問題の基本的な意味.
削除数に入る条件if(ans[k]>ans[k+1])に注意し、if(ans[k]>=ans[k+1])と書くことはできません.データの例を挙げると、777888999が5つ削除された後、正解は7899ではなく7778で、自分で体得します.
#include
using namespace std;
int main()
{
int t, m, ans[55];
string n;
scanf ("%d", &t);
for (int i=0; i> n;
scanf ("%d", &m);
int l=n.length();
for (int j=0; j ans[k+1]) {
for (int p=k; p