当前位置: 首页 > news >正文

有什么推荐的网站婚纱摄影网站大全

有什么推荐的网站,婚纱摄影网站大全,黑龙江骏域建设网站专家,在线自动翻译整个网页1 /*2 题意#xff1a;有 n 个站点#xff08;编号1...n#xff09;#xff0c;每一个站点都有一个能量值#xff0c;为了不让这些能量值连接起来#xff0c;要用 3 坦克占领这个站点#xff01;已知站点的 之间的距离#xff0c;每个坦克从0点出发到某一个站点有 n 个站点编号1...n每一个站点都有一个能量值为了不让这些能量值连接起来要用 3 坦克占领这个站点已知站点的 之间的距离每个坦克从0点出发到某一个站点1 unit distance costs 1 unit oil4 最后占领的所有的站点的能量值之和为总能量值的一半还要多问最少耗油多少5 6 */7 8 /*9 思路不同的坦克会占领不同的站点耗油最少那就是路程最少所以我们先将从 0点到其他各点的10 最短距离求出来也就是d[i]的值然后我们又知道每一个站点的所具有的能量值也就是w[i];11 最后求出满足占领站点的能量比总能量的一半多并且路程最少。。。直接01背包走起 12 */ 13 #includeiostream14 #includequeue15 #includecstring16 #includecstdio17 #includealgorithm18 #includevector19 #define N 1000520 #define INF 0x3f3f3f3f21 using namespace std;22 23 int w[105];24 25 struct EDGE{26 int u, v, nt, dist;27 EDGE(){}28 29 EDGE(int u, int v, int nt, int dist){30 this-uu;31 this-vv;32 this-ntnt;33 this-distdist;34 }35 };36 37 EDGE edge[N*2];38 int first[105];39 int cnt;40 queuepairint, int q;41 int n, m;42 int dp[10005];43 int d[105];44 int map[105][105];45 46 void addEdge(int u, int v, int dist){47 edge[cnt]EDGE(u, v, first[u], dist);48 first[u]cnt-1;49 edge[cnt]EDGE(v, u, first[v], dist);50 first[v]cnt-1;51 }52 53 void Dijkstra(){54 d[0]0;55 q.push(make_pair(0, 0)); 56 while(!q.empty()){57 pairint,int curq.front();58 q.pop();59 int ucur.second;60 if(d[u] ! cur.first) continue;61 for(int efirst[u]; e!-1; eedge[e].nt){62 int vedge[e].v, distedge[e].dist;63 if(d[v] d[u] dist){64 d[v] d[u] dist;65 q.push(make_pair(d[v], v));66 }67 }68 }69 }70 71 int main(){72 int t;73 int sumP, sumD;74 scanf(%d, t);75 while(t--){76 scanf(%d%d, n, m);77 cnt0;78 memset(d, 0x3f, sizeof(d));79 memset(first, -1, sizeof(first));80 for(int i0; in; i)81 for(int j0; jn; j)82 map[i][j]INF;83 while(m--){84 int u, v, dist;85 scanf(%d%d%d, u, v, dist);86 if(map[u][v]dist)87 map[u][v]map[v][u]dist;88 }89 for(int i0; in; i)90 for(int j0; ji; j)91 if(map[i][j]!INF)92 addEdge(i, j, map[i][j]); 93 Dijkstra();//求出 0点到其他个点的最短的距离 94 sumPsumD0;95 for(int i1; in; i){96 scanf(%d, w[i]);97 sumPw[i];98 sumDd[i];99 } 100 memset(dp, 0x3f, sizeof(dp));//初始背包的总价值为无穷大 101 dp[0]0; 102 103 //zeroOnePackage... d[i]相当于价值也就是耗油量 w[i]相当于容积也就是能量值 104 for(int i1; in; i) 105 for(int jsumP; jw[i]; --j) 106 dp[j]min(dp[j], dp[j-w[i]]d[i]); 107 108 int maxCostINF; 109 for(int isumP/21; isumP; i)//注意是sumP/21(因为要比一半多) 110 if(maxCostdp[i]) 111 maxCostdp[i]; 112 if(maxCostINF) 113 printf(impossible\n); 114 else printf(%d\n, maxCost); 115 } 116 return 0; 117 } 118 119 /* 120 思路dp[i][j]表示到达 i站点 并且占领的能量值为 j时的耗油最小值 121 开始想用的是spfa算法并且在进行节点之间距离松弛的时候也将 背包融进来但是超时啊 122 好桑心..... 123 */ 124 125 #includeiostream 126 #includequeue 127 #includecstring 128 #includecstdio 129 #includealgorithm 130 #includevector 131 #define N 10005 132 #define INF 0x3f3f3f3f 133 using namespace std; 134 135 int w[105]; 136 137 struct EDGE{ 138 int u, v, nt, dist; 139 EDGE(){} 140 141 EDGE(int u, int v, int nt, int dist){ 142 this-uu; 143 this-vv; 144 this-ntnt; 145 this-distdist; 146 } 147 }; 148 149 EDGE edge[N*2]; 150 int first[105]; 151 int cnt; 152 queuepairint, int q; 153 int vis[105]; 154 int n, m, sum; 155 int dp[105][10005]; 156 int map[105][105]; 157 158 void addEdge(int u, int v, int dist){ 159 edge[cnt]EDGE(u, v, first[u], dist); 160 first[u]cnt-1; 161 edge[cnt]EDGE(v, u, first[v], dist); 162 first[v]cnt-1; 163 } 164 165 void spfa(){ 166 dp[0][0]0; 167 q.push(make_pair(0, 0)); 168 vis[0]1; 169 while(!q.empty()){ 170 pairint,int curq.front(); 171 q.pop(); 172 int ucur.second; 173 vis[u]0; 174 for(int efirst[u]; e!-1; eedge[e].nt){ 175 int vedge[e].v, distedge[e].dist; 176 for(int jw[v]; jsum; j) 177 if(dp[v][j] dp[u][j-w[v]] dist){ 178 dp[v][j] dp[u][j-w[v]] dist; 179 if(!vis[v]){ 180 vis[v]1; 181 q.push(make_pair(dp[v][j], v)); 182 } 183 } 184 } 185 } 186 } 187 188 int main(){ 189 int t; 190 scanf(%d, t); 191 while(t--){ 192 scanf(%d%d, n, m); 193 cnt0; 194 memset(first, -1, sizeof(first)); 195 for(int i0; in; i) 196 for(int j0; jn; j) 197 map[i][j]INF; 198 while(m--){ 199 int u, v, dist; 200 scanf(%d%d%d, u, v, dist); 201 if(map[u][v]dist) 202 map[u][v]map[v][u]dist; 203 } 204 for(int i0; in; i) 205 for(int j0; jn; j) 206 if(map[i][j]!INF) 207 addEdge(i, j, map[i][j]); 208 for(int i1; in; i){//最后将1...n节点的最优值汇聚到 第 n1个节点上 209 edge[cnt]EDGE(i, n1, first[i], 0); 210 first[i]cnt-1; 211 } 212 sum0; 213 for(int i1; in; i){ 214 scanf(%d, w[i]); 215 sumw[i]; 216 } 217 w[n1]0; 218 for(int i0; in2; i) 219 for(int j0; jsum2; j) 220 dp[i][j]INF; 221 spfa(); 222 int maxCostINF; 223 for(int isum/21; isum; i) 224 if(maxCostdp[n1][i]) 225 maxCostdp[n1][i]; 226 if(maxCostINF) 227 printf(impossible\n); 228 else printf(%d\n, maxCost); 229 } 230 return 0; 231 }   转载于:https://www.cnblogs.com/hujunzheng/p/3913288.html
http://www.pierceye.com/news/993408/

