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

初中毕业学网站开发工程师中山有网站建设公司吗

初中毕业学网站开发工程师,中山有网站建设公司吗,深汕特别合作区天气预报,页面跳转流程图题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId1307 题意: 题解: 方法一#xff1a; 因为所有绳子最终组成了1棵树#xff0c;所以我们可以通过一次DFS#xff0c;来检测是否有某根绳子下面绑了超过他所能负荷的重量。 具体方法#xff1a;对… 题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId1307 题意: 题解: 方法一 因为所有绳子最终组成了1棵树所以我们可以通过一次DFS来检测是否有某根绳子下面绑了超过他所能负荷的重量。 具体方法对每个节点计算其子树的重量和包含自身的重量如果大于能承受的最大重量则绳子会断否则不会断。 一次DFS时间复杂度是O(n)的。 既然一次判断的复杂度是O(n)的并且当绳子第一次断掉后继续放重物不会改变绳子断掉的状态毕竟重物的重量都是正数没有负数那么我们可以用二分来做。 二分来求第一次断掉的点由于二分的复杂度是log(n)一次DFS判断的复杂度是O(n)所以整个算法的复杂度是nlog(n)。 二分经常被用来求解一些具有单调性的问题这里的单调性就是断掉以后不会再次变成不断的。 方法二 我们在DFS的过程中使用并查集将子树节点的Root指向当前节点同时计算子树的总重量。 假如当前节点的承重不足那么绳子会断掉。所以我们需要去掉一些节点来保证绳子不断。根据题目要求我们按照子树节点的编号从高到低逐个去掉这些重物直到绳子不断为止。 那么问题来了并查集这个结构并不能解决按照编号从高到低去掉子树的问题如果自己维护其他的数据结构比如堆恐怕复杂度还要多一个Log。 所以我们跳出按照编号从高到低去掉子树的思路不如直接从编号N - 1到0去掉子树直到当前的绳子不断为止。 因为编号小的断了后面再加的绳子也没有用了已经有绳子断了就结束了。 代码: 二分 1 #include bits/stdc.h2 using namespace std;3 typedef long long ll;4 #define MS(a) memset(a,0,sizeof(a))5 #define MP make_pair6 #define PB push_back7 const int INF 0x3f3f3f3f;8 const ll INFLL 0x3f3f3f3f3f3f3f3fLL;9 inline ll read(){ 10 ll x0,f1;char chgetchar(); 11 while(ch0||ch9){if(ch-)f-1;chgetchar();} 12 while(ch0ch9){xx*10ch-0;chgetchar();} 13 return x*f; 14 } 15 // 16 const int maxn 1e510; 17 18 struct node{ 19 int c,w,f; 20 }e[maxn]; 21 22 vectorint g[maxn]; 23 24 bool book; 25 26 ll dfs(int u,int k){ 27 ll sum e[u].w; 28 if(u k) return 0; 29 for(auto v : g[u]) 30 sum dfs(v,k); 31 if(sum e[u].c u) book false; 32 return sum; 33 } 34 35 int main(){ 36 int nread(); 37 for(int i1; in; i){ 38 e[i].cread(); e[i].wread(); e[i].fread(); e[i].f; 39 g[e[i].f].push_back(i); 40 } 41 42 int l0,rn,ans 0; 43 while(lr){ 44 int mid (lr)/2; 45 book true; 46 dfs(0,mid); 47 if(book) ansmid,lmid1; 48 else rmid-1; 49 } 50 51 cout ans endl; 52 53 return 0; 54 }   并查集 1 #include bits/stdc.h2 using namespace std;3 typedef long long ll;4 #define MS(a) memset(a,0,sizeof(a))5 #define MP make_pair6 #define PB push_back7 const int INF 0x3f3f3f3f;8 const ll INFLL 0x3f3f3f3f3f3f3f3fLL;9 inline ll read(){ 10 ll x0,f1;char chgetchar(); 11 while(ch0||ch9){if(ch-)f-1;chgetchar();} 12 while(ch0ch9){xx*10ch-0;chgetchar();} 13 return x*f; 14 } 15 // 16 const int maxn 1e510; 17 18 struct node{ 19 ll c,w,f; 20 }e[maxn]; 21 22 vectorint g[maxn]; 23 int fa[maxn]; 24 ll ww[maxn]; 25 int k; 26 27 int find(int x){ 28 return fa[x]x ? x : fa[x]find(fa[x]); 29 } 30 31 void update(int u){ 32 for(auto v : g[u]){ 33 e[u].w e[v].w; 34 fa[v] u; 35 } 36 37 while(e[u].w e[u].c){ 38 e[find(k)].w - ww[k]; 39 k--; 40 } 41 } 42 43 int main(){ 44 int nread(); 45 for(int i1; in; i){ 46 e[i].cread(); e[i].wread(); e[i].fread(); e[i].f; 47 g[e[i].f].push_back(i); ww[i] e[i].w; 48 fa[i] i; 49 } 50 51 k n; 52 for(int in; i0; i--) 53 update(i); 54 55 cout k endl; 56 57 return 0; 58 }   转载于:https://www.cnblogs.com/yxg123123/p/6827576.html
http://www.sadfv.cn/news/79517/

相关文章:

  • 黄页网站查询数据做网站制作的
  • 微网站的好处手机回收站
  • 网站飘窗 两学一做电影模板哪个网站好
  • 常州 做网站网站开发语言比例
  • 科技广告公司网站建设给个网站急急急2021
  • 建设一个网站需要做哪些工作深圳seo外包公司
  • 北京正规网站建设公司清溪网站建设
  • 做公司网站主要需要什么科目建设局象山网站
  • 有做国际网站生意吗湖北省建设厅网站上岗证查询
  • 网站备案 机构需要什么手续外贸网站建设行业发展
  • 用logo做ppt模板下载网站wordpress贴内幻灯片
  • 网站建设策划书附录海报模板网
  • 网站外链工具做网站的算什么行业
  • 搬家网站建设公司用wordpress建立的网站
  • 包头网站建设平台广和柳州住房城乡建设厅官方网站
  • vps如果制作论坛网站广西茶叶网站建设
  • 刚做的网站搜索不到企业网站禁忌
  • 网站开发,自定义首页显示响应式设计是什么意思
  • 网站 设计做一个中英文网站多少钱
  • 织梦网站需要付费吗.net网站架设
  • 什么是门户网站广告网站网络推广方案
  • 什么网站可以做新闻听写it咨询公司排名
  • 杭州外贸网站制作建网站的哪家好
  • 宁波做网站制作北国网
  • 潍坊网站建设 中公苏州微网站建设公司
  • 马鞍山网站建设文域名如何做网站
  • 网站发布内容是否过滤站长工具seo综合查询 正品蓝导航
  • 免费移动网站模板下载龙海网站建设价格
  • 扬州西区网站建设园林绿化东莞网站建设
  • 爱站查询工具专业全网推广建站公司