青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 6, 文章 - 0, 評論 - 24, 引用 - 0
數據加載中……

從一道簡單題談程序設計的思維(續)

從一道簡單題談程序設計的思維

題目

 Stick
Problem 

Anthony has collected a large amount of sticks for manufacturing chopsticks. In order to simplify his job, he wants to fetch two equal-length sticks for machining at a time. After checking it over, Anthony finds that it is always possible that only one stick is left at last, because of the odd number of sticks and some other unknown reasons. For example, Anthony may have three sticks with length 1, 2, and 1 respectively. He fetches the first and the third for machinning, and leaves the second one at last. Your task is to report the length of the last stick.

Input

The input file will consist of several cases.
Each case will be presented by an integer n (1 <= n <= 100, and n is odd) at first. Following that, n positive integers will be given, one in a line. These numbers indicate the length of the sticks collected by Anthony.
The input is ended by n = 0.

Output

For each case, output an integer in a line, which is the length of the last stick.

Sample Input
3
1
2
1
0
Sample Output
2


題目分析
   題意是對于給定的n(n為奇數)根木棒,其中有n - 1根是可以按長度配對的,找出按長度配對后剩余的一根木棒。
   下面給出這題的幾種解法:
   (1)對于每根木棒,都搜索與其匹配的另一根木棒,時間復雜度為O(n2);
   (2)先將木棒按其長度排序,然后依次掃描各相鄰木棒是否匹配,時間復雜度為O(nlogn);
   (3)對于任意的x,都滿足如下公式:x Xor 0 = x, x Xor x = 0。而且異或操作是滿足交換律和結合律的,因此所有配對的木棒異或后結果為0,因此將所有木棒的長度異或后得到的結果即為不成對的那根木棒的長度,時間復雜度為O(n)。

思考題

   (1)有長度為1到n共n根木棒,現從中拿走某一根,再放入一根任意長度的木棒。順次輸入這n根木棒的長度,求拿走與放入木棒的長度分別是多少?
   (2)有n根木棒,其中有多于一半的木棒其長度相等,順次輸入所有木棒的長度,求出這些長度相等的木棒的長度是多少?

參考資料

郭嵩山、張子臻、王磊、湯振東著  國際大學生程序設計競賽例題解(五)  電子工業出版社

posted on 2009-03-29 23:38 yuyang7 閱讀(2436) 評論(9)  編輯 收藏 引用 所屬分類: 程序設計競賽

評論

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

支持,希望LZ以后多出點算法類型的文章。。。
2009-03-30 12:32 | funcoding

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

@funcoding
謝謝支持。
我可能會比較多的寫一些介紹數據結構或算法的文章,關于解題的不會太多。

2009-03-30 12:48 | yuyang7

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

int main()
{
int n;
cin >> n;
set<int> data;
for (int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
if (data.find(tmp) != data.end())
{
data.erase(tmp);
}
else
data.insert(tmp);
}
copy(data.begin(), data.end(), ostream_iterator<int>(cout," "));
return 1;
}
2009-03-30 23:14 | 黃宇

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

這種是o(n)的
=====================================
static bool data[101] = {0};

int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
if (data[tmp])
{
data[tmp] = 0;
}
else
data[tmp] = 1;
}
for (int i = 1; i < 100; i++)
{
if (data[i] == 1)
{
cout << i << endl;
}
}
}
2009-03-30 23:27 | 黃宇

# re: 從一道簡單題談程序設計的思維(續)[未登錄]  回復  更多評論   

@黃宇
不好意思,樓上可能理解錯了題意.題目只說有n<= 100根木棒,并沒有說每根木棒的長度也在100以內.
2009-03-31 11:20 | yuyang7

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

異或...

題目還可以再變一下:
有n種長度的棍子
其中n-1種長度的有3根,剩下1種長度的只有2根.求那個長度...:)

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

如果題目變為樓上說的那樣的話,我只能想到排序,不知樓上有何高見。
求解答!!!!
2009-03-31 18:00 | yuyang7

# re: 從一道簡單題談程序設計的思維(續)[未登錄]  回復  更多評論   

把n個數直接異或,結果就是要求的那個剩余長度了。
2009-04-01 11:37 | haha

# re: 從一道簡單題談程序設計的思維(續)  回復  更多評論   

呃..偶然路過...關于那個變種,不知LZ現在有答案了沒有.

