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

隨筆 - 30  文章 - 67  trackbacks - 0
<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(8)

隨筆分類

隨筆檔案

文章檔案

收藏夾

Oops

搜索

  •  

積分與排名

  • 積分 - 86404
  • 排名 - 277

最新評論

閱讀排行榜

評論排行榜

給定九個(gè)數(shù),例如:1,3,3,5,6,7,8,8,9計(jì)算出這九個(gè)數(shù)的排列的種數(shù)。需要考慮重復(fù)情況,如果給定9個(gè)1,則只有一種結(jié)果。
限制:不能使用stl庫
要求:完成函數(shù) unsigned int foo(unsigned int *arr);
輸入算法代碼,并給出算法復(fù)雜度分析。

分析: 

#include <cstdlib>
#include <iostream>

using namespace std;
unsigned int foo(unsigned int *arr)
{
    unsigned int p[] ={1,2,6,24,120,720,5040,40320,362880};
    unsigned int i,j,c,s=p[8];//first the number is p99
    for(i = 0; i < 7; i++)
       for(j = i+1; j < 8; j++)
       {
           if(arr[i]>arr[j])  //swap two number
           {
               arr[i]^=arr[j];
               arr[j]^=arr[i];
               arr[i]^=arr[j];
           }   
       }   
    i = 0;
    c = 0;
    while(i<8)
    {
        j = i+1;
        while(arr[i]==arr[j])//compute the number of the repetition 
        {
            c++;   
            j++; 
        }   
        s/=p[c];
        c=0;
        i=j;
    }   
    return s;
}
  
int main()
{
    unsigned int a[]={1,3,3,5,6,7,8,8,9};
    cout<<"The number of permutation is: "<<foo(a)<<endl;
    system("pause");
    return 0;
}    
還可以改進(jìn)排序那部分。

轉(zhuǎn)一個(gè)經(jīng)典的題目:

給一個(gè)天平,問如何用3次把這個(gè)小球找出來
并且求出這個(gè)小球是比其他的輕還是重
將12個(gè)球分別編號(hào)為a1,a2,a3.......a10,a11,a12.
第一步:將12球分開3撥,每撥4個(gè),a1~a4第一撥,記為b1, a5~a8第2撥,記為b2,其余第3撥,記為b3;
第二步:將b1和b2放到天平兩盤上,記左盤為c1,右為c2;這時(shí)候分兩中情況:

1.c1和c2平衡,此時(shí)可以確定從a1到a8都是常球;然后把c2拿空,并從c1上拿下a4,從a9到a12四球里隨便取三球,假設(shè)為a9到a11,放到c2上。此時(shí)c1上是a1到a3,c2上是a9到a11。從這里又分三種情況:
     A:天平平衡,很簡單,說明沒有放上去的a12就是異球,而到此步一共稱了兩次,所以將a12隨便跟11個(gè)常球再稱一次,也就是第三次,馬上就可以確定a12是重還是輕;
     B:若c1上升,則這次稱說明異球?yàn)閍9到a11三球中的一個(gè),而且是比常球重。取下c1所有的球,并將a8放到c1上,將a9取下,比較a8和a11(第三次稱),如果平衡則說明從c2上取下的a9是偏重異球,如果不平衡,則偏向哪盤則哪盤里放的就是偏重異球;
     C:若c1下降,說明a9到a11里有一個(gè)是偏輕異球。次種情況和B類似,所以接下來的步驟照搬B就是;

2.c1和c2不平衡,這時(shí)候又分兩種情況,c1上升和c1下降,但是不管哪種情況都能說明a9到a12是常球。這步是解題的關(guān)鍵。也是這個(gè)題最妙的地方。
     A:c1上升,此時(shí)不能判斷異球在哪盤也不能判斷是輕還是重。取下c1中的a2到a4三球放一邊,將c2中的a5和a6放到c1上,然后將常球a9放到c2上。至此,c1上是a1,a5和a6,c2上是a7,a8和a9。此時(shí)又分三中情況:
         1)如果平衡,說明天平上所有的球都是常球,異球在從c1上取下a2到a4中。而且可以斷定異球輕重。因?yàn)閍5到a8都是常球,而第2次稱的時(shí)候c1是上升的,所以a2到a4里必然有一個(gè)輕球。那么第三次稱就用來從a2到a4中找到輕球。這很簡單,隨便拿兩球放到c1和c2,平衡則剩余的為要找球,不平衡則哪邊低則哪個(gè)為要找球;
         2)c1仍然保持上升,則說明要么a1是要找的輕球,要么a7和a8兩球中有一個(gè)是重球(這步懂吧?好好想想,很簡單的。因?yàn)閍9是常球,而取下的a2到a4肯定也是常球,還可以推出換盤放置的a5和a6也是常球。所以要么a1輕,要么a7或a8重)。至此,還剩一次稱的機(jī)會(huì)。只需把a(bǔ)7和a8放上兩盤,平衡則說明a1是要找的偏輕異球,如果不平衡,則哪邊高說明哪個(gè)是偏重異球;
         3)如果換球稱第2次后天平平衡打破,并且c1降低了,這說明異球肯定在換過來的a5和a6兩求中,并且異球偏重,否則天平要么平衡要么保持c1上升。確定要找球是偏重之后,將a5和a6放到兩盤上稱第3次根據(jù)哪邊高可以判定a5和a6哪個(gè)是重球;
     B:第1次稱后c1是下降的,此時(shí)可以將c1看成c2,其實(shí)以后的步驟都同A,所以就不必要再重復(fù)敘述了。至此,不管情況如何,用且只用三次就能稱出12個(gè)外觀手感一模一樣的小球中有質(zhì)量不同于其他11球的偏常的球。而且在稱的過程中可以判定其是偏輕還是偏重。

