hdoj 1106 排序 腦洞產物 兩種做法

2021-06-29 03:33:30 字數 1496 閱讀 9683

戳我傳送~

給學弟學妹們小小的說了下優先佇列·· 然後 越來越覺得sort跟過載運算子的優先佇列像  然後就試了下不知道是恰好碰上的 還是 確實就是這樣 有待考證 總之ac啦~~

題目分析:首先讀入一串數字 每個5相當於乙個空格 將這串數字分割成很多很多數字  將分割後的數字排序 按照由小到大的順序輸出

做法分析:因為是一串數字 所以先想到用%s讀取一串···· 然後再對字串進行分割的處理  要注意處理前導5  因為從字串就開始的5是不能分割成任何有效數字的對吧~其次 就是 最後的5 有兩種情況  以5結尾的字串 跟  雖然已經結束輸入了但是末尾沒有5的 最開始沒有考慮這種情況 所以wa了 (真是活該啊我)  後來又參照了disucss的資料   「為什麼不直接在輸入好的字串後面加上乙個5啊」(真蠢)   然後就成功了~  其他就沒有什麼了  恩  下面放**

優先佇列做法:

/*   priority_queue   */

#include

#include

#include

#include

#include

using namespace std;

char str[1010];

struct cmp

};int main(){

// freopen("in.txt","r",stdin);

while (scanf("%s",str)!=eof)

{priority_queue ,cmp> que;

int len=strlen(str);

str[len]='5';

len++;

int i;

int num=0;

int vis=0;

int beg=0;

while(str[beg]=='5')

beg++;

for (i=beg;i

然後是sort

sort  

#include

#include

#include

#include

using namespace std;

char str[1050];

int data[1050];

int main(){

freopen("in.txt","r",stdin);

while (scanf("%s",str)!=eof)

{int len=strlen(str);

str[len]='5';

len++;

int i;

int num=0;

int ld=0;

int beg=0;

while (str[beg]=='5')

beg++;

for (i=beg;i

親測可ac~

所以至於到底是不是恰好碰上的···我還要繼續嘗試 _(:з」∠)_

今天本大爺也有好好守護這個世界的love & peace

杭電1106 排序

輸入一行數字,如果我們把這行數字中的 5 都看成空格,那麼就得到一行用空格分割的若干非負整數 可能有些整數以 0 開頭,這些頭部的 0 應該被忽略掉,除非這個整數就是由若干個 0 組成的,這時這個整數就是0 你的任務是 對這些分割得到的整數,依從小到大的順序排序輸出。輸入包含多組測試用例,每組輸入資...

HDU 1106 排序(排序)

輸入一行數字,如果我們把這行數字中的 5 都看成空格,那麼就得到一行用空格分割的若干非負整數 可能有些整數以 0 開頭,這些頭部的 0 應該被忽略掉,除非這個整數就是由若干個 0 組成的,這時這個整數就是0 你的任務是 對這些分割得到的整數,依從小到大的順序排序輸出。input輸入包含多組測試用例,...

hdu 1106 排序 解題報告

這個題目一開始以為是水題,就想著用來輕鬆輕鬆,誰知道改得我想吐!除了discuss 中的資料外,還加上這兩組,一般就能過了 001568970056 5551235555789 1 include 2 include 3 include 4 using namespace std 56 const ...