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

隨筆 - 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 閱讀(2427) 評論(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>
            亚洲永久免费视频| 欧美电影免费观看高清完整版| 亚洲欧美久久| 妖精成人www高清在线观看| 欧美日韩一区二区视频在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 久久尤物视频| 欧美国产一区二区在线观看| 欧美不卡高清| 欧美视频一区二区在线观看| 国产精品久久久久久久久久尿 | 国产日韩在线不卡| 国产香蕉97碰碰久久人人| 国产一区二区| 亚洲黄色尤物视频| 欧美人在线视频| 欧美体内谢she精2性欧美| 国产精品久久久久久久一区探花| 欧美刺激性大交免费视频 | 久久在线播放| 亚洲欧美色一区| 久久综合伊人77777蜜臀| 欧美黄色aaaa| 国产伦精品一区二区| 亚洲大片免费看| 亚洲视频999| 久久久久久久成人| 欧美激情视频一区二区三区免费| 亚洲精品在线观看免费| 亚洲欧美制服中文字幕| 男男成人高潮片免费网站| 国产精品福利影院| 在线观看91久久久久久| 亚洲一区精品电影| 欧美电影在线播放| 亚洲综合成人婷婷小说| 欧美mv日韩mv国产网站| 久久久综合网站| 欧美亚洲动漫精品| 亚洲国产精品99久久久久久久久| 亚洲一区免费| 免费在线观看精品| 亚洲欧美日韩国产中文| 欧美伦理在线观看| 在线播放中文一区| 午夜久久影院| 亚洲理伦在线| 欧美成人激情视频免费观看| 国产日韩av高清| 亚洲综合日韩| 在线视频免费在线观看一区二区| 欧美不卡一卡二卡免费版| 黄色工厂这里只有精品| 欧美午夜不卡影院在线观看完整版免费 | 午夜欧美大片免费观看| 欧美日韩一区二区在线观看| 亚洲精品一区二区三区樱花| 美女网站久久| 久久免费精品视频| 韩国女主播一区| 久久野战av| 久久免费精品视频| 亚洲激情偷拍| 亚洲精品免费电影| 久久国产夜色精品鲁鲁99| 国产性天天综合网| 久久久青草青青国产亚洲免观| 亚洲欧美日韩中文播放| 狠狠色狠狠色综合| 免费91麻豆精品国产自产在线观看| 欧美一级网站| 在线免费观看一区二区三区| 欧美国产日韩一区| 欧美精品一卡二卡| 一区二区三区精品在线| 日韩视频在线永久播放| 欧美区在线播放| 亚洲一区在线免费观看| 一区二区日韩欧美| 亚洲已满18点击进入久久| 欧美日韩精品二区| 亚洲视频1区| 亚洲国产综合在线看不卡| 欧美成人精品1314www| 亚洲欧洲精品一区二区| 亚洲国产精品成人| 欧美劲爆第一页| 99国产麻豆精品| 亚洲精品视频在线看| 欧美亚洲专区| 亚洲理伦电影| 99精品国产99久久久久久福利| 欧美日韩二区三区| 亚洲一区二区在线播放| 亚洲免费一区二区| 国内精品久久久久久 | 亚洲欧美精品在线观看| 一区二区三区视频在线播放| 久久亚洲一区二区| 亚洲免费影院| 久久国产精品久久久久久| 一区二区三区在线看| 亚洲国产成人av好男人在线观看| 欧美激情五月| 午夜一区二区三区不卡视频| 久久精品国产亚洲精品| 99精品热视频| 久久久久99| 欧美激情第二页| 国产精品激情偷乱一区二区∴| 午夜精品免费| 蜜桃伊人久久| 欧美一级二区| 欧美~级网站不卡| 亚洲欧美怡红院| 久久婷婷激情| 亚洲欧美日韩综合aⅴ视频| 欧美一区二区三区四区在线观看地址 | 欧美日韩视频在线一区二区 | 亚洲精品国产系列| 国产精品99久久99久久久二8 | 999在线观看精品免费不卡网站| 亚洲视频精品| 亚洲激情婷婷| 亚洲精品乱码久久久久久黑人| 精品999在线观看| 亚洲天堂黄色| 亚洲精品看片| 欧美在线视屏| 亚洲一区二区三区乱码aⅴ| 欧美在线电影| 亚洲欧美一级二级三级| 欧美成人性生活| 亚洲在线视频| 欧美成黄导航| 久久一区欧美| 国产欧美一区二区精品秋霞影院 | 亚洲系列中文字幕| 亚洲久久在线| 美女被久久久| 欧美成人一区在线| 黄色一区二区在线观看| 亚洲激情专区| 夜夜狂射影院欧美极品| 久久亚洲免费| 免费在线看成人av| 国内精品一区二区三区| 亚洲欧美激情视频| 午夜精品影院在线观看| 欧美色精品天天在线观看视频 | 亚洲视频一二区| 亚洲人成小说网站色在线| 蜜臀va亚洲va欧美va天堂| 中文精品一区二区三区| 欧美日韩国产免费观看| 亚洲黄色免费网站| 亚洲国产免费| 欧美1区视频| 亚洲经典视频在线观看| 亚洲人成网站在线观看播放| 久久久久久久97| 母乳一区在线观看| 韩国成人福利片在线播放| 久久亚洲色图| 欧美国产精品va在线观看| 亚洲国产精品传媒在线观看| 久久一区二区三区四区五区| 欧美激情偷拍| 亚洲神马久久| 国产乱码精品一区二区三区av| 亚洲成色www8888| 国内精品久久久久国产盗摄免费观看完整版 | 久久精品水蜜桃av综合天堂| 亚洲午夜国产成人av电影男同| 久久综合九色综合欧美就去吻| 女生裸体视频一区二区三区 | 亚洲大片在线| 欧美激情va永久在线播放| 亚洲免费精品| 香蕉亚洲视频| 在线观看成人小视频| 欧美大胆人体视频| 一区二区福利| 久久久久久久久岛国免费| 伊人久久综合97精品| 你懂的视频一区二区| 亚洲免费av电影| 欧美影院在线播放| 亚洲国产婷婷| 国产精品理论片在线观看| 欧美一区二区三区四区在线观看| 蜜臀av国产精品久久久久| 这里是久久伊人| 国产精品一区视频| 男女精品网站| 亚洲欧美在线另类| 亚洲日本久久| 久久综合伊人77777麻豆| 一本大道久久a久久精二百| 国产欧美 在线欧美|