Swust OJ 403 集合刪數

2022-05-13 03:51:10 字數 1427 閱讀 7329

time limit(ms): 5000        memory limit(kb): 65535

description

乙個集合有如下元素:1是集合元素;若p是集合的元素,則2 * p +1,4*p+5也是集合的元素,取出此集合中最小的k個元素,按從小到大的順序組合成乙個多位數,現要求從中刪除m個數字上的數字,使得剩下的數字最大,程式設計輸出刪除前和刪除後的多位數字。 

注:不存在所有數被刪除的情況

input

輸入的僅一行,k,m的值,k,m均小於等於30000。

output

輸出為兩行,第一行為刪除前的數字,第二行為刪除後的數字。

sample input

5 4sample output

137915

95(1)利用題中集合資訊得到最小的幾個數字

(2)sstream,int 轉換為string的到待刪除序列

(3)貪心---得到刪除後的最大數值

**如下(略搓):

1 #include 2 #include 

3 #include 4 #include 5 #include //

int 轉 string

6using

namespace

std;

7 typedef long

long

ll;8

intmain(), a, b;

11while (cin >> len >>m)

20else

if (a ==b)

25else29}

30string s = "", ans = "";31

for (i = 1; i <= len; i++)

38 cout << s <

39string::iterator it =s.begin();

40 s.insert(it, '

9');//

有效序列從1開始,防止front越界

41 len =s.size();

42 front = cnt = 0, end = 1;43

while (end <= len && cnt !=m)50}

51while (end <=len)

52 s[++front] = s[end++];

53for (i = 1; i < len - m; i++)

54 cout <

55 cout <

57return0;

58 }

view code

bzoj 2734 集合選數

構造矩陣 1 3 9 27 2 6 18 54 4 12 36 108 每個數是上面的數乘2,左面的數乘3。這樣進行狀壓dp就是相鄰的格仔不能選的方案數。如何判斷乙個二進位制數沒有兩個連續的1?x x 1 0 如果有的數沒有出現過,就以它為左上角元素再構造乙個矩陣。這是怎麼想到的?include i...

HNOI2012 集合選數

這是題目 大概就是讓你找方案數嘛。開始我還以為是一道規律題,然後有愉快地打了乙個暴搜打表。找了十分鐘沒找出來。www.oeis.org。結果.這是表 半點規律沒有。然後想了想dp,想不出線性或帶log的。最後實在做不出來了,於是問了個大犇。大犇說這道題要用矩形。尼瑪沒在逗我。把題目意思轉換一下嘛。就...

BZOJ2734 集合選數

集合論與圖論 這門課程有一道作業題,要求同學們求出的所有滿足以 下條件的子集 若 x 在該子集中,則 2x 和 3x 不能在該子集中。同學們不喜歡這種具有列舉性 質的題目,於是把它變成了以下問題 對於任意乙個正整數 n 100000,如何求出 的滿足上述約束條件的子集的個數 只需輸出對 1,000,...