3.U2 合唱團(tuán)在17 分鐘內(nèi)得趕到演唱會(huì)場,途中必需跨過一座橋,四個(gè)人從橋的同一端出發(fā),你得幫助他們到達(dá)另一端,天色很暗,而他們只有一只手電筒。一次同時(shí)最多可以有兩人一起過橋,而過橋的時(shí)候必須持有手電筒,所以就得有人把手電筒帶來帶去,來回橋兩端。手電筒是不能用丟的方式來傳遞的。四個(gè)人的步行速度各不同,若兩人同行則以較慢者的速度為準(zhǔn)。Bono 需花1 分鐘過橋,Edge 需花2 分鐘過橋,Adam需花 5 分鐘過橋,Larry 需花10 分鐘過橋。他們要如何在17 分鐘內(nèi)過橋呢?(有個(gè)同濟(jì)的學(xué)生寫文章說他當(dāng)時(shí)在微軟面試時(shí)就是碰到了這道題,最短只能做出在19分鐘內(nèi)過橋,微軟的人對他講這樣的結(jié)果已經(jīng)是不錯(cuò)的了!) 
  A點(diǎn)到 B 點(diǎn)
 1 和2 過去 2 分鐘 2 
 2 過來 4 分鐘 2+2=4
10和 5過去 14 分鐘 4+10=14  
1 過來 15 分鐘 14+1=15  
1 和2 過去 17 分鐘 15+2=17

第一組  
  1.燒一根不均勻的繩,從頭燒到尾總共需要1個(gè)小時(shí)。現(xiàn)在有若干條材質(zhì)相同的繩子,問如何用燒繩的方法來計(jì)時(shí)一個(gè)小時(shí)十五分鐘呢?
       ans:三根繩,開始的時(shí)候,第一根點(diǎn)燃兩端,第二根點(diǎn)燃一端,第三根不點(diǎn)第一根繩燒完(30分鐘)后,點(diǎn)燃第二根繩的另一端,第二根只要15分鐘就可以燒完了,第二根繩燒完(45分鐘)后,點(diǎn)燃第三根繩子兩端,第三根繩燒完(1小時(shí)15分)后,計(jì)時(shí)完成

  2.你有一桶果凍,其中有黃色、綠色、紅色三種,閉上眼睛抓取同種顏色的兩個(gè)。抓取多少個(gè)就可以確定你肯定有兩個(gè)同一顏色的果凍?

  3.如果你有無窮多的水,一個(gè)3公升的提捅,一個(gè)5公升的提捅,兩只提捅形狀上下都不均勻,問你如何才能準(zhǔn)確稱出4公升的水?

  4.一個(gè)岔路口分別通向誠實(shí)國和說謊國。來了兩個(gè)人,已知一個(gè)是誠實(shí)國的,另一個(gè)是說謊國的。誠實(shí)國永遠(yuǎn)說實(shí)話,說謊國永遠(yuǎn)說謊話。現(xiàn)在你要去說謊國,但不知道應(yīng)該走哪條路,需要問這兩個(gè)人。請問應(yīng)該怎么問?

  5.12個(gè)球一個(gè)天平,現(xiàn)知道只有一個(gè)和其它的重量不同,問怎樣稱才能用三次就找到那個(gè)球。13個(gè)呢?(注意此題并未說明那個(gè)球的重量是輕是重,所以需要仔細(xì)考慮)

  6.在9個(gè)點(diǎn)上畫10條直線,要求每條直線上至少有三個(gè)點(diǎn)?

  7.在一天的24小時(shí)之中,時(shí)鐘的時(shí)針、分針和秒針完全重合在一起的時(shí)候有幾次?都分別是什么時(shí)間?你怎樣算出來的?

  8.怎么樣種植4棵樹木,使其中任意兩棵樹的距離相等?

  第二組  

  1.為什么下水道的蓋子是圓的?

  2.中國有多少輛汽車?

  3.將汽車鑰匙插入車門,向哪個(gè)方向旋轉(zhuǎn)就可以打開車鎖?

  4.如果你要去掉中國的34個(gè)省(含自治區(qū)、直轄市和港澳特區(qū)及臺(tái)灣省)中的任何一個(gè),你會(huì)去掉哪一個(gè),為什么?

  5.多少個(gè)加油站才能滿足中國的所有汽車?

  6.想象你站在鏡子前,請問,為什么鏡子中的影象可以顛倒左右,卻不能顛倒上下?

  7.為什么在任何旅館里,你打開熱水,熱水都會(huì)瞬間傾瀉而出?

  8.你怎樣將Excel的用法解釋給你的奶奶聽?

  9.你怎樣重新改進(jìn)和設(shè)計(jì)一個(gè)ATM銀行自動(dòng)取款機(jī)?

  10.如果你不得不重新學(xué)習(xí)一種新的計(jì)算機(jī)語言,你打算怎樣著手來開始?

  11.如果你的生涯規(guī)劃中打算在5年內(nèi)受到獎(jiǎng)勵(lì),那獲取該項(xiàng)獎(jiǎng)勵(lì)的動(dòng)機(jī)是什么?觀眾是誰?

  12.如果微軟告訴你,我們打算投資五百萬美元來啟動(dòng)你的投資計(jì)劃,你將開始什么樣商業(yè)計(jì)劃?為什么?

  13.如果你能夠?qū)⑷澜绲碾娔X廠商集合在一個(gè)辦公室里,然后告訴他們將被強(qiáng)迫做一件事,那件事將是什么? 

 

