1.分金子
a、b兩夥馬賊意外地在一片沙漠中發現了一處金礦,雙方都想獨佔金礦,但各自的實力都不足以吞下對方,經過談判後,雙方同意用乙個公平的方式來處理這片金礦。處理的規則如下:他們把整個金礦分成n段,由a、b開始輪流從最左端或最右端佔據一段,直到分完為止。
馬賊a想提前知道他們能分到多少金子,因此請你幫忙計算他們最後各自擁有多少金子?(兩夥馬賊均會採取對己方有利的策略)
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
int a[505];
int dp[505][505];
int sum[505];
int dfs(int l,int r)
int main()
int ans1=dfs(1,n);
int ans2=sum[n]-ans1;
cout<<"case #"<
2.剪氣球串
小明買了一些彩色的氣球用繩子串在一條線上,想要裝飾房間,每個氣球都染上了一種顏色,每個氣球的形狀都是各不相同的。我們用1到9一共9個數字表示不同的顏色,如12345則表示一串5個顏色各不相同的氣球串。但小明希望得到不出現重複顏色的氣球串,那麼現在小明需要將這個氣球串剪成多個較短的氣球串,小明一共有多少種剪法?如原氣球串12345的一種是剪法是剪成12和345兩個氣球串。
注意每種剪法需滿足最後的子串中氣球顏色各不相同(如果滿足該條件,允許不剪,即保留原串)。兩種剪法不同當且僅當存在乙個位置,在一種剪法裡剪開了,而在另一種中沒剪開。詳見樣例分析。
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
int a[100005];
ll dp[100005];
int vis[10];
int main()
a[0]=0;
dp[0]=dp[1]=1;
for(int i=2;i<=n;i++)
}cout<
奇虎360 2017校招筆試題
最強大腦 時間限制 c c 語言 1000ms 其他語言 3000ms 記憶體限制 c c 語言 65536kb 其他語言 589824kb 題目描述 小b乘火車和朋友們一起在n市到m市之間旅行。她在路途中時睡時醒。當她醒來 窗外的風景時,注意到每個火車站都有一種特別顏色的旗幟,但是她看到的旗 幟僅...
記憶體管理(3602017秋招真題)
題目描述 物聯網技術的蓬勃發展,各種感測器紛紛出現。小b所在的專案組正在開發乙個物聯網專案,她們在研究設計一種新的感測器。這種感測器有自己的基本處理單元,具有一定的自主性,能夠進行簡單的資料收集 處理 儲存和傳輸。為降低系統功耗並保證系統可靠性和可控性,他們要對記憶體進行基本的管理。研究小組計畫開發...
百度2017春招筆試真題
好久不寫題,dp 都這麼生疏了,想不到複雜度合適的dp 度度熊想去商場買一頂帽子,商場裡有n頂帽子,有些帽子的 可能相同。度度熊想買一頂 第三便宜的帽子,問第三便宜的帽子 是多少?直接將所有 存入se t 中,然後輸出第三小的即可。剛開始沒注意不能相等,直接排序輸出,結果沒ac 仔細看樣例後就能理解...