#深信服筆試第一題
回溯加雙迴圈取最大值
注意在計算函式裡,要將分母為0的情況去掉,這種排列是錯誤的,所以當出現這種排列時按照int_min處理
整體思路就是:
數字全排列加運算子全排列結果雙迴圈遍歷並保留陣列最大值
#include
#include
using
namespace std;
vector
int>> recall_number;
vector
char
>> recall_char;
vector<
int>visited_num;
vector<
int>visited_char;
intjs
(vector<
int> nums,vector<
char
> cha)
//計算函式
}return nums[size];}
void
dfs_num
(vector<
int> a,vector<
int>
& visited_num,vector
int>>
& recall_number,vector<
int>
& push)
//數字全排列
for(
int i=
0;isize()
;i++)}
}void
dfs_char
(vector<
char
> a,vector<
int>
& visited_char,vector
char
>>
& recall_char,vector<
char
>
& push)
//運算子全排列
for(
int i=
0;isize()
;i++)}
}int
main()
while
(size--
) vector<
int>
newnum
(numbers.
size()
,0);
vector<
int>
newchar
(symbol.
size()
,0);
visited_num.
swap
(newnum)
; visited_char.
swap
(newchar)
; vector<
int>push_num;
vector<
char
>push_char;
dfs_num
(numbers,visited_num,recall_number,push_num)
;dfs_char
(symbol,visited_char,recall_char,push_char)
;int max=int_min;
int jsout;
for(
int i=
0;isize()
;i++)}
cout<
recall_number.
clear()
; recall_char.
clear()
; visited_num.
clear()
; visited_num.
clear()
;}return0;
}
狡兔三窟問題(深信服提前批筆試第一題)
題意大概時這個樣子的 因為是第一次筆試,太緊張了,實力也不夠,一時沒想起來,挺可惜的。當時感覺是列舉 dfs,但是沒過,後來覆盤的時候,驚覺dp 滾動陣列完美解決。思路 可以呆的洞為1,不可以的為0,先全部初始化為1,橫座標代表洞的標號,縱座標代表第幾天。第j天被檢查的洞一定是0 如果是1號洞或是m...
阿里筆試第一題
問答題1 輸出結果 21.25 7.50 30.00 2.50 從左到右依次為執行時間 單位是ms 此sql語句的分類,sql語句 2.5 0 insert into tablea values 1,columna columnb 12.5 1 insert into tableb values 2...
鉑金第二期第一題
對於一道題來說,小q會統計最短的驗題人 長度 shortest judge solution 以及賽內參賽隊伍最短的ac 長度 shortest team solution 統計驗題人 長度比較容易,因為驗題人最多也不會超過2020個。但是統計選手 長度就不容易了,因為大賽區動輒三四百支隊伍。請寫乙...