第三組  

  1.你讓工人為你工作7天,回報(bào)是一根金條,這個(gè)金條平分成相連的7段,你必須在每天結(jié)束的時(shí)候給他們一段金條。如果只允許你兩次把金條弄斷,你如何給你的工人付費(fèi)?

  2.有一輛火車以每小時(shí)15公里的速度離開北京直奔廣州,同時(shí)另一輛火車每小時(shí)20公里的速度從廣州開往北京。如果有一只鳥,以30公里每小時(shí)的速度和兩輛火車同時(shí)啟動(dòng),從北京出發(fā),碰到另一輛車后就向相反的方向返回去飛,就這樣依次在兩輛火車之間來回地飛,直到兩輛火車相遇。請問,這只鳥共飛行了多長的距離?

  3.你有四個(gè)裝藥丸的罐子,每個(gè)藥丸都有一定的重量,被污染的藥丸是沒被污染的藥丸的重量+1。只稱量一次,如何判斷哪個(gè)罐子的藥被污染了?

  4.門外三個(gè)開關(guān)分別對應(yīng)室內(nèi)三盞燈,線路良好,在門外控制開關(guān)時(shí)候不能看到室內(nèi)燈的情況,現(xiàn)在只允許進(jìn)門一次,確定開關(guān)和燈的對應(yīng)關(guān)系?

  5.人民幣為什么只有1、2、5、10的面值?

  6.你有兩個(gè)罐子以及50個(gè)紅色彈球和50個(gè)藍(lán)色彈球,隨機(jī)選出一個(gè)罐子, 隨機(jī)選出一個(gè)彈球放入罐子,怎么給出紅色彈球最大的選中機(jī)會(huì)?在你的計(jì)劃里,得到紅球的幾率是多少?

  7.給你兩顆6面色子,可以在它們各個(gè)面上刻上0-9任意一個(gè)數(shù)字,要求能夠用它們拼出任意一年中的日期數(shù)值

  第四組 

  第一題 . 五個(gè)海盜搶到了100顆寶石,每一顆都一樣大小和價(jià)值連城。他們決定這么分:

  抽簽決定自己的號(hào)碼(1、2、3、4、5)

  首先,由1號(hào)提出分配方案,然后大家表決,當(dāng)且僅當(dāng)超過半數(shù)的人同意時(shí),按照他的方案

  進(jìn)行分配,否則將被扔進(jìn)大海喂鯊魚

  如果1號(hào)死后,再由2號(hào)提出分配方案,然后剩下的4人進(jìn)行表決,當(dāng)且僅當(dāng)超過半數(shù)的人同

  意時(shí),按照他的方案進(jìn)行分配,否則將被扔入大海喂鯊魚

  依此類推

  條件:每個(gè)海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。

  問題:第一個(gè)海盜提出怎樣的分配方案才能使自己的收益最大化?

  第二題 . 一道關(guān)于飛機(jī)加油的問題,已知:

  每個(gè)飛機(jī)只有一個(gè)油箱,

  飛機(jī)之間可以相互加油(注意是相互,沒有加油機(jī))

  一箱油可供一架飛機(jī)繞地球飛半圈,

  問題:

  為使至少一架飛機(jī)繞地球一圈回到起飛時(shí)的飛機(jī)場,至少需要出動(dòng)幾架飛機(jī)?(所有飛機(jī)從同一機(jī)場起飛,而且必須安全返回機(jī)場,不允許中途降落,中間沒有飛機(jī)場)第三題. 汽車加油問題  

  一輛載油500升的汽車從A開往1000公里外的B,已知汽車每公里耗油量為1升,A處有無窮多的油,其他任何地點(diǎn)都沒有油,但該車可以在任何地點(diǎn)存放油以備中轉(zhuǎn),問從A到B最少需要多少油

  第四題. 擲杯問題

  一種杯子,若在第N層被摔破,則在任何比N高的樓層均會(huì)破,若在第M層不破,則在任何比M低的樓層均會(huì)破,給你兩個(gè)這樣的杯子,讓你在100層高的樓層中測試,要求用最少的測試次數(shù)找出恰巧會(huì)使杯子破碎的樓層。

  第五題. 推理游戲

  教授選出兩個(gè)從2到9的數(shù),把它們的和告訴學(xué)生甲,把它們的積告訴學(xué)生乙,讓他們輪流猜這兩個(gè)數(shù)

  甲說:“我猜不出”

  乙說:“我猜不出”

  甲說:“我猜到了”

  乙說:“我也猜到了”

  問這兩個(gè)數(shù)是多少

  第六題. 病狗問題

  一個(gè)住宅區(qū)內(nèi)有100戶人家,每戶人家養(yǎng)一條狗,每天傍晚大家都在同一個(gè)地方遛狗。已知這些狗中有一部分病狗,由于某種原因,狗的主人無法判斷自己的狗是否是病狗,卻能夠分辨其他的狗是否有病,現(xiàn)在,上級(jí)傳來通知,要求住戶處決這些病狗,并且不允許指認(rèn)他人的狗是病狗(就是只能判斷自己的),過了7天之后,所有的病狗都被處決了,問,一共有幾只病狗?為什么?

  第八題. 監(jiān)獄里有100個(gè)房間,每個(gè)房間內(nèi)有一囚犯。一天,監(jiān)獄長說,你們獄房外有一電燈,你們在放風(fēng)時(shí)可以控制這個(gè)電燈(熄或亮)。每天只能有一個(gè)人出來放風(fēng),并且防風(fēng)是隨機(jī)的。如果在有限時(shí)間內(nèi),你們中的某人能對我說:“我敢保證,現(xiàn)在每個(gè)人都已經(jīng)至少放過一次風(fēng)了。”我就放了你們!問囚犯們要采取什么策略才能被監(jiān)獄長放掉?如果采用了這種策略,大致多久他們可以被釋放?

 