異或的本質是每一bit分別模2加.. 所以針對那個變種, 換成模3加即可
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美91精品| 日韩一区二区免费高清| 久久成人精品无人区| 免费不卡在线视频| 亚洲一品av免费观看| 欧美v日韩v国产v| 国产一区二区三区在线观看精品| 日韩一级成人av| 欧美国产91| 久久久xxx| 狠狠噜噜久久| 久久在线免费视频| 久久精品成人| 国产婷婷色一区二区三区在线| 亚洲天堂av图片| 一本久久综合亚洲鲁鲁五月天| 欧美国产专区| 日韩亚洲欧美高清| 亚洲欧洲日本国产| 免费永久网站黄欧美| 狠狠色综合网站久久久久久久| 久久频这里精品99香蕉| 久久不射中文字幕| 亚洲二区视频| 91久久夜色精品国产九色| 欧美成人一品| 国产亚洲欧美色| 久久尤物视频| 久久福利精品| 国产一区二区三区四区在线观看| 久久久久国内| 久久精品中文字幕一区| 伊人久久婷婷| 亚洲国产成人精品女人久久久| 欧美大片一区| 亚洲一区二区av电影| 亚洲专区在线视频| 精品成人一区二区| 亚洲国产精品一区二区www在线 | 91久久在线播放| 欧美激情中文字幕在线| 一本色道久久综合| 一区二区三区四区在线| 国产亚洲高清视频| 欧美激情bt| 欧美日韩视频在线一区二区观看视频| 一区二区三区久久精品| 午夜在线精品偷拍| 在线看片成人| 亚洲天堂av图片| 亚洲福利专区| 亚洲欧美日韩国产综合在线 | 久久激情综合网| 免费成人黄色| 午夜欧美不卡精品aaaaa| 欧美制服丝袜| 一本大道av伊人久久综合| 亚洲欧美久久久久一区二区三区| 亚洲成人在线免费| 亚洲先锋成人| 亚洲国产精品一区二区www| 一区二区激情小说| 亚洲成色777777在线观看影院 | 国产精品一二三四| 欧美激情中文字幕乱码免费| 国产女主播一区二区三区| 亚洲国产精品热久久| 国产日韩欧美在线一区| av成人免费在线| 亚洲国产美女| 亚洲欧美国产视频| 亚洲伊人观看| 欧美精品日韩精品| 免费久久99精品国产自| 国产婷婷色一区二区三区在线| 亚洲人体1000| 亚洲精品1区2区| 久久精品青青大伊人av| 香蕉久久夜色精品国产| 欧美日韩另类视频| 亚洲激情在线观看| 91久久在线| 久久亚洲精选| 久久精品国产一区二区三区免费看 | 欧美大胆成人| 美国十次了思思久久精品导航| 国产精品久久二区二区| 亚洲精品国精品久久99热| 亚洲高清免费视频| 久久久精品五月天| 久热爱精品视频线路一| 国产亚洲精品美女| 欧美一区二区三区四区夜夜大片 | 亚洲精品免费看| 久久综合一区| 欧美第十八页| 亚洲国产综合视频在线观看| 久久最新视频| 欧美激情一区二区三区| 亚洲人成网站999久久久综合| 久久综合九色综合久99| 欧美国产在线视频| 亚洲精品色图| 欧美日韩在线免费视频| 亚洲日本中文字幕区| 一本大道久久a久久精二百| 欧美日韩美女| 亚洲视频在线观看| 久久精品99无色码中文字幕| 国产原创一区二区| 久久久人人人| 亚洲国产精品电影| 亚洲私人影院在线观看| 国产精品久久久久国产精品日日| 一本色道久久综合亚洲精品按摩 | 亚洲欧美电影院| 国产精品区一区| 欧美在线1区| 欧美成人精品h版在线观看| 亚洲三级视频| 国产精品久久久久aaaa九色| 亚洲综合日韩| 久久蜜桃精品| 亚洲区国产区| 国产精品亚洲成人| 久久av最新网址| 欧美激情在线播放| 亚洲欧美第一页| 依依成人综合视频| 欧美福利网址| 亚洲欧美日韩精品久久| 久久午夜影视| 一区二区三区欧美成人| 国产女主播一区二区三区| 久久人人97超碰国产公开结果| 亚洲国产欧美另类丝袜| 午夜在线a亚洲v天堂网2018| 韩国在线一区| 国产精品国产a| 久久久青草婷婷精品综合日韩| 亚洲精品视频在线播放| 久久精精品视频| 一本久道久久综合婷婷鲸鱼| 国产一区二区成人久久免费影院| 毛片精品免费在线观看| 亚洲成色777777女色窝| 蜜桃久久av| 亚洲一二三四区| 国产一区二区三区在线免费观看| 欧美精品精品一区| 欧美中文字幕第一页| 亚洲免费观看高清完整版在线观看熊| 久久久久国产精品一区| 9国产精品视频| 激情五月婷婷综合| 国产精品一区三区| 欧美成人精品三级在线观看| 欧美在线免费观看亚洲| 在线视频日韩精品| 91久久夜色精品国产九色| 男人插女人欧美| 久久亚洲精品伦理| 欧美一区二区高清在线观看| 一区二区三区日韩精品视频| 在线观看成人小视频| 国产香蕉久久精品综合网| 欧美视频精品一区| 欧美日本高清视频| 男人插女人欧美| 久久久精品网| 欧美资源在线观看| 午夜欧美理论片| 亚洲女ⅴideoshd黑人| 国产精品99久久久久久久久 | 欧美精品一区二区视频| 美女脱光内衣内裤视频久久影院| 欧美一区在线视频| 欧美一区二区性| 亚洲午夜三级在线| 亚洲视频一二| 亚洲一区尤物| 亚洲欧美日韩高清| 亚洲欧美精品在线| 亚洲一区二区网站| 小黄鸭视频精品导航| 久久黄金**| 麻豆freexxxx性91精品| 欧美成人一区二区三区在线观看| 免费在线看一区| 欧美激情四色| 欧美亚洲第一页| 国产精品一级| 激情丁香综合| 亚洲日韩成人| 亚洲视频www| 欧美一区二区三区视频| 久久久久久一区二区| 欧美不卡在线视频| 亚洲精品中文字幕女同| 一区二区三区四区国产|