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

隨筆 - 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>
            久久五月婷婷丁香社区| 一区二区三区成人精品| 欧美黄色aaaa| 久久亚洲二区| 在线观看亚洲a| 亚洲青色在线| 欧美激情一二区| 亚洲激情视频在线| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产成人精品久久久国产成人一区| 欧美gay视频| 欧美国产视频在线| 亚洲国产影院| 亚洲一区二区动漫| 午夜在线a亚洲v天堂网2018| 欧美中在线观看| 欧美.日韩.国产.一区.二区| 欧美激情视频在线播放| 国产精品伦子伦免费视频| 好吊妞这里只有精品| 亚洲日本成人网| 欧美亚洲在线视频| 欧美r片在线| 亚洲视频图片小说| 久久久青草青青国产亚洲免观| 欧美激情欧美狂野欧美精品| 国产精品综合色区在线观看| 亚洲国产欧洲综合997久久| 中日韩视频在线观看| 久久久91精品国产一区二区精品| 欧美电影电视剧在线观看| 99国内精品| 久久久久青草大香线综合精品| 欧美伊人久久久久久午夜久久久久 | 亚洲欧美国产视频| 欧美激情一区| 欧美日韩精品在线视频| 国产欧美在线视频| 91久久久久久国产精品| 亚洲欧美日韩在线播放| 欧美电影免费观看| 亚洲一区二区成人| 欧美日韩国产成人| 亚洲国产99精品国自产| 久久av一区二区三区| 亚洲理论在线观看| 久久米奇亚洲| 国产日韩欧美一区二区三区在线观看| 亚洲精品在线视频观看| 久久五月天婷婷| 亚洲一区二区三区四区在线观看| 欧美国产三级| 在线欧美电影| 久久亚洲不卡| 亚洲欧美日韩国产一区二区| 欧美日韩一区精品| 亚洲精品永久免费| 亚洲区一区二| 欧美国产日韩一区二区| 欧美在线啊v一区| 国产精品一区二区三区久久| 亚洲香蕉在线观看| 亚洲人成免费| 欧美激情在线免费观看| 亚洲免费精品| 最新国产拍偷乱拍精品 | 欧美一级艳片视频免费观看| 亚洲伦理在线| 欧美日韩国产欧| 亚洲精品日韩一| 欧美大片免费| 欧美精品一区二区三区四区| 最新国产の精品合集bt伙计| 亚洲高清资源| 欧美精品日日鲁夜夜添| 亚洲美女免费精品视频在线观看| 免费久久99精品国产自| 久久漫画官网| 亚洲黄色在线观看| 亚洲精品视频在线观看免费| 欧美日韩国产在线播放| 午夜日韩在线| 欧美一区二区网站| 永久免费精品影视网站| 欧美xx视频| 欧美另类专区| 亚洲淫性视频| 香蕉久久夜色精品| 亚洲高清不卡| 一区二区三区你懂的| 久久综合亚洲社区| 亚洲专区在线| 亚洲欧美激情四射在线日 | 亚洲激情欧美激情| 欧美激情欧美狂野欧美精品| 欧美理论电影网| 午夜免费在线观看精品视频| 欧美一二三区精品| 亚洲破处大片| 午夜欧美不卡精品aaaaa| 伊人久久婷婷| 亚洲一区二区三区久久| 影音先锋日韩有码| 亚洲视频福利| 亚洲肉体裸体xxxx137| 亚洲一级二级| 91久久精品国产91久久| 亚洲特级片在线| 亚洲人久久久| 久久久国产视频91| 午夜视频在线观看一区二区三区| 久久精品在线免费观看| 亚洲欧美日产图| 欧美激情精品| 欧美成人一二三| 国产专区综合网| 在线亚洲自拍| 麻豆精品精品国产自在97香蕉| 久久久久久久91| 老巨人导航500精品| 久久精品卡一| 国产精品久久二区| 91久久精品国产91久久性色tv| 国产欧美欧洲在线观看| 这里只有视频精品| 一区二区三区黄色| 女人香蕉久久**毛片精品| 久久人91精品久久久久久不卡| 国产精品国产三级国产aⅴ浪潮| 亚洲国产美女精品久久久久∴| 国内欧美视频一区二区| 国产精品99久久久久久白浆小说| 99国产精品国产精品久久| 麻豆精品视频在线| 久久尤物视频| 在线欧美视频| 久久久精品999| 久久中文久久字幕| 国产亚洲欧美日韩一区二区| 亚洲自拍电影| 久久超碰97中文字幕| 国产乱码精品一区二区三| 亚洲免费在线看| 久久久久久久久久久成人| 国产伦精品一区二区三区免费迷| 亚洲视频一区二区免费在线观看| 宅男噜噜噜66一区二区 | 99这里只有精品| 一本色道精品久久一区二区三区 | 欧美电影免费观看高清| 亚洲国产二区| 9色精品在线| 亚洲视频日本| 欧美午夜一区二区三区免费大片| 最新成人av网站| 一区二区av| 国产精品美女主播| 欧美一区二区啪啪| 久久久亚洲精品一区二区三区| 黄色成人小视频| 麻豆精品网站| 一区二区三区鲁丝不卡| 欧美在线观看视频在线| 黄色资源网久久资源365| 老司机一区二区三区| 亚洲国内精品| 午夜在线观看免费一区| 影音先锋欧美精品| 欧美乱大交xxxxx| 性8sex亚洲区入口| 欧美国产视频日韩| 亚洲欧美日本日韩| 亚洲国产精品成人精品| 欧美日韩高清在线播放| 亚洲欧美日韩国产一区二区三区| 蜜臀91精品一区二区三区| 日韩亚洲视频| 韩国一区电影| 欧美四级电影网站| 裸体女人亚洲精品一区| 一区二区精品在线| 免费永久网站黄欧美| 国产精品99久久99久久久二8| 国产日韩欧美高清免费| 麻豆亚洲精品| 欧美一区二区精美| 亚洲国产日韩综合一区| 久久精品国产精品亚洲精品| 99v久久综合狠狠综合久久| 国产一区二区三区日韩| 欧美另类在线观看| 久久久久88色偷偷免费| aa级大片欧美| 亚洲欧洲日本专区| 乱码第一页成人| 欧美一区二区日韩一区二区| 亚洲激情一区二区| 精品成人国产| 国产日韩亚洲欧美精品| 欧美日韩精品系列|