第五組  

  1.某手機(jī)廠家由于設(shè)計(jì)失誤,有可能造成電池壽命比原來設(shè)計(jì)的壽命短一半(不是沖放電時(shí)間),解決方案就是免費(fèi)更換電池或給50元購買該廠家新手機(jī)的折換券。請給所有已購買的用戶寫信告訴解決方案。

  2.一高層領(lǐng)導(dǎo)在參觀某博物館時(shí),向博物館館員小王要了一塊明代的城磚作為紀(jì)念,按國家規(guī)定,任何人不得將博物館收藏品變?yōu)樗接小2┪镳^館長需要如何寫信給這位領(lǐng)導(dǎo),將城磚取回。

  3.營業(yè)員小姐由于工作失誤,將2萬元的筆記本電腦以1.2萬元錯(cuò)賣給李先生,王小姐的經(jīng)理怎么寫信給李先生試圖將錢要回來?

  4.給你一款新研制的手機(jī),如果你是測試組的組長,你會(huì)如何測試?

  5.如何為函數(shù)int atoi(const char * pstr)編寫測試向量?

  第六組  

  1.鏈表和數(shù)組的區(qū)別在哪里?

  2.編寫實(shí)現(xiàn)鏈表排序的一種算法。說明為什么你會(huì)選擇用這樣的方法?

  3.編寫實(shí)現(xiàn)數(shù)組排序的一種算法。說明為什么你會(huì)選擇用這樣的方法?

  4.請編寫能直接實(shí)現(xiàn)char * strcpy(char * pstrDest,const char * pstrSource)函數(shù)功能的代碼。

  5.編寫反轉(zhuǎn)字符串的程序,要求優(yōu)化速度、優(yōu)化空間。

  6.在鏈表里如何發(fā)現(xiàn)循環(huán)鏈接?

  7.給出洗牌的一個(gè)算法,并將洗好的牌存儲(chǔ)在一個(gè)整形數(shù)組里。

  8.寫一個(gè)函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。(或者:怎樣只用4行代碼

  9.給出一個(gè)函數(shù)來輸出一個(gè)字符串的所有排列。

  10.請編寫實(shí)現(xiàn)void * malloc(int)內(nèi)存分配函數(shù)功能一樣的代碼。

  11.給出一個(gè)函數(shù)來復(fù)制兩個(gè)字符串A和B。字符串A的后幾個(gè)字節(jié)和字符串B的前幾個(gè)字節(jié)重疊。

  12.怎樣編寫一個(gè)程序,把一個(gè)有序整數(shù)數(shù)組放到二叉樹中?

  13.怎樣從頂部開始逐層打印二叉樹結(jié)點(diǎn)數(shù)據(jù)?請編程。

  14.怎樣把一個(gè)鏈表掉個(gè)順序(也就是反序,注意鏈表的邊界條件并考慮空鏈表)? --

  15.請編寫能直接實(shí)現(xiàn)int atoi(const char * pstr)函數(shù)功能的代碼

-----------------------------------------------------------------------------------
第一組題答案: 

  
  2)根據(jù)抽屜原理,4個(gè)

  3)3升裝滿;3升-〉5升(全注入);3升裝滿;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升裝滿;3升-〉5升;完成(另:可用回溯法編程求解)

  4)問其中一人:另外一個(gè)人會(huì)說哪一條路是通往誠實(shí)國的?回答者所指的那條路必然是通往說謊國的。

  5)12個(gè)球:

  第一次:4,4 如果平了:

  那么剩下的球中取3放左邊,取3個(gè)好球放右邊,稱:

  如果左邊重,那么取兩個(gè)球稱一下,哪個(gè)重哪個(gè)是次品,平的話第三個(gè)重,是次品,輕的話同理

  如果平了,那么剩下一個(gè)次品,還可根據(jù)需要稱出次品比正品輕或者重

  如果不平:

  那么不妨設(shè)左邊重右邊輕,為了便于說明,將左邊4顆稱為重球,右邊4顆稱為輕球,剩下4顆稱為好球

  取重球2顆,輕球2顆放在左側(cè),右側(cè)放3顆好球和一顆輕球

  如果左邊重

  稱那兩顆重球,重的一個(gè)次品,平的話右邊輕球次品

  如果右邊重

  稱左邊兩顆輕球,輕的一個(gè)次品

  如果平

  稱剩下兩顆重球,重的一個(gè)次品,平的話剩下那顆輕球次品

  13個(gè)球:

  第一次:4,4,如果平了

  剩5顆球用上面的方法仍舊能找出次品,只是不能知道次品是重是輕

  如果不平,同上 

