POJ

2016大數(shù)據(jù)研究中心夏令營上機考試

2016年北京大學(xué)計算機科學(xué)技術(shù)研究所優(yōu)秀大學(xué)生夏令營上機考試

12推免

  1. 石頭剪刀布
  2. 最簡真分?jǐn)?shù)
include<algorithm>
__gcd(a,b);
  1. encode decode 字符串的處理
  2. 大數(shù)牛哺,進(jìn)制轉(zhuǎn)換,unsolved
  3. 8數(shù)碼問題劳吠,和之前做的BFS不同的是引润,要存儲每一種可能的系統(tǒng)狀態(tài)
struct Node
{
    int s[9];
    int loc;//“0”的位置,把“x"當(dāng)0
    int status;//康拖展開的hash值
    string path;//路徑 更新:next.path=next.path+indexs[i];
};
  1. 熱血格斗場 和冷血格斗場要求不一樣
  2. 畫家問題 重復(fù)題不能用BFS
  3. 三角形 重復(fù)題,從下往上
  4. Lausanne Capitale Olympique no answer

13推免(校外)

  1. 十進(jìn)制轉(zhuǎn)六進(jìn)制痒玩,無oj
  2. 電池的壽命淳附,找規(guī)律
    令最大壽命為x议慰,其余壽命和為sum,若sum>x奴曙,則可以全部用完 ans=(sum+x)/2
    否則 只能用sum的壽命
if(2*x[n-1]>ans)
         ans-=x[n-1];
else ans*=0.5;
  1. 重建二叉樹
typedef struct node
  1. 完美覆蓋别凹,遞推關(guān)系的尋找
f(n)=3f(n-2)+2[f(n-4)+...f(0)]
f(n-2)=3f(n-4)+2[f(n-6)+...f(0)]
thus: f(n)=4f(n-2)-f(n-4)
f(0)=1, f(2)=3;
  1. 去掉冗余的括號,兩個標(biāo)準(zhǔn):括號前是否是負(fù)號洽糟、括號里面是否有操作符號
  2. 坦克大戰(zhàn)炉菲,done
  3. sightseeing,混合圖歐拉路徑的判定...
  4. poyla計數(shù)坤溃,項鏈涂色問題
//背代碼
(long long)(pow(3.0,tmp*1.0));//格式為long long拍霜,3.0

13推免(校內(nèi))

  1. 字符串插入,沒有說怎么結(jié)尾薪介,讀入方式就是:while(cin>>a>>b)
  2. 書架祠饺,臨界條件sum>=b
  3. 最長子序列,動態(tài)規(guī)劃
if(a[j]<a[i]&&b[j]+1>b[i])
         b[i]=b[j]+1;//b[i]從1開始
  1. 尋找正方形變量和復(fù)雜度都會影響運行時間
//先排序再查找
void *bsearch(const void *key, const void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));
eg. (point_type*) bsearch ((const void*) key...)
//key指向所要查找的元素昭灵,base指向進(jìn)行查找的數(shù)組
//nmem為查找長度吠裆,一般為數(shù)組長度
//size為每個元素所占的字節(jié)數(shù)伐谈,一般用sizeof(...)表示烂完,comp指向比較子函數(shù)
int compare(const void* e1,const void* e2)
{
    const point_type* p1=(const point_type*) e1;
    const point_type* p2=(const point_type*) e2;
    if (p1->x!=p2->x)//先比較x
        return p1->x-p2->x;
    else//x相同就比較y
        return p1->y-p2->y;
}
//cmp的寫法
qsort(p,n,sizeof(point_type),compare);
//qsort寫法
key->x=x2+y1-y2;
key->y=y2+x2-x1;
//只往一個方向上找,

13夏令營

  1. map诵棵,冷血格斗場輸入的id沒有從小大的順序
  2. 上臺階抠蚣,斐波那契數(shù)列
  3. 線段樹,二分履澳,數(shù)字大的用scanf否則易超時嘶窄! POJ3264
#include<algorithm>  max(a,b);
struct node//用來記錄每個葉結(jié)點,之所以不用指針是因為用tree[num]來記錄每個結(jié)點了(樹不需要動態(tài)操作所以可以這么用)
{
    int l;
    int r;
    int max;
    int min;
};
//用全局變量來記錄最大值
int findmax(int l,int r,int ceng)//層是tree[num]的編號
  1. 數(shù)獨距贷,DFS柄冲,用grid[num][1-9]來標(biāo)記是否已經(jīng)用了這個數(shù)字 POJ2676
  2. 3D迷宮BFS
  3. 數(shù)字三角形,遞歸忠蝗。
