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

隨筆 - 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 閱讀(2435) 評論(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>
            性欧美1819性猛交| 制服丝袜亚洲播放| 久久综合999| 欧美伊人久久| 久久国产精品99国产| 欧美一区二区三区四区视频| 香蕉成人久久| 久久精品国产亚洲5555| 久久婷婷人人澡人人喊人人爽| 久久疯狂做爰流白浆xx| 久久综合九色综合欧美就去吻| 久久综合九色综合欧美狠狠| 欧美激情亚洲| 国产精品日韩欧美综合| 一区二区自拍| 亚洲伦理中文字幕| 亚洲一区二区三区午夜| 久久国内精品自在自线400部| 老鸭窝亚洲一区二区三区| 亚洲国产精品小视频| 亚洲精品欧美日韩专区| 中文在线一区| 久久久伊人欧美| 欧美日韩精品国产| 国产综合色一区二区三区| 亚洲欧洲精品一区二区三区波多野1战4| 日韩午夜在线播放| 久久久99精品免费观看不卡| 亚洲人成在线观看网站高清| 亚洲女人天堂av| 欧美+日本+国产+在线a∨观看| 欧美视频第二页| 一区一区视频| 欧美一级大片在线免费观看| 欧美激情aⅴ一区二区三区| 国产精品99久久不卡二区| 久久亚洲一区二区| 国产欧美日韩精品一区| 99精品视频一区| 欧美sm重口味系列视频在线观看| 中文精品视频| 欧美日韩精品是欧美日韩精品| 一区二区视频欧美| 亚洲免费在线视频| 亚洲精品综合精品自拍| 免费成人高清视频| 激情综合色丁香一区二区| 亚洲欧美日韩区| 亚洲伦理在线免费看| 葵司免费一区二区三区四区五区| 国产乱码精品一区二区三| 亚洲视频免费在线| 亚洲风情在线资源站| 久久青青草原一区二区| 国产一区二区欧美| 久久成人免费日本黄色| 亚洲一级电影| 国产精品v日韩精品| 欧美裸体一区二区三区| 噜噜噜噜噜久久久久久91| 国产欧美日韩在线 | 美国成人毛片| 亚洲成色777777在线观看影院| 久久精品一区二区三区中文字幕 | 黑人操亚洲美女惩罚| 午夜精品电影| 亚洲一区二区三区四区五区午夜 | 欧美视频一区二区三区四区| 在线亚洲+欧美+日本专区| 亚洲激情国产| 欧美伦理视频网站| 亚洲影院色无极综合| 亚洲午夜久久久| 国产欧美视频一区二区三区| 欧美一区日本一区韩国一区| 午夜免费在线观看精品视频| 国产人成精品一区二区三| 欧美亚洲免费| 欧美一区二区成人6969| 精品成人在线观看| 亚洲风情在线资源站| 欧美日韩天堂| 久久成人资源| 久久在线观看视频| a4yy欧美一区二区三区| 亚洲小说欧美另类婷婷| 国产一区 二区 三区一级| 欧美大片专区| 欧美色欧美亚洲另类二区| 欧美一站二站| 久久先锋资源| 亚洲综合激情| 久久综合一区| 亚洲欧美日韩精品在线| 久久久久国内| 亚洲私人黄色宅男| 久久久久五月天| 亚洲一区二三| 久久综合久久综合这里只有精品| 一本色道综合亚洲| 久久久久国产精品午夜一区| 亚洲最新视频在线| 久久久91精品国产| 午夜亚洲一区| 暖暖成人免费视频| 久久精品网址| 国产精品高精视频免费| 欧美国产另类| 国产午夜精品久久| 一区二区国产日产| 亚洲日产国产精品| 久久精品日韩| 国产精品视频久久| 亚洲精品日日夜夜| 亚洲小视频在线观看| 亚洲福利视频二区| 亚洲一区精品在线| 亚洲美女黄网| 久久久久久久97| 久久av二区| 欧美日一区二区三区在线观看国产免| 久久网站热最新地址| 国产精品一区视频网站| 99国产一区| 99re这里只有精品6| 久久日韩精品| 久久久999精品免费| 国产欧美日韩一区二区三区| 亚洲网友自拍| 亚洲一区二区三区精品在线| 欧美激情女人20p| 欧美成人一区二区三区| 激情视频一区| 久久精品午夜| 美女网站久久| 伊人伊人伊人久久| 久久视频一区| 亚洲成人自拍视频| 亚洲精品网址在线观看| 欧美大片18| 亚洲精品女av网站| 亚洲人www| 欧美精品麻豆| 99热这里只有成人精品国产| 亚洲一区一卡| 国产精品夜色7777狼人 | 麻豆精品在线视频| 男人天堂欧美日韩| 亚洲国产日韩欧美一区二区三区| 久久久久久69| 亚洲七七久久综合桃花剧情介绍| 亚洲精品视频免费| 国产精品电影在线观看| 亚洲欧美成人在线| 久久精品一区二区| 91久久久久久国产精品| 欧美激情综合色| 一本久道久久久| 欧美在线网址| 亚洲国产精选| 国产精品对白刺激久久久| 欧美亚洲视频在线观看| 两个人的视频www国产精品| 亚洲激情成人网| 国产精品v欧美精品∨日韩| 欧美一站二站| 亚洲国产视频直播| 欧美一级黄色录像| 永久免费精品影视网站| 欧美日韩1234| 久久精品国产成人| 亚洲免费高清| 久久天天躁狠狠躁夜夜av| 亚洲免费电影在线| 国产午夜精品全部视频在线播放 | 免费影视亚洲| 亚洲精品国精品久久99热一| 午夜精品久久久久久久久久久久久| 国产又爽又黄的激情精品视频| 欧美激情一二区| 久久久精品五月天| 欧美视频免费在线观看| 久久精品国产综合| 亚洲免费av网站| 免费成人黄色av| 亚洲男人的天堂在线aⅴ视频| 狠狠久久亚洲欧美| 国产精品国产自产拍高清av王其| 久久这里只有| 午夜精品一区二区三区在线视 | 亚洲国产精品久久精品怡红院 | 91久久久在线| 噜噜噜91成人网| 小黄鸭视频精品导航| 亚洲精品影院| 在线看无码的免费网站| 国产九色精品成人porny| 欧美美女日韩| 蜜臀99久久精品久久久久久软件| 欧美一区二区三区四区在线观看地址|