6)  

  o o o

  o o o

  o o o

  7)

  23次,因?yàn)榉轴樢D(zhuǎn)24圈,時(shí)針才能轉(zhuǎn)1圈,而分針和時(shí)針重合兩次之間的間隔顯然>1小時(shí),它們有23次重合機(jī)會(huì),每次重合中秒針有一次重合機(jī)會(huì),所以是23次

  重合時(shí)間可以對照手表求出,也可列方程求出

  8)

  在地球表面種樹,做一個(gè)地球內(nèi)接的正四面體,內(nèi)接點(diǎn)即為所求

  第二組 無標(biāo)準(zhǔn)答案  

  第三組 

  1. 分成1,2,4三段,第一天給1,第二天給2取回1,第3天給1,第4天給4取回1、2,第5天給1,第6天給2取回1,第七天給1

  2. 求出火車相遇時(shí)間,鳥速乘以時(shí)間就是鳥飛行的距離

  3. 四個(gè)罐子中分別取1,2,3,4顆藥丸,稱出比正常重多少,即可判斷出那個(gè)罐子的藥被污染

  4. 三個(gè)開關(guān)分別:關(guān),開,開10分鐘,然后進(jìn)屋,暗且涼的為開關(guān)1控制的燈,亮的為開關(guān)2控制的燈,暗且熱的為開關(guān)3控制的燈

  5. 因?yàn)榭梢杂?,2,5,10組合成任何需要的貨幣值,日常習(xí)慣為10進(jìn)制

  6. 題意不理解...*_*

  7. 012345 0126(9)78

  第四組 都是很難的題目  

  第一題:97 0 1 2 0 或者 97 0 1 0 2 (提示:可用逆推法求出)

  第二題:3架飛機(jī)5架次,飛法:

  ABC 3架同時(shí)起飛,1/8處,C給AB加滿油,C返航,1/4處,B給A加滿油,B返航,A到達(dá)1/2處,C從機(jī)場往另一方向起飛,3/4處,C同已經(jīng)空油箱的A平分剩余油量,同時(shí)B從機(jī)場起飛,AC到7/8處同B平分剩余油量,剛好3架飛機(jī)同時(shí)返航。所以是3架飛機(jī)5架次。第三題:需要建立數(shù)學(xué)模型  

  (提示,嚴(yán)格證明該模型最優(yōu)比較麻煩,但確實(shí)可證,大膽猜想是解題關(guān)鍵)

  題目可歸結(jié)為求數(shù)列 an=500/(2n+1) n=0,1,2,3......的和Sn什么時(shí)候大于等于1000,解得n>6

  當(dāng)n=6時(shí),S6=977.57

  所以第一個(gè)中轉(zhuǎn)點(diǎn)離起始位置距離為1000-977.57=22.43公里

  所以第一次中轉(zhuǎn)之前共耗油 22.43*(2*7+1)=336.50升

  此后每次中轉(zhuǎn)耗油500升

  所以總耗油量為7*500+336.50=3836.50升

  第四題:需要建立數(shù)學(xué)模型

  題目可歸結(jié)為求自然數(shù)列的和S什么時(shí)候大于等于100,解得n>13

  第一個(gè)杯子可能的投擲樓層分別為:14,27,39,50,60,69,77,84,90,95,99,100

  第五題:3和4(可嚴(yán)格證明)

  設(shè)兩個(gè)數(shù)為n1,n2,n1>=n2,甲聽到的數(shù)為n=n1+n2,乙聽到的數(shù)為m=n1*n2

  證明n1=3,n2=4是唯一解

  證明:要證以上命題為真,不妨先證n=7

  1)必要性:

  i) n>5 是顯然的,因?yàn)閚<4不可能,n=4或者n=5甲都不可能回答不知道

  ii) n>6 因?yàn)槿绻鹡=6的話,那么甲雖然不知道(不確定2+4還是3+3)但是無論是2,4還是3,3乙都不可能說不知道(m=8或者m=9的話乙說不知道是沒有道理的)

  iii) n<8 因?yàn)槿绻鹡>=8的話,就可以將n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要條件是x=6即n=10,那樣n又可以分解成8+2,所以總之當(dāng)n>=8時(shí),n至少可以分解成兩種不同的合數(shù)之和,這樣乙說不知道的時(shí)候,甲就沒有理由馬上說知道。

  以上證明了必要性

  2)充分性

  當(dāng)n=7時(shí),n可以分解成2+5或3+4

  顯然2+5不符合題意,舍去,容易判斷出3+4符合題意,m=12,證畢

  于是得到n=7 m=12 n1=3 n2=4是唯一解。第六題:7只(數(shù)學(xué)歸納法證明)  

  1)若只有1只病狗,因?yàn)椴」分魅丝床坏接衅渌」罚厝粫?huì)知道自己的狗是病狗(前提是一定存在病狗),所以他會(huì)在第一天把病狗處決。

  2)設(shè)有k只病狗的話,會(huì)在第k天被處決,那么,如果有k+1只,病狗的主人只會(huì)看到k只病狗,而第k天沒有人處決病狗,病狗主人就會(huì)在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被處決

  3)由1)2)得,若有n只病狗,必然在第n天被處決

  第八題:

  約定好一個(gè)人作為報(bào)告人(可以是第一個(gè)放風(fēng)的人)

  規(guī)則如下:

  1、報(bào)告人放風(fēng)的時(shí)候開燈并數(shù)開燈次數(shù)

  2、其他人第一次遇到開著燈放風(fēng)時(shí),將燈關(guān)閉

  3、當(dāng)報(bào)告人第100次開燈的時(shí)候,去向監(jiān)獄長報(bào)告,要求監(jiān)獄長放人......

  按照概率大約30年后(10000天)他們可以被釋放

  第五組無標(biāo)準(zhǔn)答案  

  第六組部分題參考答案:  

  4.

