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

视频网站 建设优化游戏卡顿的软件

视频网站 建设,优化游戏卡顿的软件,网上做室内设计好的网站,新手做网站什么类型题目传送门 前置知识:最小生成树 分析 对于 kruskal 算法,是对边权排序,然后依次判环然后加边。 但是这里有是限制的,我们跑出来最小生成树不一定是有 needneedneed 条白边的最小生成树。 那怎么办? 比如白边数量大于…

题目传送门
前置知识:最小生成树

分析

对于 kruskal 算法,是对边权排序,然后依次判环然后加边。
但是这里有是限制的,我们跑出来最小生成树不一定是有 needneedneed 条白边的最小生成树。
那怎么办?
比如白边数量大于 needneedneed,多余的白边是什么到前面去的?因为 kruskal 的排序,那么这下知道怎么解决了,我们统一将所有白边的权值加上一个数 xxx,白边的权值变大了,排序时后面的权值较小黑边就到了前面,这样就可以减少白边数量,最后再将在最小生成树中加上的白边的权值 n⋅needn\cdot neednneed 减去就行了。
那么这个加上的值怎么求?
因为有可能白边数量过少,就需要加负数,所以最小值应该是 −100-100100 ,过多就加整数,最大值为 100100100 (见题目数据范围)
xxx 的值就在 −100-100100100100100 之间,是线性且有序的,那么想到了什么?
二分。

实现

xxx 进行二分,然后将所有白边加上一个值 midmidmid ,包最小生成树,记录白边数量,如果大了就往大的二分,小了就往小的二分。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*f;
}
void print(int x){if(x<0)putchar('-'),x=-x;if(x<10){putchar(x+'0');return;}print(x/10);putchar(x%10+'0');
}
void putstr(string s){for(int i=0;i<s.size();i++)putchar(s[i]);
}
int n,m,k;
int f[N];
int find(int x){if(x!=f[x])f[x]=find(f[x]);return f[x];
}
struct node{int u,v,w,c;
};
node a[N];
bool cmp(node a,node b){return a.w<b.w||(a.w==b.w&&a.c<b.c);
}
int ans;
int kru(){sort(a+1,a+1+m,cmp);int sum=0;ans=0;for(int i=1;i<=m;i++){int u=a[i].u;int v=a[i].v;int w=a[i].w;int c=a[i].c;if(find(u)==find(v))continue;f[find(u)]=find(v);ans+=1-c;sum+=w;}return sum;
}
signed main(){//ios::sync_with_stdio(0);n=read(),m=read(),k=read();for(int i=1;i<=m;i++){int u=read()+1,v=read()+1,w=read(),c=read();a[i]=node{u,v,w,c};}int l=-100,r=100;int answer;int mid;while(l<r){mid=l+r>>1;for(int i=0;i<=n;i++)f[i]=i;for(int i=1;i<=m;i++)if(!a[i].c)a[i].w+=mid;int sum=kru();if(ans<k)r=mid-1;else l=mid+1,answer=sum-k*mid;for(int i=1;i<=m;i++)if(!a[i].c)a[i].w-=mid;}print(answer);
}
http://www.dtcms.com/wzjs/153818.html

相关文章:

  • 网站开发前端与后端泰州seo公司
  • 梁平城乡建设委员会官方网站永久免费个人网站注册
  • 中国怎么样做跨境网站seo教程网
  • wordpress仿wikiseo排名关键词搜索结果
  • 自己做网站需要服务器免费外链发布平台在线
  • 网站怎么做可以合法让别人充钱企业推广
  • 武汉建设招投标网站火星培训机构收费明细
  • 无锡网站建设唯唯网络关键词排名优化教程
  • 淮南网站建设全包百度无广告搜索引擎
  • 虚拟主机的概念和功能seo优化案例
  • 网站播放器源码百度经验手机版官网
  • 网站做的不满意seo好学吗
  • 网站诊断书怎么做关键词优化哪个好
  • 建立网站怎么申请seo产品优化免费软件
  • 短链接生成接口seo系统培训哪家好
  • 免费网站模板素材免费b站推广网站链接
  • 广告网络推广怎么做windows优化大师自动下载
  • 什么是微网站系统个人建站
  • 企业网站加视频谷歌推广一年多少钱
  • 北京地铁建设管理公司网站win7优化大师免安装版
  • 使用vue做的商城网站深圳企业网站制作公司
  • 最新国家大事新闻百度seo排名技术必不可少
  • 莱芜网站优化平台电脑编程培训学校
  • 做家旅游的视频网站好seo推广优化平台
  • 帮别人做网站交税手机网页设计
  • 公司招聘做哪家网站网络营销技巧
  • 展示类网站cms关键词挖掘
  • 中国建筑装饰网饶明富seo确定关键词
  • 微网站后台sem技术培训
  • 深圳网站定制价格表2023新一轮病毒叫什么名字