2016-11-01 17:15
北京交通大学 C++ HenrryCheng:百度offer交流群:http://www.nowcoder.com/discuss/12557
百度准同事交流群:http://www.nowcoder.com/discuss/16209
投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
牛客708427号:枚举,map去重剪枝
投递indeed等公司10个岗位 >
0 点赞 评论 收藏
分享
投递乐视网等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
win君:楼主不哭,感觉和当当网的傻叉面试官一样
投递搜狐等公司10个岗位 >
0 点赞 评论 收藏
分享
投递腾讯等公司10个岗位 >
0 点赞 评论 收藏
分享
投递腾讯等公司10个岗位 >
0 点赞 评论 收藏
分享
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-09-18 17:23
北京交通大学 C++ seeme:#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
int a[11][11];
int flag[11][11];
vector<int> xMax;
vector<int> yMax;
int pMax;
void dfs(int maze[11][11],int ff[11][11],int x,int y,int p,int n,int m,vector<int> xPath,vector<int> yPath,int &maxP){
if (p < 0){
return;
}
if (x==0&&y==m-1){
if (maxP < p){
maxP = p;
xMax = xPath;
yMax = yPath;
}
return;
}
int xx[4] = {-1,1,0,0};
int yy[4] = { 0, 0, -1, 1 };
int price[4] = {3,0,1,1};
int i;
for (i = 0; i < 4;i++){
int sx = x + xx[i];
int sy = y + yy[i];
if (sx >= 0 && sx < n&&sy >= 0 && sy < m&&!ff[sx][sy]&&maze[sx][sy]){
ff[sx][sy] = 1;
xPath.push_back(sx);
yPath.push_back(sy);
dfs(maze,ff,sx,sy,p-price[i],n,m,xPath,yPath,maxP);
ff[sx][sy] = 0;
xPath.pop_back();
yPath.pop_back();
}
}
}
int main(){
int n,m;
while (cin>>n>>m>>pMax){
memset(a,0,sizeof(a));
memset(flag,0,sizeof(flag));
int i, j;
for (i = 0; i < n;i++){
for (j = 0; j < m; j++)
{
int tmp;
cin >> tmp; a[i][j]=tmp;
}
}
flag[0][0] = 1;
vector<int> xPath, yPath;
xPath.push_back(0);
yPath.push_back(0);
int mm = -100;
dfs(a,flag,0,0,pMax,n,m,xPath,yPath,mm);
if (mm == -100){
cout << "Can not escape!" << endl;
continue;
}
for (i = 0; i < xMax.size(); i++){
cout << "[" << xMax[i] << "," << yMax[i] << "]";
if (i<xMax.size()-1)
cout << ",";
}
cout << endl;
}
system("pause");
return 0;
}
难得一次全部AC的笔试
投递滴滴等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-09-17 21:44
北京交通大学 C++ kop:附加题用全排列暴力做出来了。。。
void Swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void Permutation(vector<int> &vec, int start, int end, vector<vector<int>> &vecBig)
{
if(start == end)
{
vecBig.push_back(vec);
}
else
{
for(int i = start; i<= end; ++i)
{
Swap(vec[i], vec[start]);
Permutation(vec, start+1, end, vecBig);
Swap(vec[i], vec[start]);
}
}
}
int main()
{
int n;
cin>>n;
vector<vector<int>> vecBig;
for(int i = 0; i<=n; ++i)
{
vector<int> vecTemp;
string str;
getline(cin, str);
for(int j = 0; j< str.size(); ++j)
{
if(str[j] == ',')
str[j] = ' ';
}
istringstream ss(str);
int num;
while(ss>>num)
{
vecTemp.push_back(num);
}
if(i!= 0)
{
vecBig.push_back(vecTemp);
}
}
vector<int> vect;
for(int i = 0; i< n; ++i)
{
vect.push_back(i);
}
vector<vector<int>> vec;
Permutation(vect, 0, n-1, vec);
int min = 99999;
for(int i = 0; i< vec.size(); ++i)
{
int curMid = 0;
vector<int> vect = vec[i];
int pre = vect[0];
for(int j = 1; j<vect.size(); ++j)
{
int cur = vect[j];
curMid +=vecBig[pre][cur];
pre = cur;
}
if(curMid<min)
min = curMid;
}
cout<<min<<endl;
}
投递携程等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-09-08 15:37
北京交通大学 C++ 0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了: