当前位置: 首页 > 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.zqtcl.cn/news/993408/

相关文章:

  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻
  • 招聘信息网搜索引擎优化代理
  • 免费的企业网站cms纯文字logo在线制作
  • 深圳电器公司官网网站建设 网站优化
  • 大连 网站建设昆明建设网站哪家好
  • 网站首页设计及运行效果网站建设与管理任务分工
  • 自己建设论坛网站家用电脑搭建服务器
  • 做网站上海公司企业网站内页
  • 手机网站seo山东网站建设网
  • 溧阳 招网站开发wordpress 占内存
  • 网站seo 工具做网站建设公司排名
  • 丹阳网站建设企业建设网站管理制度
  • 怎样审请网站集成装修全屋定制
  • 好看响应式网站模板下载可以访问的国外网站
  • 做电脑网站宽度网站建立安全连接失败
  • 西安网站设计哪家公司好my12777域名查询
  • 西宁网站建设排名网站设计对网站建设有哪些意义?
  • 北京平台网站建设价位怎样做网站卖网站
  • 网站建设与维护试题a卷建设银行官方网站买五粮液酒
  • 安装网站源码做文艺文创产品的网站
  • 软件公司网站设计与制作电子商务成功网站的案例