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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

poj3617Best Cow Line

發布時間:2024/1/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj3617Best Cow Line 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意大概是這樣,給你一個字符串,你能夠進行的操作是這種,
每次拿走這個串的第一個字母,或者最后一個字母,然后放到
一個新串的末尾(當然啦,新串一開始是為空的),當把舊串
里的全部字母拿掉,這個時候就形成了一個字母以及長度都跟
舊串一樣的新串。如今要求使這個新串的字典序最小。

我的做法是用貪心,每次比較舊串的第一個和末尾的字母,誰小
就放在第一個。遇到兩個字母同樣的時候,就比較第二個字母和
倒數第二個字母,以此類推。直到找到兩個不同的字母為止,假設
前面的小就輸出舊串第一個字母,否則就輸出末尾字母。

假設都是同樣的字母的話呢,隨便輸出哪個就好了。

我的代碼例如以下:

?

#include<cstdio> int num; char cs[2010]; void init() {char tmp[2];int i;scanf("%d",&num);for(i=0;i<num;i++){scanf("%s",tmp);cs[i]=tmp[0];} } void result() {bool flag=1;int sum,l,r,i;l=sum=0;r=num-1;while(l<=r){for(i=0;l+i<r-i;i++)if(cs[l+i]<cs[r-i]){flag=1;break;}else if(cs[l+i]>cs[r-i]){flag=0;break;}if(flag){putchar(cs[l]);l++;}else{putchar(cs[r]);r--;}sum++;if(sum%80==0)printf("\n");} } int main() {init();result(); }


?

轉載于:https://www.cnblogs.com/yxwkf/p/4017760.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的poj3617Best Cow Line的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。