- 相關推薦
樂視網(wǎng)2017暑期實習生筆試題
我們最終都要遠行,最終都要與稚嫩的自己告別,告別是通向成長的苦行之路。下面CN人才網(wǎng)小編為大家?guī)淼氖菢芬暰W(wǎng)2017暑期實習生筆試題,希望對大家有所幫助~
1[編程題] 兵臨城下
時間限制:1秒
空間限制:32768K
盧卡斯的驅(qū)逐者大軍已經(jīng)來到了赫柏的卡諾薩城,赫柏終于下定決心,集結了大軍,與驅(qū)逐者全面開戰(zhàn)。
盧卡斯的手下有6名天之驅(qū)逐者,這6名天之驅(qū)逐者各賦異能,是盧卡斯的主力。
為了擊敗盧卡斯,赫柏必須好好考慮如何安排自己的狂戰(zhàn)士前去迎戰(zhàn)。
狂戰(zhàn)士的魔法與一些天之驅(qū)逐者的魔法屬性是相克的,第i名狂戰(zhàn)士的魔法可以克制的天之驅(qū)逐者的集合為Si(Si中的每個元素屬于[0,5])。
為了公平,兩名狂戰(zhàn)士不能攻擊同一個天之驅(qū)逐者。
現(xiàn)在赫柏需要知道共有多少種分派方案。
例:
S1={01},S2={23},代表編號為0的狂戰(zhàn)士的魔法可以克制編號為0和編號為1的天之驅(qū)逐者,編號為1的狂戰(zhàn)士的魔法可以克制編號為2和編號為3的天之驅(qū)逐者,共有四種方案:02,03,12,13。
02---代表第一個狂戰(zhàn)士負責編號為0的驅(qū)逐者,第二個狂戰(zhàn)士負責編號為2的驅(qū)逐者;
03---代表第一個狂戰(zhàn)士負責編號為0的驅(qū)逐者,第二個狂戰(zhàn)士負責編號為3的驅(qū)逐者;
12---代表第一個狂戰(zhàn)士負責編號為1的驅(qū)逐者,第二個狂戰(zhàn)士負責編號為2的驅(qū)逐者;
13---代表第一個狂戰(zhàn)士負責編號為1的驅(qū)逐者,第二個狂戰(zhàn)士負責編號為3的驅(qū)逐者;
S1={01},S2={01},代表編號為0的狂戰(zhàn)士的魔法可以克制編號為0和編號為1的天之驅(qū)逐者,編號為1的狂戰(zhàn)士的魔法可以克制編號為0和編號為1的天之驅(qū)逐者,共有兩種方案:01,10。
輸入描述:
多組測試數(shù)據(jù),請?zhí)幚淼轿募Y束。
對于每組測試數(shù)據(jù):
第一行為一個整數(shù)N,代表狂戰(zhàn)士的數(shù)量。
第二行為N個字符串,第i個字符串表示第i個狂戰(zhàn)士能夠克制的天之驅(qū)逐者的集合。
保證:
1<=N<=6,1<=每個字符串的長度<=6,且每個字符都是0~5中的一個數(shù)字。
輸出描述:
輸出一個整數(shù),代表分配方案數(shù)
輸入例子:
2
01 23
2
01 01
3
3 015 5
輸出例子:
4
2
2
參考答案:
#include
#include
#include
using namespace std;
string s[6];
int n;
int vis[6];
int ans;
void dfs(int p)
{
if(p == n)
{
ans++;
return;
}
for(inti =0; i < s[p].length(); i++)
{
if(vis[s[p][i]-'0'] == 0)
{
vis[s[p][i]-'0'] = 1;
dfs(p+1);
vis[s[p][i]-'0'] = 0;
}
}
}
int main()
{
while(cin>>n)
{
ans =0;
memset(vis,0,sizeof(vis));
for(inti =0; i < n; i++)
cin>>s[i];
dfs(0);
cout<
}
}
2[編程題] 幻獸交易
時間限制:1秒
空間限制:32768K
在最近幾場魔獸爭霸賽中,赫柏對自己的表現(xiàn)都不滿意。
為了盡快提升戰(zhàn)力,赫柏來到了雷鳴交易行并找到了幻獸師格麗,打算讓格麗為自己的七階幻獸升星。
經(jīng)過漫長的等待以后,幻獸順利升到了滿星,赫柏很滿意,打算給格麗一些小費。
赫柏給小費是有原則的:
1.最終給格麗的錢必須是5的倍數(shù);
2.小費必須占最終支付費用的5%~10%之間(包含邊界)。
升星總共耗費A魔卡,赫柏身上帶了B魔卡,赫柏想知道他有多少種支付方案可供選擇。
注:魔卡是一種貨幣單位,最終支付費用=本該支付的+小費
輸入描述:
多組測試數(shù)據(jù),請?zhí)幚淼轿募Y束。
對于每組測試數(shù)據(jù):
包含兩個整數(shù)A和B。
保證:
1<=A,B<=2,000,000,000,A<=B。
輸出描述:
輸出一個整數(shù),代表方案數(shù)。
輸入例子:
4 100
23 100
輸出例子:
0
1
參考答案:
#include
#include
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b)
{
int count = 0;
int start = ceil(a/0.95);//起點(向上取整)
int end = floor(a/0.90);//終點(向下取整)
while((start % 5 != 0)&&(start<=end))
++start;
for(int i = start; i <= end&&i <= b; i += 5)
++count;
cout<
}
return 0;
}
3
[編程題] 禁忌雷炎
時間限制:1秒
空間限制:32768K
赫柏在絕域之門擊敗魯卡斯后,從魯卡斯身上掉落了一本高級技能書,赫柏打開后驚喜地發(fā)現(xiàn)這是一個早已失傳的上古技能---禁忌雷炎。
該技能每次發(fā)動只需扣很少的精神值,而且輸出也非常高。
具體魔法描述如下:
把地圖抽象為一個二維坐標,技能發(fā)動者位于(0,0)位置。以技能發(fā)動者為中心,做一個半徑為r的圓,滿足r^2=S,如果敵人位于這個圓上,且位置為整點坐標,這個敵人將收到該技能的輸出傷害。。
例如當S=25時,將有12個敵人受到該技能的輸出傷害,如下圖所示:
更厲害的是,禁忌雷炎可以通過改變魔法輸入來控制S的大小,因此數(shù)學好的魔法師可以通過該技能攻擊到更多的敵人。
赫柏想將這個技能學會并成為自己的主技能,可數(shù)學是他的硬傷,所以他請求你為他寫一個程序,幫幫他吧,沒準他就把禁忌雷炎與你分享了 : )
輸入描述:
多組測試數(shù)據(jù),請?zhí)幚淼轿募Y束。
對于每組測試數(shù)據(jù),只包含一個整數(shù)S。
保證:
1<=S<=2,000,000,000。
輸出描述:
輸出一個整數(shù),代表受到禁忌雷炎傷害的敵人數(shù)量。
輸入例子:
25
3
輸出例子:
12
0
參考答案:
只需要按一個方向遍歷一遍 利用勾股定理x*x+y*y = r*r 即可解決四分之一圓周的點 *4 即為結果
#include
#include
#include
#include
using namespace std;
int n;
int main()
{
while(cin>>n)
{
int ans = 0;
for(int i = 0; i*i < n; i ++)
{
int j = n - i*i;
int s = sqrt(j);
if(s*s == j)ans++;
}
cout<<4*ans<
}
}