if(map[i+1][j]>map[i+1][j+1])
                map[i][j]=map[i+1][j]+map[i][j];
            else
                map[i][j]=map[i+1][j+1]+map[i][j];
  1. 最小生成樹 上下限的設(shè)置
  2. 增廣方法求最大流 POJ1273
map和min_flow是全局變量现横,pre和flow在尋找每一條增廣路徑時更新,

14推免

  1. 單詞倒排
  2. DNA排序阁最,struct戒祠,qsort,count
  3. 踩方格速种,DFS深度優(yōu)先姜盈,回溯
  4. 走迷宮找最短路徑,BFS廣度優(yōu)先
  5. 二維背包問題
for(i=0;i<c;i++)
    {
        cin>>temp1>>temp2;
        for(j=a;j>=temp1;j--)
        {
            for(k=b;k>=temp2;k--)
            {
                if(dp[j][k]<dp[j-temp1][k-temp2]+1)
                    dp[j][k]=dp[j-temp1][k-temp2]+1;//個數(shù)+1
            }
        }
         //dp:精靈球數(shù)量配阵,體力值——小精靈的個數(shù)
    }
  1. 套匯馏颂,F(xiàn)loyed
map<string,int>STL; 
dist[i][i]=1; //自己到自己初始為1
dist[i][j] < dist[i][k] * dist[k][j];//更新條件
  1. trie樹示血,對樹的操作:
void clean ()
      root->next[i]=NULL;
void delete(root)
{
      if(root->next[i])
            delete(root->next[i]);
      free(root);
}
pnode p1= (pnode)malloc(sizeof(node));//生成結(jié)點
typedef struct node//結(jié)構(gòu)定義
{
      struct node *next[10];//0~9
      int end,cover;
}*pnode;

14夏令營

  1. 人民幣支付,水
  2. 排隊游戲救拉,類似POJ對括號的處理輸入不一定是()!!!
  3. 取石子游戲矾芙,巨坑!要么用a/b>=2近上, 要么用long long a,b;
  4. 去除注釋剔宪,cin.getline(s,200) 之后對字符的處理、多種情況的考慮沒有測試
  5. 求逆序數(shù)對即是求歸并排序的交換次數(shù)壹无,背代碼
  6. 坦克大戰(zhàn)葱绒,BFS的處理map越界!
  7. 背包問題斗锭,
d[j]=max(d[j-a]+b,d[j])//j是背包可承受的最大重量地淀,注意上限!
  1. 樹的處理岖是,找規(guī)律
  2. 寶昌縣長要修路帮毁,最小生成樹的編寫,雙邊距離

15推免

  1. 矩陣轉(zhuǎn)置
  2. 行程編碼
  3. 去除重復(fù)的數(shù)
  4. 分解因數(shù)豺撑,遞歸:
       if(a==1) return 1;
       if(b==1) return 0;
       if(a%b==0) return func(a/b,b)+func(a,b-1)
       else return func(a,b-1) 
  1. DFS 深度優(yōu)先
  2. 背包問題
    64-bit unsigned integer: %I64d
dp[0]=1;
        for (i=1; i<=num; i++)//對于從小到大的序號
            for (j=n; j>=0; j--)
                for (x=1; x<=h[i]; x++)//這個數(shù)有多少個
                    if (j-x>=0)
                        dp[j]+=dp[j-x];
  1. 查找二叉樹烈疚;得到一行中不確定個數(shù)的數(shù)字輸入有可能是0
    while((c=getchar())!='\n')
    {
    if(c>='0'&&c<='9')
    {
    ungetc(c,stdin);
    cin>>a[i++];
    }
    }
  2. Floyd,找兩點之間所要經(jīng)過的最小“最大距離”聪轿。
for(k=1; k<=n; k++)
            for(i=1; i<=n-1; i++)
                for(j=i+1; j<=n; j++)
                    if(path[i][k]<path[i][j] && path[k][j]<path[i][j])
                        //則走i->k->j路線爷肝,否則走i->j路線
                        if(path[i][k]<path[k][j])
                            path[i][j]=path[j][i]=path[k][j];
                        else
                            path[i][j]=path[j][i]=path[i][k];

15夏令營

  1. 數(shù)組的遍歷 考慮只有一行的情況!
  2. qsort不能有兩個cmp方法陆错,合影
  3. 相同字符串的尋找灯抛,題意的理解
  4. To Europe,動態(tài)規(guī)劃R舸伞:
