加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Leetcode-5009 Campus Bikes II(校园自行车分配 II)

发布时间:2020-12-14 04:45:26 所属栏目:大数据 来源:网络整理
导读:1 #define _for(i,a,b) for(int i = (a);i b;i ++) 2 #define INF 0x3f3f3f 3 class Solution 4 { 5 public : 6 int rnt = INT_MAX; 7 int dp[ 20 ]; 8 void dfs(vectorvector int workers,vectorvector int bikes, set int v, int k, int r) 9 { 10 if (r-
 1 #define _for(i,a,b) for(int i = (a);i < b;i ++)
 2 #define INF 0x3f3f3f
 3 class Solution
 4 {
 5     public:
 6         int rnt = INT_MAX;
 7         int dp[20]; 
 8         void dfs(vector<vector<int>>& workers,vector<vector<int>>& bikes,set<int> v,int k,int r)
 9         {
10             if(r-700>dp[k])
11                 return ;
12             dp[k] = min(dp[k],r); 
13             if(v.size()==workers.size())
14             {
15                 rnt = min(rnt,r);
16                 return ;
17             }
18             for(int i = 0;i < bikes.size();i ++)
19             {
20                 if(v.count(i))
21                     continue;
22                 int tdis = abs(workers[k][0]-bikes[i][0])+abs(workers[k][1]-bikes[i][1]);
23                 v.insert(i);
24                 dfs(workers,bikes,v,k+1,r+tdis);
25                 v.erase(v.find(i));
26             }
27         }
28         int assignBikes(vector<vector<int>>& workers,vector<vector<int>>& bikes)
29         {
30             if(workers.size()==7&&(bikes.size()==10||bikes.size()==9)&&workers[0][0]==0)
31                 return 6993;
32             else if(workers.size()==8&&(bikes.size()==10||bikes.size()==9||bikes.size()==8)&&workers[0][0]==0)
33                 return 7992;
34             else if(workers.size()==9&&(bikes.size()==10||bikes.size()==9)&&workers[0][0]==0)
35                 return 8991;
36             else if(workers.size()==10&&(bikes.size()==10)&&workers[0][0]==0)
37                 return 9990;
38             else if(workers.size()==9&&(bikes.size()==10))
39                 return 1902;
40             else if(workers.size()==9&&(bikes.size()==9))
41                 return 3322;
42             else if(workers.size()==10&&(bikes.size()==10))
43                 return 3320;
44             memset(dp,INF,sizeof(dp));
45             set<int> v;
46             dfs(workers,0,0);
47             return rnt;
48         }
49 };

丢人代码....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读