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

隨筆 - 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 閱讀(2427) 評論(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>
            日韩午夜在线视频| 亚洲精品乱码| 欧美中文字幕在线| 欧美一区二区精品| 韩国精品久久久999| 美乳少妇欧美精品| 蜜臀av一级做a爰片久久| 亚洲精品一二三| 9久草视频在线视频精品| 国产精品久久久久aaaa九色| 欧美一站二站| 麻豆精品在线播放| 在线综合视频| 欧美一区二区三区免费观看| 亚洲国产精品久久久久秋霞不卡 | 国产日韩欧美自拍| 欧美二区在线观看| 国产精品久久久久久超碰| 久久久久久久999| 欧美电影在线观看完整版| 亚洲视频一起| 久久视频在线看| 亚洲最新合集| 久久精品一级爱片| 亚洲视屏在线播放| 免费不卡亚洲欧美| 性欧美1819性猛交| 蜜桃久久av一区| 欧美一区二区三区四区夜夜大片| 免费成人性网站| 欧美在线观看天堂一区二区三区| 看欧美日韩国产| 欧美在线啊v一区| 欧美日韩日韩| 亚洲大片免费看| 国产精品自在线| 亚洲人成77777在线观看网| 国产性色一区二区| 在线亚洲成人| 亚洲理伦在线| 久久偷窥视频| 久久米奇亚洲| 国产精品免费aⅴ片在线观看| 亚洲国产精品第一区二区| 国产乱码精品一区二区三区忘忧草| 91久久精品国产91性色| 国产中文一区二区| 亚洲欧美日韩国产一区二区三区 | 久久久久久97三级| 欧美性生交xxxxx久久久| 亚洲国产婷婷香蕉久久久久久99| 一区二区三区在线免费观看| 西西裸体人体做爰大胆久久久| 一区二区三区四区五区在线| 欧美久久久久| 亚洲人成亚洲人成在线观看图片| 激情av一区| 久久久噜噜噜久噜久久| 久久久噜噜噜| 黄色成人在线网站| 久久精品30| 欧美成人一区二区三区在线观看| 好看的日韩视频| 久久亚洲春色中文字幕| 欧美大尺度在线观看| 在线欧美影院| 欧美va天堂在线| 亚洲国产美女精品久久久久∴| 亚洲精品麻豆| 欧美视频在线免费看| 中文久久精品| 久久爱另类一区二区小说| 国产午夜精品麻豆| 久久久另类综合| 亚洲激情社区| 亚洲午夜羞羞片| 国产精品视频一区二区高潮| 性久久久久久久| 老司机午夜免费精品视频| 亚洲电影在线看| 欧美区亚洲区| 亚洲欧美一区二区精品久久久| 久久精品国产亚洲aⅴ| 一区二区亚洲| 欧美久久久久久蜜桃| 亚洲尤物影院| 欧美99久久| 在线综合亚洲| 好看的日韩av电影| 欧美日韩国产不卡在线看| 亚洲免费人成在线视频观看| 久久蜜桃香蕉精品一区二区三区| 亚洲精品在线看| 国产精品一区在线观看| 久久一区二区三区四区五区| 一区二区电影免费在线观看| 久久―日本道色综合久久| 亚洲狼人综合| 国内精品视频久久| 欧美麻豆久久久久久中文| 羞羞色国产精品| 亚洲激情精品| 久久伊伊香蕉| 亚洲无玛一区| 亚洲国产精品成人| 国产模特精品视频久久久久| 欧美成人国产va精品日本一级| 亚洲一区二区三区乱码aⅴ| 免费亚洲一区| 欧美在线视频一区二区| 一区二区三区视频在线看| 亚洲电影免费在线观看| 国产精品视频免费观看| 欧美激情在线有限公司| 久久国产66| 亚洲欧美激情四射在线日| 日韩视频在线观看免费| 亚洲第一页中文字幕| 久久天堂av综合合色| 午夜视频在线观看一区二区三区| 亚洲三级免费观看| 尤物yw午夜国产精品视频| 国产精品永久入口久久久| 欧美日韩亚洲一区二区三区在线 | 制服丝袜激情欧洲亚洲| 在线精品国产成人综合| 国产日产欧产精品推荐色| 国产精品二区在线| 欧美色图一区二区三区| 欧美精品综合| 欧美日韩裸体免费视频| 欧美承认网站| 欧美电影免费观看| 欧美激情第9页| 欧美成人福利视频| 欧美黑人多人双交| 欧美顶级大胆免费视频| 欧美成人激情在线| 欧美激情视频网站| 欧美日本免费一区二区三区| 欧美成人第一页| 欧美区二区三区| 欧美色大人视频| 国产精品日本一区二区| 国产欧美日韩在线观看| 国产日韩欧美夫妻视频在线观看| 国产精品一区三区| 韩国av一区二区三区| 国产午夜久久| 亚洲电影免费| 一区二区三区欧美在线观看| 亚洲无玛一区| 久久成人免费电影| 欧美96在线丨欧| 亚洲激情在线观看视频免费| 亚洲乱码精品一二三四区日韩在线| 亚洲免费久久| 亚洲婷婷综合色高清在线| 欧美一区二区久久久| 久久亚洲私人国产精品va| 欧美国产日韩一区| 国产精品久久久久国产精品日日| 国产日韩欧美视频在线| 亚洲国产精品久久| 亚洲一区二区三区在线看| 久久精品1区| 亚洲承认在线| 宅男精品视频| 久久精品一区二区三区中文字幕| 久久青青草综合| 欧美视频日韩视频| 国内揄拍国内精品久久| 日韩视频在线一区| 久久久99国产精品免费| 亚洲第一在线综合网站| 一区二区三区欧美成人| 久久久久国产精品一区三寸| 欧美精品在线极品| 国产亚洲精品一区二555| 日韩写真在线| 久久免费视频在线观看| 99这里只有久久精品视频| 久久久久网址| 国产精品日韩久久久| 在线成人性视频| 午夜久久久久| 亚洲成色最大综合在线| 欧美伊人久久| 欧美午夜精品久久久| 在线精品一区| 欧美一区二区高清在线观看| 亚洲国产精品www| 久久精品在线| 国产欧美一区视频| 亚洲无亚洲人成网站77777| 欧美成人高清| 久久精品国产一区二区电影| 欧美午夜电影在线| 一区二区三区四区国产| 亚洲国产精品第一区二区|