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

隨筆 - 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>
            国产欧美一级| 欧美一乱一性一交一视频| 亚洲女同性videos| 亚洲视屏一区| 亚洲一区日韩| 亚洲综合丁香| 久久久欧美精品| 欧美成人免费小视频| 欧美国产欧美综合| 国产精品chinese| 国内精品久久国产| 亚洲日本成人网| 亚洲欧美日韩久久精品 | 欧美aaaaaaaa牛牛影院| 亚洲第一免费播放区| 久久男人av资源网站| 亚洲第一成人在线| 亚洲欧美国产制服动漫| 久久尤物视频| 国产精品vvv| 亚洲高清不卡一区| 亚洲尤物视频网| 久久夜色精品国产欧美乱| 欧美岛国激情| 亚洲免费在线视频| 欧美激情一二三区| 国内一区二区三区在线视频| 欧美fxxxxxx另类| 1024成人| 亚洲欧美日韩爽爽影院| 欧美高清在线视频| 亚洲欧美精品一区| 欧美日韩亚洲在线| 91久久线看在观草草青青| 亚洲社区在线观看| 欧美国产第一页| 小处雏高清一区二区三区| 欧美日韩一区二区三区在线 | 欧美国产日韩在线| 亚洲欧美影音先锋| 欧美激情一区二区三区在线视频观看| 欧美性猛交xxxx乱大交退制版 | 亚洲欧美电影在线观看| 欧美日韩精品福利| 欧美手机在线| 国产精品扒开腿爽爽爽视频| 久久国产视频网| 欧美激情第3页| 国产麻豆9l精品三级站| 亚洲最新在线视频| 欧美成人一区二区三区在线观看| 99伊人成综合| 欧美日本国产视频| 一本色道久久| 亚洲美女av网站| 麻豆freexxxx性91精品| 一区二区在线观看视频| 欧美女同在线视频| 蜜桃av一区| 在线观看欧美日韩| 久久亚洲春色中文字幕久久久| 亚洲综合999| 国产乱子伦一区二区三区国色天香| 亚洲性色视频| 一区二区三区成人精品| 欧美日韩国产页| 亚洲一区在线观看视频| 亚洲天堂黄色| 国产一区二区三区的电影| 久久精品亚洲一区| 久久久久九九视频| 在线看不卡av| 亚洲国产小视频在线观看| 久色成人在线| 亚洲日韩视频| 一本色道久久综合亚洲精品高清 | 国产精品系列在线| 小辣椒精品导航| 性欧美超级视频| 激情欧美日韩| 亚洲国产欧美在线| 欧美视频一区二区三区…| 亚洲免费影视| 久久久久久久成人| 日韩视频免费| 亚洲欧美中文日韩v在线观看| 国产一区二区三区久久精品| 欧美www视频在线观看| 欧美日本免费一区二区三区| 午夜精品成人在线| 久久久久久夜精品精品免费| 99精品免费网| 午夜伦欧美伦电影理论片| 亚洲国产成人av在线| 日韩视频一区二区三区| 国产亚洲一区二区三区在线观看| 欧美大胆人体视频| 国产精品久久久久久久久搜平片| 久久久久9999亚洲精品| 欧美成人精品一区二区三区| 亚洲欧美视频一区二区三区| 久久综合伊人77777| 亚洲综合色网站| 蜜臀91精品一区二区三区| 欧美在线高清视频| 欧美一区影院| 一区二区精品在线| 久久精彩免费视频| 亚洲综合首页| 欧美黄色一级视频| 久久久人成影片一区二区三区| 欧美精品久久99久久在免费线| 久久久久成人精品| 国产精品theporn| 玖玖玖免费嫩草在线影院一区| 午夜老司机精品| 欧美精品v日韩精品v国产精品| 久久手机免费观看| 欧美香蕉视频| 日韩一级成人av| 亚洲人成在线观看网站高清| 欧美在线3区| 欧美亚洲网站| 欧美色精品天天在线观看视频| 亚洲高清精品中出| 一区二区视频欧美| 欧美在线视频免费观看| 性欧美xxxx大乳国产app| 欧美日韩性生活视频| 亚洲高清在线精品| 亚洲电影免费在线观看| 久久久国产91| 久久久综合网站| 国内成人精品视频| 久久精品日韩| 你懂的国产精品| 亚洲激情图片小说视频| 久久综合国产精品| 欧美国产亚洲精品久久久8v| 国产日韩欧美在线视频观看| 亚洲欧美成人一区二区在线电影| 亚洲欧美色婷婷| 国产欧美精品一区aⅴ影院| 亚洲欧美另类国产| 久久精品女人天堂| 狠狠色狠狠色综合日日tαg| 久久久免费av| 91久久在线播放| 亚洲最新合集| 国产精品美女久久久久久免费| 亚洲欧美日韩国产综合| 欧美在线观看视频| 激情91久久| 欧美岛国在线观看| 亚洲另类自拍| 欧美一区二区三区四区在线观看地址 | 亚洲国产精品成人综合| 日韩一区二区福利| 国产精品wwwwww| 午夜激情亚洲| 亚洲第一主播视频| 亚洲欧美日本在线| 韩国美女久久| 欧美美女福利视频| 性欧美暴力猛交69hd| 女生裸体视频一区二区三区 | 亚洲裸体俱乐部裸体舞表演av| 欧美黑人一区二区三区| 日韩午夜三级在线| 久久国产精品99国产精| 亚洲国产天堂久久综合网| 欧美三区在线| 久久久久久91香蕉国产| 一本大道av伊人久久综合| 久久久久久久尹人综合网亚洲| 欧美多人爱爱视频网站| 午夜精品国产精品大乳美女| 国外成人网址| 欧美日韩国产成人在线观看| 亚洲欧美中文日韩v在线观看| 欧美成人国产| 欧美亚洲午夜视频在线观看| 亚洲三级电影在线观看| 国产精品网红福利| 欧美/亚洲一区| 欧美一区二区三区日韩| 一本大道av伊人久久综合| 欧美韩日一区二区| 性欧美video另类hd性玩具| 日韩视频在线免费观看| 禁断一区二区三区在线| 国产精品免费久久久久久| 猛干欧美女孩| 亚洲欧美日韩国产一区| 99热精品在线| 亚洲久久成人| 亚洲精品国精品久久99热| 久久婷婷国产综合尤物精品| 午夜精品久久久| 亚洲夜间福利|