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

隨筆 - 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>
            在线视频精品| 国产精品嫩草99a| 日韩午夜在线| 欧美精品v日韩精品v国产精品 | 欧美日韩精品一区二区天天拍小说| 亚洲激情不卡| 欧美在线视频观看免费网站| 欧美电影电视剧在线观看| 激情91久久| 欧美激情aaaa| 欧美在线日韩精品| 久久激情视频久久| 亚洲色图自拍| 母乳一区在线观看| 欧美一区二区黄| 91久久精品一区二区三区| 国产精品乱码| 国产资源精品在线观看| 欧美日韩亚洲综合| 久久久久久电影| 一区二区冒白浆视频| 嫩草影视亚洲| 亚洲全黄一级网站| 免费看亚洲片| 久久精品综合网| 亚洲一区免费在线观看| 日韩一区二区精品葵司在线| 亚洲自拍偷拍福利| 久久综合99re88久久爱| 久久久在线视频| 久久精品一区二区国产| 欧美激情精品久久久六区热门| 美女国产精品| 中文欧美在线视频| 榴莲视频成人在线观看| 美女精品视频一区| 国产精品免费aⅴ片在线观看| 加勒比av一区二区| 亚洲综合欧美日韩| 亚洲日本一区二区| 久久深夜福利| 欧美sm极限捆绑bd| 欧美激情第10页| 国产一区二区视频在线观看| 国产手机视频一区二区| 国产精品永久免费观看| 国产日韩欧美一区二区| 亚洲精品免费电影| 亚洲色图综合久久| 亚洲欧美不卡| 亚洲欧美制服中文字幕| 久久激情中文| 美女成人午夜| 午夜精品久久久久| 久久久激情视频| 欧美精品久久久久久久久久| 国内自拍亚洲| 夜夜嗨av一区二区三区| 亚洲欧美日韩另类| 亚洲人成网站色ww在线| 欧美阿v一级看视频| 欧美在线一二三| 亚洲国语精品自产拍在线观看| 噜噜爱69成人精品| 国产午夜精品美女毛片视频| 一区二区三区高清在线| 亚洲激情影院| 欧美区一区二| 国产片一区二区| 亚洲欧洲三级| 亚洲高清影视| 一卡二卡3卡四卡高清精品视频| 免费在线播放第一区高清av| 91久久国产综合久久| 亚洲高清av| 欧美日韩国产电影| 亚洲综合色视频| 亚洲一区日韩| 欧美福利小视频| 亚洲精品一区二区三区不| 亚洲国产一区二区视频| 性娇小13――14欧美| 久久一区二区三区av| 在线观看欧美黄色| 亚洲欧美日韩视频一区| 亚洲欧美日韩一区二区三区在线观看 | 欧美成人综合网站| 亚洲天堂免费观看| 免费不卡在线观看av| 亚洲精品自在在线观看| 久久国产乱子精品免费女| 久久av红桃一区二区小说| 亚洲国产cao| 久久九九99视频| 老司机午夜精品| 国产亚洲免费的视频看| 欧美va亚洲va香蕉在线| 欧美日韩中文精品| 亚洲人成亚洲人成在线观看| 日韩视频在线你懂得| 免费在线观看日韩欧美| 亚洲一区三区电影在线观看| 久久国产精品高清| 日韩亚洲欧美在线观看| 小嫩嫩精品导航| 一区二区av| 久久女同互慰一区二区三区| 亚洲午夜未删减在线观看| 亚洲欧洲综合另类| 国产欧美亚洲一区| 亚洲欧洲在线看| 精品999在线播放| 亚洲一区不卡| 一本到高清视频免费精品| 久久免费国产| 久久精品国产精品亚洲精品| 欧美日韩激情网| 欧美国产日本| 国模精品一区二区三区色天香| 国内精品**久久毛片app| 久久综合五月| 一区二区成人精品| 亚洲第一精品影视| 欧美sm极限捆绑bd| 国产日韩欧美a| 亚洲视频www| 亚洲夜间福利| 欧美日韩免费一区二区三区视频 | 国产精品一二一区| 日韩视频在线你懂得| 99亚洲伊人久久精品影院红桃| 蜜臀99久久精品久久久久久软件| 久久这里只有| 激情久久久久久久| 久久久夜色精品亚洲| 美国十次成人| 亚洲福利视频一区二区| 久久午夜电影| 欧美不卡视频| 亚洲精品国产精品乱码不99按摩| 久久五月天婷婷| 亚洲电影免费观看高清完整版| 亚洲电影av在线| 欧美成va人片在线观看| 亚洲激情另类| 亚洲午夜视频在线| 国产欧美精品久久| 久久久久高清| 亚洲大片在线| 国产精品99久久99久久久二8| 欧美丝袜一区二区| 亚洲一区二区在线免费观看视频| 欧美一二三视频| 欧美va亚洲va国产综合| 亚洲国产精品精华液2区45| 亚洲欧洲另类国产综合| 欧美日韩亚洲综合| 亚洲综合色自拍一区| 亚洲精品欧美| 欧美三级视频在线| 午夜精品国产更新| 免费在线观看一区二区| 亚洲精品美女免费| 国产精品色婷婷久久58| 亚洲欧洲综合| 欧美一区二区播放| 亚洲国产电影| 国产精品国产三级国产aⅴ9色| 欧美/亚洲一区| 亚洲最快最全在线视频| 国产女主播一区| 欧美大片91| 亚洲午夜在线| 欧美电影在线观看完整版| 亚洲天堂av图片| 一色屋精品视频在线看| 欧美午夜无遮挡| 日韩午夜视频在线观看| 久久久成人网| 亚洲在线不卡| 亚洲精品资源美女情侣酒店| 国产亚洲精品aa| 欧美日本三区| 久久综合狠狠| 欧美在线高清| 一本色道久久综合狠狠躁篇的优点 | 99国产精品久久久久老师| 亚洲国产日韩一区二区| 国产精品国产亚洲精品看不卡15| 久久久噜噜噜久久| 亚洲欧美怡红院| 99精品欧美一区二区三区综合在线| 久久亚洲精品一区二区| 亚洲一区影音先锋| 亚洲片在线资源| 亚洲成人自拍视频| 国产欧美精品一区aⅴ影院| 欧美色欧美亚洲高清在线视频| 美女国内精品自产拍在线播放| 久久精品av麻豆的观看方式|