日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    歡迎訪問 生活随笔!

    生活随笔

    當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

    编程问答

    hdu 5055(贪心)

    發(fā)布時(shí)間:2025/3/16 编程问答 17 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 hdu 5055(贪心) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

    題意:給你N個(gè)數(shù),每個(gè)數(shù)的取值范圍為[0,9],求這N個(gè)數(shù)組成的最大奇數(shù),且該奇數(shù)不能有前導(dǎo)零。

    解題思路:將偶數(shù)和奇數(shù)分開,然后分別按從小到大排序,將最小的奇數(shù)先拿出來,把剩余的數(shù)從大到小排好,最后再將最小的奇數(shù)放進(jìn)去。

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std;const int maxn = 105; int n,a,oddNum,evenNum; char odd[maxn],even[maxn],res[maxn];bool cmp(int a,int b) {return a > b; }int main() {while(scanf("%d",&n)!=EOF){evenNum = oddNum = 0;for(int i = 1; i <= n; i++){scanf("%d",&a);if(a % 2 == 0)even[evenNum++] = '0' + a;else odd[oddNum++] = '0' + a;}if(oddNum == 0){printf("-1\n");continue;}sort(odd,odd+oddNum,cmp);sort(even,even+evenNum,cmp);int l = 0, r = 0, cnt = 0;while(l < oddNum - 1 && r < evenNum){if(odd[l] > even[r]){res[cnt++] = odd[l];l++;}else{res[cnt++] = even[r];r++;}}while(r < evenNum){res[cnt++] = even[r];r++;}while(l < oddNum){res[cnt++] = odd[l];l++;}res[cnt] = '\0';if(res[0] == '0') printf("-1\n");else printf("%s\n",res);}return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的hdu 5055(贪心)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。