char * strcpy(char * pstrDest,const char * pstrSource)
{
 assert((pstrDest!=NULL)&&(pstrSource!=NULL)); 
 char * pstr=pstrDest;
 while((*(pstrDest++)=*(pstrSource++))!='\0');
        return pstr;
}
 


  5.

char * strrev(char * pstr)
{
 assert(pstr!=NULL);
 
 char * p=pstr;
 char * pret=pstr;
 while(*(p++)!='\0');
 p--;
 char tmp;
 while(p>pstr)
 {
  tmp=*p;
  *(p--)=*(pstr);
  *(pstr++)=tmp;  
 }
 return pret;

百度筆試題:
IP段格式:ip1 ip2。之間以空格分開,ip形式為X.X.X.X,數(shù)據(jù)保存在文件中,文件不超過2k行,無序。現(xiàn)在要求編寫算法去掉可重IP,可重有三種形式:包含、交疊、緊靠。

例如,文件內(nèi)容為:
10.0.0.0 10.0.0.12
10.0.0.5 10.0.0.10    ( <= 包含)
10.0.0.8 10.0.0.15    ( <= 交疊)
10.0.0.15 10.0.0.24   ( <= 緊靠)

最后輸出為:
10.0.0.0 10.0.0.24

code:
/*
**這個(gè)函數(shù)的作用是將文件中的一行對應(yīng)的兩個(gè)數(shù)據(jù)轉(zhuǎn)換成整形的數(shù)據(jù)
**比如把10.0.0.0 10.0.0.12 轉(zhuǎn)換后,left=10*224,就是10.0.0.0對應(yīng)的整數(shù),每個(gè)數(shù)字對應(yīng)8位,right=left+12
*/
void ParseLine( char line[], size_t length, unsigned int &left, unsigned int &right)
{
    size_t i;
    for( i=0; i<length; i++ )
    {
        if ( line[i]=='.' || line[i]==' ' )//將點(diǎn)變成0
        {
            line[i]=0;
        }
    }
    char *p   = (char*)&left;
    char *num = line;
    for( i=3; i<4; --i ) //size是size_t,而size_t是unsigned int,所以i=0再自減后變成了最大的整數(shù),循環(huán)就會(huì)終止
    {
 // cout<<i<<",";
        *(p+i) = strtol( num, &num  ,10 );
        cout<<static_cast<int>(*(p+i))<<",";
        ++num;
 // cout<<num<<":";
    }
    cout<<endl;
    p = (char*)&right;
    for( i=3; i<4; --i )
    {
        *(p+i) = strtol( num, &num, 10 );
        ++num;
    }
}


void UniqueSequence(  vector<unsigned int> & uSeq, unsigned int left, unsigned int right )
{
    size_t i, lPos=-1, rPos=-1;
    for( i=0; i<uSeq.size(); i++ )
    {
        if( left <= uSeq.at(i)  )
        {
            lPos = i;
            break;
        }
    }
    for( ;i<uSeq.size(); i++ )
    {
        if( right<=uSeq.at(i) )
        {
            rPos=i;
            break;
        }
    }
    if( lPos == -1 )
    {
        uSeq.push_back( left );
        uSeq.push_back( right );   
        return;
    }

    if( lPos%2 == 0 )
    {
        if(  uSeq.at(lPos)==left )
        {   
        }
  else
        {
            uSeq.insert( uSeq.begin()+lPos, left );
        }
    }
 else
    {
        --lPos;
    }
    if( rPos == -1 )
    {
        uSeq.erase( uSeq.begin()+(lPos+1), uSeq.end() );
        uSeq.push_back(right);
    }
 else if(  rPos%2 == 0  )
    {
        if( uSeq.at(rPos)== right )
        {
            uSeq.erase( uSeq.begin()+(lPos+1), uSeq.begin()+(rPos+1) );
        }
  else
        {
            uSeq.erase( uSeq.begin()+(lPos+1), uSeq.begin()+rPos );
            uSeq.insert( uSeq.begin()+rPos, right  );
        }
    }
 else
    {
        uSeq.erase( uSeq.begin()+(lPos+1), uSeq.begin()+rPos );
    }
}


void PrintIP( unsigned int num )
{
    char *p = (char*)&num;
    for( size_t i=3;i>0; --i)
    {
        cout<< (int)p[i]<<".";
    }
    cout<<(int)p[0];
}

#define MAX_BUFFER_LENGTH 100
int main()
{
    unsigned int left, right;
    char buffer[MAX_BUFFER_LENGTH];
    ifstream infile( "test.txt" );
    if( infile.fail() )
    {
        return 0;
    }
    vector<unsigned int> uSeq;
    while( infile.getline(buffer, MAX_BUFFER_LENGTH) )
    {
        ParseLine(buffer, strlen(buffer), left, right);
 // cout<<left<<","<<right<<endl;
        UniqueSequence( uSeq, left, right );
  for( size_t i=0; i<uSeq.size(); i+=2 )
    {
        PrintIP(uSeq.at(i) );
        cout<<"  ";
        PrintIP(uSeq.at(i+1));
        cout<<endl;
    }
  cout<<endl;
    }
    for( size_t i=0; i<uSeq.size(); i+=2 )
    {
        PrintIP(uSeq.at(i) );
        cout<<"  ";
        PrintIP(uSeq.at(i+1));
        cout<<endl;
    }
    return 0;
}

/*long strtol( const char *nptr, char **endptr, int base ),其中nptr是以NULL結(jié)尾字符串,endptr是字符串停止掃描的地方(Pointer to character that stops scan),strtol returns the value represented in the string nptr,The strtol function converts nptr to a long. strtol stops reading the string nptr at the first character it cannot recognize as part of a number. This may be the terminating null character, or it may be the first numeric character greater than or equal to base.
string = "-10110134932This stopped it";
  l = strtol( string, &stopstring, 10 );
  printf( "string = %s", string );
  printf("   strtol = %ld", l );
  printf("   Stopped scan at: %s", stopstring );
  string = "10110134932";
  printf( "string = %s\n", string );
  /* Convert string using base 2, 4, and 8: */
  for( base = 2; base <= 8; base *= 2 )
  {
     /* Convert the string: */
     ul = strtoul( string, &stopstring, base );
     printf( "   strtol = %ld (base %d)\n", ul, base );
     printf( "   Stopped scan at: %s\n", stopstring );
  }
打印的結(jié)果是:
string = -10110134932This stopped it   strtol = -2147483647   Stopped scan at: This stopped itstring = 10110134932
  strtol = 45 (base 2)
  Stopped scan at: 34932
  strtol = 4423 (base 4)
  Stopped scan at: 4932
  strtol = 2134108 (base 8)
  Stopped scan at: 932
*/

5.如果存在兩個(gè)變量:a和b,不使用“if”、“?:”、 “switch”和其它的判斷語句,找出兩個(gè)數(shù)中的最大值。
      答案:( ( a + b ) + abs( a - b ) ) / 2

6. 寫一個(gè)函數(shù)找出一個(gè)整數(shù)數(shù)組中,第二大的數(shù) (microsoft)
       const int MINNUMBER = -32767 ;
       int find_sec_max( int data[] , int count)
       {
                int maxnumber = data[0] ;
                int sec_max = MINNUMBER ;
                for ( int i = 1 ; i < count ; i++)
                {
                    if ( data[i] > maxnumber )
                    {
                         sec_max = maxnumber ;
                         maxnumber = data[i] ;
                    }
                    else
                    {
                             if ( data[i] > sec_max )
                                     sec_max = data[i] ;
                    }
                }
                return sec_max ;
        }

posted on 2011-03-09 08:04 Cunch 閱讀(903) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩视频在线你懂得| 国产精品嫩草影院一区二区 | 午夜一区在线| 国产伦精品一区二区三区高清版| 亚洲欧美日韩一区二区三区在线观看| 一本色道久久综合精品竹菊| 国产精品久久久久久久久久久久 | 久久人人爽爽爽人久久久| 亚洲午夜激情| 亚洲日本中文字幕| 亚洲经典一区| 欧美视频不卡中文| 久久er精品视频| 久久久久久综合| 亚洲美女av黄| 午夜精品久久一牛影视| 在线观看不卡av| 99国内精品久久| 国产一区二区成人| 欧美激情国产日韩| 欧美午夜一区二区| 久久综合一区| 欧美日韩一区二区国产| 久久精品国产99| 欧美极品aⅴ影院| 欧美主播一区二区三区美女 久久精品人 | 性欧美1819sex性高清| 久久久久久久网站| 亚洲午夜国产成人av电影男同| 性亚洲最疯狂xxxx高清| 日韩视频一区二区三区| 午夜精品av| 一区二区久久久久| 久久精品国产亚洲精品| 一区二区三区日韩欧美| 久久久精品久久久久| 亚洲一区二区三区四区视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲丝袜av一区| 另类酷文…触手系列精品集v1小说| 亚洲一区二区视频| 欧美高清视频一区二区| 久久亚洲精品一区| 国产精品亚洲成人| 亚洲精选大片| 亚洲欧洲日本国产| 久久精品女人| 久久不射中文字幕| 国产精品盗摄一区二区三区| 亚洲国产清纯| 91久久精品一区二区别| 久久精品国产免费看久久精品| 午夜精彩视频在线观看不卡| 欧美全黄视频| 亚洲欧洲在线视频| 91久久午夜| 久久综合中文| 久久综合图片| 亚洲第一搞黄网站| 久久夜色精品亚洲噜噜国产mv| 久久九九99视频| 国产色爱av资源综合区| 亚洲欧美日韩直播| 久久av老司机精品网站导航| 国产精品视频你懂的| 亚洲性av在线| 久久av在线看| 国产视频一区在线观看一区免费| 国产手机视频精品| 欧美成人高清视频| 精品不卡视频| 久久久精品国产一区二区三区| 久久久久久综合| 激情综合自拍| 免费的成人av| 亚洲精品美女91| 亚洲尤物在线视频观看| 国产精品久久久久久一区二区三区| 在线一区日本视频| 性欧美18~19sex高清播放| 国产模特精品视频久久久久| 欧美在线观看网址综合| 男女精品视频| 一区二区三区久久网| 国产精品久久久久久久久果冻传媒 | 一区二区三区欧美激情| 亚洲欧美在线另类| 国产在线乱码一区二区三区| 久久人91精品久久久久久不卡| 亚洲电影免费在线| 亚洲欧美日本另类| 黄色成人av网站| 久久久中精品2020中文| 亚洲欧洲日本专区| 久久超碰97中文字幕| 亚洲日本免费| 国产主播一区二区三区| 欧美精品亚洲二区| 欧美一区网站| 艳女tv在线观看国产一区| 久久久久这里只有精品| 一区二区三区www| 激情五月综合色婷婷一区二区| 欧美激情在线狂野欧美精品| 欧美在线free| 亚洲视频免费在线观看| 欧美sm重口味系列视频在线观看| 亚洲永久在线观看| 亚洲区在线播放| 国产一级精品aaaaa看| 欧美揉bbbbb揉bbbbb| 欧美va日韩va| 久久精品国产亚洲aⅴ| 亚洲视频一区二区免费在线观看| 久久精品视频网| 久久av在线| 久久一区二区三区av| av不卡在线看| 欧美在线中文字幕| 欧美视频免费在线| 欧美韩日亚洲| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品日韩精品| 宅男噜噜噜66国产日韩在线观看| 香蕉久久久久久久av网站| 欧美日韩和欧美的一区二区| 亚洲欧美国产视频| 亚洲国产日韩欧美在线99| 亚洲欧美日韩天堂一区二区| 亚洲精选中文字幕| 国产日韩精品视频一区| 欧美本精品男人aⅴ天堂| 这里只有精品视频| 中文日韩在线| 亚洲午夜精品久久久久久app| 国产一二三精品| 日韩一级精品视频在线观看| 国产精品欧美日韩| 国产精品成人播放| 久久综合五月| 久久久久9999亚洲精品| 亚洲视频在线观看视频| 精品动漫3d一区二区三区免费| 欧美日韩免费区域视频在线观看| 亚洲欧美日韩国产成人精品影院| 欧美成人免费在线| 性一交一乱一区二区洋洋av| 久久gogo国模啪啪人体图| 99v久久综合狠狠综合久久| 1024亚洲| 在线免费高清一区二区三区| 欧美激情免费在线| 免费永久网站黄欧美| 欧美影院成年免费版| 免费成人av| 亚洲欧洲综合| 亚洲国产精品久久人人爱蜜臀| 久久人人97超碰国产公开结果| 韩国视频理论视频久久| 一区精品久久| 国产一区二区三区免费观看| 国产精品国产自产拍高清av王其| 男人的天堂亚洲在线| 久久久亚洲综合| 久久久精品一品道一区| 欧美一级大片在线免费观看| 中文欧美字幕免费| 91久久久久久| 亚洲人成人一区二区三区| 免费观看一级特黄欧美大片| 久久婷婷久久一区二区三区| 欧美国产综合视频| 欧美国产在线观看| 亚洲国产一区二区在线| 欧美大片一区二区| 一本一本久久| 亚洲夫妻自拍| 亚洲国产日日夜夜| 最新精品在线| 99视频在线精品国自产拍免费观看| 亚洲国产一区二区三区高清| 亚洲欧美韩国| 欧美国产三级| 日韩午夜三级在线| 亚洲色图综合久久| 欧美激情国产日韩精品一区18| 欧美国产视频在线| 欧美涩涩网站| 国产在线视频欧美| 性欧美videos另类喷潮| 久久久久久久一区二区| 欧美va亚洲va国产综合| 欧美一区综合| 一区二区三区视频在线| 亚洲欧美国产精品桃花| 久久这里有精品15一区二区三区| 开心色5月久久精品| 欧美日韩中文字幕精品| 国产日韩一区二区三区在线| 亚洲经典在线|