1.世界盃開幕式會在球場c舉行,球場c的球迷看台可以容納m*n個球迷。在球場售票完成後,現官方想統計此次開幕式一共有多少個球隊球迷群體,最大的球隊球迷群體有多少人。
經調研發現,球迷群體在選座時有以下特性:
同球隊的球迷群體會選擇相鄰座位,不同球隊的球迷群體會選擇不相鄰的座位(註解:相鄰包括前後相鄰,左右相鄰,斜對角相鄰)
給定乙個m*n的二維球場,0代表該位置沒有坐人,1代表該位置已有選擇,希望輸出球隊群體個數p,最大的球隊群體人數q
輸入描述:
第一行,2個數字,m及n,使用英文逗號分隔
接下來m行,每行n的數字,使用英文逗號分隔
輸出描述:
一行,2個數字,p及q,使用英文逗號分隔
其中p表示球隊群體個數,q表示最大的球隊群體人數
例:輸入
10,10
0,0,0,0,0,0,0,0,0,0
0,0,0,1,1,0,1,0,0,0
0,1,0,0,0,0,0,1,0,1
1,0,0,0,0,0,0,0,1,1
0,0,0,1,1,1,0,0,0,1
0,0,0,0,0,0,1,0,1,1
0,1,1,0,0,0,0,0,0,0
0,0,0,1,0,1,0,0,0,0
0,0,1,0,0,1,0,0,0,0
0,1,0,0,0,0,0,0,0,0
輸出:6,8
**如下:
4. 兩個長度為n的序列a,b。問有多少個區間[l,r]滿足max(a[l,r])輸入描述:#include#include#includeusing namespace std;
int getnum(vector>& people,int i,int j,vector>& reach)
else if(people[i][j]==1&&reach[i][j]==0)else
}void getdata(vector>& people,vector& num,vector>& reach)
cin>>temp;
ptemp.push_back(temp);
people.push_back(ptemp);
} vectornum;
if(people.empty())
it=vp.erase(it+1);
--it;
}else
}}int main()
}while(cin.get()==';');
}mergeindex(vp);
int i=0;
for(;i3. 小a和小b玩乙個遊戲,有n張卡牌,每張上面有兩個正整數x,y。取一張牌時,個人積分增加x,團隊積分增加y。求小a,小b各取若干張牌,使得他們的個人積分相等,且團隊積分最大。
輸入描述:
第一行n
接下來n行,每行兩個正整數x,y
輸出描述:
一行乙個整數
表示小a的積分和小b的積分相等時,團隊積分的最大值
例:輸入
3 12 2
1 41 4
輸出:10
說明:當a抽取(2,2),b抽取(1,4),(1,4)時,兩人個人積分都是2,團隊積分最大,為10分
**如下:
#include#include#include#includeusing namespace std;
int main()
sort(vp.begin(), vp.end(), (pair& p1, pair& p2) );
int** dp = new int* [n];
for (int i = 0; i=0; i--));
} }
cout << dp[0][0] << endl;
for (int i = 0; i < n; i++)
delete dp;
return 0;
}
第一行乙個整數n
第二行n個數,第i個為a(i)
第三行n個數,第i個為b(i)
0<1<=r輸出描述:
一行乙個整數,表示答案
例1:輸入
3 2 1
3 3 3
輸出: 3
5. 小明在抖音裡關注了n個主播,每個主播每天的開播時間是固定的,分別在s時刻開始開播,t時間結束。小明無法同時**兩個主播的直播。一天被分成了m個時間單位。請問小明每天最多能完整**多少場直播?
輸入描述:
第一行乙個整數,代表n
第二行乙個整數,代表m
第三行空格間隔的n*2個整數,代表s,t
輸出描述:
一行乙個整數,表示答案
例1:輸入
0 3 3 7 7 0
輸出:3
例2: 輸入
0 5 2 7 6 9
輸出:2
備註:資料範圍1<=n<=10^5
2<=m<=10^6
0<=s(i),t(i)s(i)>t(i)代表時間跨天,但直播時長不會超過一天
本題和尋找圖中路徑的思想一致。**如下:
#include#include#includeusing namespace std;
bool rfind(int s, int des, int n, int& length, int* reach, int* path, vector>& red)
length--;
} }return false;
}int* findpath(int begin, int end, int n, vector>& red)
if (begin == end || rfind(begin, des, n, length, reach, path, red))
else
delete reach;
return path;
}int main()
bool isred = true;
int t = 0;
for (int i = 1; i <= n; i++)
else
} if (isred)
} cout << t << endl;
return 0;
}
位元組跳動2019校招前端筆試
題目描述 開心消消樂 給定乙個一維的正整數陣列,逐次選擇其中乙個數做消除,消除所獲得的分數為當前數字和左右相鄰數字的乘積 當左邊或者右邊沒有數字可以認為是1 e.g.輸入陣列 3,1,5,8 step1 消除1 獲得分數 15 3x1x5,陣列變為 3,5,8 step2 消除5,獲得分數 120 ...
位元組跳動2019校招前端筆試
題目描述 給一些駝峰式的變數名,將它們轉換為下劃線式的,要求及說明如下 輸入資料一定為合法的 駝峰式 變數名,變數名由若干單詞組成,單詞應當為首字母大寫,或全大寫,或全小寫。如 variable onevariable onehttprequest 如 variable one variable o...
位元組跳動校招筆試題特徵提取
小明是一名演算法工程師,同時也是一名鏟屎官。乙個貓咪特徵是乙個兩維的 vectorc x,y 如果x1 x2x1 x2並且y1 y2y1 y2,那麼這倆是同乙個特徵。因此,如果貓咪特徵連續一致,可以認為貓咪在運動。也就是說,如果特徵 a,b 在持續幀裡出現,那麼它將構成特徵運動。比如,特徵 a,b ...