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

隨筆 - 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>
            午夜日韩视频| 香港成人在线视频| 亚洲精品美女在线观看播放| 午夜宅男久久久| 欧美日韩国产va另类| 一区二区视频免费完整版观看| 午夜亚洲福利| 中文在线资源观看网站视频免费不卡 | 日韩视频免费大全中文字幕| 另类激情亚洲| 久久久久99| 国产亚洲欧美日韩日本| 欧美一区二区在线看| 亚洲男人第一网站| 国产精品久久久一区麻豆最新章节| 9l视频自拍蝌蚪9l视频成人| 最新高清无码专区| 欧美日韩免费一区二区三区视频 | 欧美一区二区三区四区在线| 亚洲午夜伦理| 国产亚洲欧美一级| 另类图片国产| 免费观看在线综合色| 日韩午夜电影| 亚洲一区二区黄| 国内精品久久久久伊人av| 免费av成人在线| 欧美成人首页| 亚洲一级黄色片| 亚洲欧美日韩精品综合在线观看| 国产欧美日韩另类视频免费观看 | 蜜臀久久久99精品久久久久久| 亚洲国语精品自产拍在线观看| 亚洲国产精品电影| 欧美视频第二页| 久久精品国产2020观看福利| 久久躁狠狠躁夜夜爽| 日韩午夜精品视频| 亚洲视频1区| 激情一区二区| 夜久久久久久| 影音先锋亚洲精品| 艳妇臀荡乳欲伦亚洲一区| 国内揄拍国内精品久久| 欧美国产日韩一区二区在线观看| 欧美日韩国产精品一卡| 欧美在线黄色| 欧美国产亚洲精品久久久8v| 欧美一区二区三区四区高清| 欧美电影打屁股sp| 久久九九精品99国产精品| 欧美激情1区2区3区| 午夜精品久久| 欧美岛国激情| 欧美激情久久久久久| 夜夜精品视频| 久久久国产一区二区三区| 在线综合+亚洲+欧美中文字幕| 午夜精品久久久久久99热软件| 亚洲肉体裸体xxxx137| 性色av一区二区三区| 亚洲视频第一页| 久久久亚洲影院你懂的| 午夜精品美女久久久久av福利| 欧美成人dvd在线视频| 欧美亚洲视频在线观看| 久久在线观看视频| 欧美中文在线观看| 欧美日韩直播| 91久久夜色精品国产九色| 精品成人在线| 亚洲欧美日韩专区| 亚洲一区二区三区高清| 欧美福利电影网| 免费观看在线综合| 国内精品视频666| 午夜国产精品视频免费体验区| 制服丝袜亚洲播放| 欧美极品一区| 亚洲电影免费在线观看| 伊人成人在线视频| 久久国产福利国产秒拍| 欧美中文字幕视频在线观看| 国产精品久久波多野结衣| 99视频在线观看一区三区| 一区二区激情小说| 欧美日韩精品久久久| 亚洲精品午夜精品| 一本色道久久综合| 欧美日韩一区不卡| 一本久道久久综合狠狠爱| 日韩天天综合| 欧美区视频在线观看| 亚洲精品一区中文| 亚洲一区bb| 欧美性一区二区| 日韩一区二区电影网| 亚洲私人影院| 国产精品免费aⅴ片在线观看| 中文精品99久久国产香蕉| 亚洲欧美国产毛片在线| 国产精品夜夜夜| 久久国产手机看片| 欧美成人精品| 亚洲最新中文字幕| 国产精品99免费看 | 欧美一级视频| 久久频这里精品99香蕉| 欲色影视综合吧| 欧美1区2区3区| 99xxxx成人网| 欧美综合二区| 亚洲成在线观看| 欧美日韩国产一区精品一区| 亚洲一级黄色av| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲精一区二区三区| 亚洲欧美在线高清| 久久午夜精品一区二区| 亚洲高清中文字幕| 欧美日韩一区二区三区免费看| 亚洲专区欧美专区| 欧美成人亚洲| 亚洲欧美国产毛片在线| 在线播放国产一区中文字幕剧情欧美| 久久婷婷丁香| 一区二区三区偷拍| 欧美成年人视频| 亚洲欧美在线aaa| 亚洲国产mv| 国产精品羞羞答答| 欧美电影在线观看完整版| 制服诱惑一区二区| 欧美激情aⅴ一区二区三区| 亚洲一区二区精品在线观看| 一区免费视频| 国产精品久久九九| 久热精品视频在线观看一区| 一区二区三区 在线观看视频| 麻豆久久婷婷| 欧美一二区视频| 99ri日韩精品视频| 激情另类综合| 国产精品视频99| 欧美国产日韩在线| 久久久久久一区二区| 一区二区三区久久久| 亚洲国产免费| 蜜臀99久久精品久久久久久软件| 亚洲在线一区二区| 99国产精品久久| 亚洲成色www8888| 国产一区二区三区黄视频| 国产精品麻豆欧美日韩ww| 欧美精品一卡二卡| 免费亚洲一区| 久久久久久午夜| 欧美一区成人| 亚洲免费小视频| 亚洲一区二区三区四区中文| 亚洲三级视频在线观看| 欧美国产专区| 欧美肥婆在线| 欧美成人情趣视频| 麻豆91精品| 久久午夜视频| 浪潮色综合久久天堂| 久久躁狠狠躁夜夜爽| 久久久视频精品| 久久久久久91香蕉国产| 欧美在线视频一区二区三区| 亚洲欧美日韩精品久久亚洲区| 99视频精品在线| 9色精品在线| 亚洲日本成人| 亚洲乱码国产乱码精品精| 亚洲黄色一区| 亚洲精品中文字幕女同| 亚洲另类黄色| 999亚洲国产精| 制服丝袜激情欧洲亚洲| 亚洲专区在线视频| 欧美亚洲色图校园春色| 久久成人在线| 久久婷婷综合激情| 欧美不卡一卡二卡免费版| 亚洲高清久久| 99视频精品在线| 亚洲一区二区精品在线观看| 亚洲欧美日韩综合国产aⅴ| 亚洲欧美另类中文字幕| 欧美一区二区三区免费观看 | 一区国产精品| 亚洲国产清纯| 国产精品免费一区二区三区在线观看| 欧美视频免费在线观看| 国产日韩欧美黄色| 亚洲第一福利视频| 一本大道久久a久久综合婷婷| 亚洲无亚洲人成网站77777 |