相关文章:

  • 中英文网站后台photoshop做网站
  • 优秀网站开发公司软件开发工具与环境实践报告
  • 茂名网站开发网站关键词优化步骤
  • 介绍家乡的网站怎么做天眼查企业查询公司
  • 公司网站建设代理一般做多久苏州关键词优化企业
  • 北京网站网站建设vps做网站怎么加速
  • 销售网站怎么做一个公司可以做多少网站
  • 西安旅游攻略必去景点网站优化成都哪里好
  • 网站特色泉州做网站优化价格
  • 小米官方网站开发版在哪里推进门户网站建设 用好用活
  • 玉器企业网站源码软件商店哪个好用
  • 学校网站建设的安全策略江苏太平洋建设集团官方网站
  • 织梦做中英文企业网站给特宝网站商家网址怎样做
  • 网站邮箱接口怎么设置WordPress国外主机
  • 西安做网站的公司哪家好怎么样查询网站被挂黑链
  • 卯兔科技网站建设河南旅游集团 网站建设
  • 重庆网站建设c做食品网站的素材
  • 网站如何制作的简单的管理系统有哪些
  • 职高网站建设知识点一个人开发一个网站需要多久
  • c 做的网站怎么上传博客 选择 WordPress
  • dw可以做有后台的网站么?泰安抖音seo
  • 龙岗网站建设 信科网络网站备案后要做什么
  • 深圳建立网站公司网站公众号开发一般收费
  • 网站建设要做什么有关网站建设的书
  • 网站前台开发由什么做的seo网络贸易网站推广
  • 网站设计与开发范本wordpress 左图右文
  • 网站后台的搭建seo网站推广教程
  • 长春做网站的公司男生怎么找的小资源
  • 在线课程网站建设规范甘肃手机版建站系统信息
  • 自定义网站模板中国进出口企业名录