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

隨筆 - 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 閱讀(2428) 評論(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>
            欧美伊人久久大香线蕉综合69| 欧美成人四级电影| 亚洲东热激情| 久久久国产午夜精品| 在线观看亚洲一区| 亚洲欧洲日本专区| 国产精品亚洲视频| 欧美 日韩 国产 一区| 欧美日韩精品综合| 久久中文精品| 国产精品s色| 久久亚洲私人国产精品va媚药| 欧美黑人在线观看| 欧美在线视频观看| 欧美精品在线看| 噜噜噜躁狠狠躁狠狠精品视频| 欧美三区美女| 欧美成人精精品一区二区频| 国产精品麻豆va在线播放| 欧美黑人多人双交| 国产一区二区按摩在线观看| 99国产成+人+综合+亚洲欧美| 激情国产一区| 亚洲免费在线| 艳女tv在线观看国产一区| 久久av一区二区三区漫画| 在线亚洲精品福利网址导航| 久久午夜电影网| 久久精品最新地址| 国产精品国产三级国产普通话三级 | 国产精品vvv| 美女视频黄a大片欧美| 国产欧美日韩一区二区三区| 一区二区三区免费观看| 亚洲精品免费在线播放| 久久影院亚洲| 免费看亚洲片| 精品1区2区| 久久精品国产77777蜜臀| 午夜亚洲激情| 国产精品女主播一区二区三区| 日韩亚洲欧美精品| 99这里有精品| 欧美另类高清视频在线| 亚洲国产美女| 99re66热这里只有精品3直播 | 这里只有精品视频| 欧美激情精品久久久六区热门 | 国产欧美日韩伦理| 亚洲天堂免费在线观看视频| 亚洲香蕉视频| 欧美日韩国产在线观看| 亚洲日本在线视频观看| 一区二区激情视频| 欧美午夜精品久久久久久久| 一本一道久久综合狠狠老精东影业| 国产精品99久久久久久久久| 欧美乱人伦中文字幕在线| 亚洲精品欧美在线| 亚洲在线观看视频| 国产女同一区二区| 久久精品综合| 亚洲国产日韩一区| 日韩亚洲国产精品| 国产精品久久久久久久久动漫| 亚洲免费中文| 久久夜色精品国产亚洲aⅴ| 伊人成综合网伊人222| 久久综合五月| 亚洲精品欧洲| 欧美一级艳片视频免费观看| 国内精品久久久久久久97牛牛| 欧美一区二区国产| 欧美国产精品一区| 亚洲在线视频| 国产视频精品xxxx| 免费成人av资源网| 一本久道综合久久精品| 欧美伊人久久久久久午夜久久久久| 狠狠色综合色综合网络| 免费成人黄色片| 在线综合+亚洲+欧美中文字幕| 欧美一级淫片播放口| 精品福利电影| 欧美日韩一区二区在线| 午夜精品一区二区三区电影天堂| 奶水喷射视频一区| 亚洲视频视频在线| 狠狠色狠狠色综合人人| 欧美日韩免费看| 久久精品国产欧美激情| 亚洲国内自拍| 久久九九热re6这里有精品| 亚洲乱码精品一二三四区日韩在线| 国产精品久久久一本精品| 久久视频在线视频| 这里只有精品视频在线| 久久久久久久精| 一级日韩一区在线观看| 国内视频精品| 国产精品a级| 男男成人高潮片免费网站| 亚洲一区二区高清| 亚洲国产精品久久久久婷婷884| 欧美一区二区三区四区夜夜大片| 亚洲精品美女在线| 国产综合色精品一区二区三区| 欧美日韩免费视频| 两个人的视频www国产精品| 亚洲午夜精品视频| 亚洲日本va在线观看| 久久综合电影| 欧美一区免费视频| 一区二区三区久久| 亚洲精品欧美日韩专区| 国产揄拍国内精品对白| 国产精品乱人伦一区二区| 欧美第一黄网免费网站| 久久久久综合网| 欧美一区二区三区四区在线观看| 日韩午夜电影av| 亚洲欧洲一区| 亚洲国语精品自产拍在线观看| 欧美成人资源网| 麻豆精品在线观看| 久久综合狠狠综合久久综合88| 久久精品成人一区二区三区| 欧美一区二区三区久久精品茉莉花| 在线一区观看| 亚洲特级毛片| 日韩亚洲视频在线| 亚洲黄色一区| 亚洲国产精品女人久久久| 国内精品久久久久久| 国产日韩久久| 国产午夜精品全部视频在线播放| 国产精品一区二区三区久久久| 国产精品视频免费在线观看| 国产精品久久久一本精品| 国产精品久久久久久久久久直播 | 久久爱www.| 亚洲欧美日韩国产精品| 亚洲视频在线观看三级| 亚洲亚洲精品在线观看| 亚洲欧美成人一区二区三区| 亚洲伊人第一页| 亚洲欧美日韩精品久久久| 亚洲桃色在线一区| 亚洲免费视频网站| 欧美一区二区大片| 欧美影院视频| 老鸭窝91久久精品色噜噜导演| 免费成人高清视频| 亚洲电影有码| 99国产精品视频免费观看| 9l国产精品久久久久麻豆| 亚洲无玛一区| 久久成人亚洲| 免费国产一区二区| 欧美日本亚洲视频| 国产精品日日摸夜夜添夜夜av| 欧美三级资源在线| 欧美性猛交视频| 国产精品啊啊啊| 欧美激情亚洲| 欧美福利视频在线| 蜜桃伊人久久| 裸体素人女欧美日韩| 久久久精品日韩| 欧美一区二区三区免费在线看| 亚洲在线视频免费观看| 一区二区久久久久| 久久国产日韩| 欧美黄色影院| 国产欧美日本一区视频| 影音欧美亚洲| 亚久久调教视频| 亚洲永久免费| 亚洲特黄一级片| 久久精品国产亚洲一区二区| 免费观看欧美在线视频的网站| 亚洲人成人一区二区在线观看| 亚洲桃色在线一区| 久久免费视频在线观看| 欧美久久在线| 精品福利免费观看| 亚洲一区二区三区免费视频| 久久国产日本精品| 亚洲日韩欧美一区二区在线| 亚洲欧美日韩精品一区二区 | 91久久精品一区二区别| 午夜精品免费| 欧美大片第1页| 亚洲综合色婷婷| 免费观看一区| 亚洲影院色无极综合| 欧美r片在线| 国产欧美一区二区色老头| 日韩一区二区精品在线观看| 久久天堂成人|