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

隨筆 - 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>
            欧美肥婆在线| 亚洲欧美在线一区二区| 久久资源av| 麻豆国产va免费精品高清在线| 亚洲免费观看在线视频| 亚洲一区二区三区在线| 伊人成人在线| 99re在线精品| 伊人久久综合97精品| 亚洲三级毛片| 国产精品一卡二| 欧美激情亚洲综合一区| 国产精品一区二区三区久久久| 欧美成人网在线| 国产伦精品一区二区三区视频孕妇 | 亚洲电影自拍| 亚洲性夜色噜噜噜7777| 91久久国产综合久久蜜月精品| 亚洲一区二区精品在线观看| 亚洲日本成人在线观看| 欧美在线观看一区二区| 日韩视频一区二区在线观看| 久久精品首页| 午夜精品久久久久久久久久久久久 | 韩国av一区二区三区在线观看| 亚洲精品在线三区| 在线成人黄色| 欧美在线观看一区| 欧美一区二区三区播放老司机| 欧美国产一区视频在线观看 | 国产精品视频福利| 尤物视频一区二区| 欧美亚洲一级片| 亚洲欧美综合精品久久成人| 免费av成人在线| 久久手机精品视频| 国产一区二区久久精品| 亚洲你懂的在线视频| 亚洲综合三区| 国产精品草莓在线免费观看| 亚洲精品资源| 日韩亚洲在线| 欧美日韩成人在线| 亚洲毛片av| 亚洲少妇自拍| 欧美午夜精品久久久| 日韩一级网站| 亚洲欧美亚洲| 国产精品资源| 欧美一区二区三区四区在线观看地址 | 亚洲国产欧美一区二区三区同亚洲 | 欧美一区二区免费观在线| 欧美亚洲成人免费| 中文一区二区在线观看| 午夜激情综合网| 国产欧美欧美| 久久国产精品高清| 欧美成黄导航| 亚洲精品免费观看| 欧美日韩在线播放| 亚洲一区二区三区四区视频| 性欧美超级视频| 国产一区二区av| 久久在线免费视频| 亚洲高清在线| 亚洲社区在线观看| 国产伪娘ts一区| 久久综合中文| 日韩一区二区福利| 性欧美精品高清| 很黄很黄激情成人| 欧美黄色成人网| 在线亚洲激情| 久久嫩草精品久久久精品| 亚洲激情成人网| 欧美特黄一区| 久久精彩视频| 亚洲精选国产| 久久精品一二三| 亚洲精品欧美日韩专区| 国产精品高精视频免费| 久久爱www久久做| 91久久精品国产91久久性色tv| 亚洲一区欧美激情| 狠狠色丁香久久综合频道| 欧美精品偷拍| 欧美一区二区三区成人| 亚洲激情中文1区| 欧美一区二区三区四区视频| 亚洲国产精选| 国产欧美在线| 欧美激情一区二区三级高清视频| 亚洲一区精彩视频| 亚洲高清激情| 亚洲国产精品成人综合| 欧美日韩在线看| 久久久精品久久久久| 99成人免费视频| 牛牛精品成人免费视频| 午夜精品视频一区| 亚洲狼人精品一区二区三区| 国产欧美精品在线播放| 欧美激情亚洲激情| 久久av一区二区| 亚洲婷婷综合久久一本伊一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美一区二区三区免费看| 亚洲黄一区二区| 国产三级精品三级| 欧美日韩另类视频| 免费观看30秒视频久久| 香蕉久久国产| 亚洲视频二区| 亚洲日韩欧美一区二区在线| 牛人盗摄一区二区三区视频| 久久国产乱子精品免费女 | 老司机精品久久| 欧美亚洲视频| 亚洲一区自拍| 夜夜嗨av一区二区三区四季av | 亚洲国产精品小视频| 国产一区二区三区四区hd| 国产精品videossex久久发布| 欧美国产在线视频| 蜜桃av一区二区| 久久视频一区二区| 久久久蜜桃精品| 久久久九九九九| 欧美制服第一页| 欧美一区午夜视频在线观看| 亚洲女女做受ⅹxx高潮| 亚洲在线免费| 亚洲一区国产一区| 亚洲在线一区二区| 亚洲午夜一区二区三区| 一本色道久久88精品综合| 99精品免费| 一本一本大道香蕉久在线精品| 亚洲精品美女在线观看| 亚洲国内精品在线| 亚洲激情专区| 日韩小视频在线观看| 一区二区三区免费看| 亚洲无线一线二线三线区别av| 一本一道久久综合狠狠老精东影业 | 欧美日韩免费区域视频在线观看| 欧美精品v日韩精品v国产精品| 欧美成人中文字幕| 欧美精品videossex性护士| 欧美啪啪成人vr| 欧美日韩国产丝袜另类| 国产精品国产自产拍高清av| 国产精品美女久久| 国产午夜亚洲精品理论片色戒| 国产一区清纯| 亚洲电影在线看| 一区二区三区**美女毛片| 亚洲免费视频中文字幕| 久久精品亚洲乱码伦伦中文| 久久综合网络一区二区| 亚洲国产mv| 一区二区免费看| 嫩草国产精品入口| 亚洲黄色影片| 中文av字幕一区| 欧美一区二区日韩一区二区| 麻豆国产精品va在线观看不卡| 欧美精品少妇一区二区三区| 国产精品―色哟哟| 1769国产精品| 亚洲一区二区三区视频| 久久精品国产欧美激情| 亚洲高清资源| 先锋影音国产精品| 欧美福利视频网站| 国产乱码精品一区二区三区五月婷| 激情综合中文娱乐网| 一区二区三区日韩| 久久久久久综合| 亚洲精品少妇30p| 欧美亚洲一区| 欧美另类视频| 国内视频一区| 亚洲亚洲精品在线观看 | 国产欧美在线播放| 亚洲精品视频一区| 久久99伊人| 亚洲日本电影在线| 欧美一区二区三区在线免费观看 | 久久中文在线| 99在线|亚洲一区二区| 久久中文字幕一区| 国产精品第一页第二页第三页| 亚洲第一精品影视| 先锋影音网一区二区| 亚洲黄色三级| 久久欧美肥婆一二区| 国产乱码精品| 亚洲香蕉伊综合在人在线视看| 美女黄毛**国产精品啪啪|