t=l*1.0/s+result[j-1];//int變double对嚼,考慮到每一層的最優(yōu)情況
  1. BFS,考慮的是方向不是距離

  2. 相鄰的點可以到達(dá)

  3. 用普通的BFS不行绳慎,因為即使當(dāng)前的點是segment最少的點纵竖,也不能保證接下來找到點是segment最少的。

  4. 從原點開始偷线,把1步磨确、2步…能走到的點都放進(jìn)隊里。而不是只找可以走到的一個點

  5. 審題声邦! 每一個輸入之后有一個空行

  6. memset(v,0,sizeof(v));

  7. 二叉查找樹的建立

  8. 兩點之間的最短距離


16推免(check)

  1. 石頭剪刀布
  2. 字符串判斷乏奥,'a'-'A'=32 極值Z的處理
  3. 矩陣輸出順序
  4. DFS,背代碼亥曹,遞歸的利用
不是可能性邓了!是數(shù)獨的要求恨诱!
  1. 10000個數(shù)的計算,不能直接計算骗炉,而是每次計算都取余數(shù)照宝,類似背包問題用0、1存結(jié)果
   1. %的結(jié)果可能是負(fù)的句葵!
   2. 不管是+a[i]還是-a[i]都可能出現(xiàn)mod是負(fù)的厕鹃!
   3. 動態(tài)規(guī)劃,用dp[10001][101]存儲乍丈!
  1. 畫家問題剂碴,和POJ的題不一樣,不能簡單的枚舉否則會超時轻专。
for(int k=0; k<pow(2.0, n); k++)
      getLine(k);
void getLine(int k)
{
    //通過二進(jìn)制枚舉第一行可能發(fā)生的所有情況
    int j = n;
    while(j>0)
    {
        line[j] = k % 2;//line[j]代表第一行的第j列翻轉(zhuǎn)
        k /= 2;
        j--;
    }
}
  1. 最小生成樹忆矛、字符串的處理not by me
string temp1;
if(temp1.compare(a[j])==0)
  1. 二叉樹路線的計算not by me
  2. Magical GCD的理解
    動態(tài)規(guī)劃,gcd函數(shù)要自己寫

16夏令營

  1. 單詞翻轉(zhuǎn)请垛,調(diào)試
  2. 加密催训,矩陣的操作
  3. 文件結(jié)構(gòu)圖,目錄里的文件也要排序宗收,因此一定要用遞歸
recur(string s1,int N,int T) //T是test的序號漫拭,N是文件層次的序號
  1. 匯率計算,精度的改變镜雨,用兩個數(shù)組決定換不換
double update(double a)
{
    a=a*100;
    int y=int(a);
    return y/100.0;
}
  1. BFS嫂侍,迷宮儿捧,背代碼
  2. 前序遍歷荚坞、中序遍歷變?yōu)楹笮虮闅v。讀取一行的兩個字符串cin>>s1>>s2
  3. 最小生成樹
  4. 多米諾菲盾,f[i][j]為枚舉到第i個數(shù)差為j時最少交換了多少次颓影,要考慮j為負(fù)數(shù)的情況。
f[i][j]=min(f[i][j],f[i-1][j-(a[i]-b[i])],f[i-1][j+(a[i]-b[i])]+1)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末懒鉴,一起剝皮案震驚了整個濱河市诡挂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌临谱,老刑警劉巖璃俗,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異悉默,居然都是意外死亡城豁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門抄课,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唱星,“玉大人雳旅,你說我怎么就攤上這事〖淞模” “怎么了攒盈?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哎榴。 經(jīng)常有香客問我型豁,道長,這世上最難降的妖魔是什么尚蝌? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任偷遗,我火速辦了婚禮,結(jié)果婚禮上驼壶,老公的妹妹穿的比我還像新娘氏豌。我一直安慰自己,他們只是感情好热凹,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布泵喘。 她就那樣靜靜地躺著,像睡著了一般般妙。 火紅的嫁衣襯著肌膚如雪纪铺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天碟渺,我揣著相機與錄音鲜锚,去河邊找鬼。 笑死苫拍,一個胖子當(dāng)著我的面吹牛芜繁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绒极,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼骏令,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了垄提?” 一聲冷哼從身側(cè)響起榔袋,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铡俐,沒想到半個月后凰兑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡审丘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年吏够,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡稿饰,死狀恐怖锦秒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喉镰,我是刑警寧澤旅择,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站侣姆,受9級特大地震影響生真,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捺宗,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一柱蟀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚜厉,春花似錦长已、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贰健,卻和暖如春胞四,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伶椿。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工辜伟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脊另。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓导狡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尝蠕。 傳聞我的和親對象是個殘疾皇子烘豌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容