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

隨筆 - 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>
            亚洲视频综合| 欧美成人免费在线视频| 欧美精品成人一区二区在线观看| 久久国产黑丝| 欧美在线免费播放| 欧美乱人伦中文字幕在线| 久久欧美中文字幕| 理论片一区二区在线| 久久久久久综合网天天| 久久综合九色欧美综合狠狠| 久久久久久久久蜜桃| 久久手机精品视频| 欧美剧在线免费观看网站| 欧美日本一道本在线视频| 国产精品福利久久久| 国产精品一区二区在线观看网站| 国产欧美日韩视频| 在线播放亚洲| 99在线|亚洲一区二区| 午夜国产精品视频| 免费试看一区| 这里是久久伊人| 久久欧美中文字幕| 欧美视频免费在线| 亚洲成色www8888| 亚洲一区二区三区中文字幕在线| 欧美一区不卡| 最新国产成人在线观看| 亚洲精品视频中文字幕| 久久精品99| 国产精品红桃| 亚洲日本电影| 久久人人爽人人| 亚洲精品中文字幕女同| 久久久精品久久久久| 国产精品盗摄一区二区三区| 亚洲电影免费观看高清| 欧美中文在线免费| 亚洲美女在线视频| 男男成人高潮片免费网站| 国产精品视频精品| 亚洲网站视频| 亚洲国产日韩欧美在线图片| 欧美一级理论片| 国产精品v欧美精品v日韩 | 亚洲一区精品视频| 裸体丰满少妇做受久久99精品| 一本久久精品一区二区| 免费成人高清视频| 伊人狠狠色丁香综合尤物| 欧美一级视频| 亚洲天堂黄色| 国产精品久久久久久av福利软件| 99国产精品久久久久老师 | 尤物99国产成人精品视频| 亚洲欧美日韩精品久久久久| 亚洲最快最全在线视频| 欧美精品一区在线播放| 一本久久a久久免费精品不卡| 欧美岛国激情| 久热精品在线视频| 亚洲黄一区二区| 亚洲第一区色| 欧美v日韩v国产v| 亚洲国产日韩综合一区| 亚洲成人中文| 欧美母乳在线| 亚洲性视频网站| 一区二区三区导航| 国产精品午夜在线观看| 久久成人免费| 久久久国产精品亚洲一区 | 亚洲国产欧美在线| 亚洲盗摄视频| 欧美日本在线看| 亚洲欧美国产va在线影院| 亚洲一区中文| 韩日午夜在线资源一区二区| 欧美va亚洲va国产综合| 欧美激情亚洲一区| 亚洲一区二区在线观看视频| 亚洲一区二区视频在线观看| 国产亚洲一区二区精品| 女女同性精品视频| 欧美日本一区二区高清播放视频| 亚洲一区中文字幕在线观看| 午夜精品久久久99热福利| 黄色精品一区二区| 亚洲国产欧美一区二区三区久久 | 久久不射2019中文字幕| 在线成人av.com| 亚洲国产视频一区| 国产精品扒开腿爽爽爽视频| 久久九九电影| 日韩视频免费观看高清在线视频 | 亚洲综合久久久久| 欧美一区二区三区精品电影| 亚洲裸体视频| 免费成人黄色| 性高湖久久久久久久久| 亚洲黄色性网站| 亚洲美女视频在线免费观看| 一本到12不卡视频在线dvd | 国产精品国产三级国产aⅴ浪潮| 欧美在线观看视频在线| 免费久久99精品国产自在现线| 正在播放亚洲| 久久九九热免费视频| 亚洲神马久久| 噜噜噜久久亚洲精品国产品小说| 亚洲一区二区三区四区中文| 玖玖国产精品视频| 亚欧成人在线| 欧美日本二区| 欧美岛国在线观看| 国产一区二区三区丝袜| 一本大道久久精品懂色aⅴ| 亚洲第一黄网| 性久久久久久| 亚洲欧美bt| 欧美日韩国产一区二区三区| 免费不卡在线观看av| 国产精品一香蕉国产线看观看| 欧美高清在线一区二区| 国产一区二区av| 亚洲一卡二卡三卡四卡五卡| 亚洲麻豆视频| 欧美成人激情视频| 免费看黄裸体一级大秀欧美| 国产真实乱子伦精品视频| 亚洲在线成人| 香蕉视频成人在线观看| 欧美日韩综合视频| 日韩视频一区二区在线观看| 99pao成人国产永久免费视频| 美女精品在线| 亚洲国产高清自拍| 亚洲日本va午夜在线电影| 久久久噜噜噜久久| 麻豆精品视频在线观看视频| 国内精品视频一区| 久久精品99国产精品日本| 久久激情视频久久| 国产专区综合网| 久久久精品五月天| 欧美成人一区二区三区片免费| 激情欧美一区二区三区在线观看| 久久aⅴ国产紧身牛仔裤| 久久综合久久综合久久综合| 国产精品日本精品| 欧美一区二区三区男人的天堂 | 亚洲国产成人精品女人久久久 | 亚洲综合日韩| 欧美精品日韩一区| 亚洲欧洲视频| 99综合电影在线视频| 欧美精品国产| 99精品久久免费看蜜臀剧情介绍| 中文在线资源观看网站视频免费不卡| 欧美日韩大陆在线| 亚洲午夜黄色| 久久视频精品在线| 91久久久久| 国产精品久久久久久av福利软件 | 在线观看国产精品淫| 美日韩丰满少妇在线观看| 亚洲欧洲精品成人久久奇米网| 中文日韩欧美| 国产亚洲欧美日韩精品| 久久综合激情| 亚洲深夜福利在线| 蜜臀va亚洲va欧美va天堂| 亚洲精选一区| 国产精品亚洲综合天堂夜夜| 久久久亚洲国产美女国产盗摄| 亚洲人成亚洲人成在线观看| 香蕉久久夜色精品国产| 亚洲精品九九| 国产欧美丝祙| 欧美激情一区二区三区不卡| 午夜精品久久久久久久白皮肤| 欧美国产乱视频| 欧美一区二区精品| 日韩一级精品| 伊大人香蕉综合8在线视| 国产精品va在线| 欧美成人一区二区三区| 先锋影音久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 狠狠综合久久av一区二区小说| 欧美国产日韩一区| 性伦欧美刺激片在线观看| 欧美激情精品久久久久久变态| 欧美一区二区三区男人的天堂| 亚洲美女性视频| 精品动漫3d一区二区三区| 在线观看欧美日韩国产| 一区二区三区波多野结衣在线观看| 久久久久久国产精品mv| 亚洲一区二区三区视频播放|