博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小Y的问题
阅读量:6413 次
发布时间:2019-06-23

本文共 1513 字,大约阅读时间需要 5 分钟。

这里写图片描述

30分做法:n^4枚举边.

100分做法:
枚举每一条边,设两个端点为x,y;
我们通过组合公式来计算 Y 的个数,每一次加上C(num[x]-1)*(num[y]-1);
通过记连接一个点的边的最大值,次大值,第三大值。
加上除去枚举的边外x连接的最大的两条边,以及y连接的除去… 之后最大的边。
然后再将x和y换过来,重复一遍。

重复上述操作。

#include
#include
#include
#include
#include
#include
#define LL long longusing namespace std;int n;LL maxn,ans;struct H{ LL m1,m2,m3; int t1,t2,t3;}a[200009];//点 struct HH{ LL x,y,l;}b[200009];//边 LL cnt,num[200009];void ex(int x,int y,int z){ if(z>=a[x].m1) { a[x].m3=a[x].m2; a[x].m2=a[x].m1; a[x].m1=z; a[x].t3=a[x].t2; a[x].t2=a[x].t1; a[x].t1=y; } else if(z>=a[x].m2) { a[x].t3=a[x].t2; a[x].t2=y; a[x].m3=a[x].m2; a[x].m2=z; } else if(z>a[x].m3) { a[x].t3=y; a[x].m3=z; }}LL C(LL x)//从x个中任选2个 !一定要开LL { return x*(x-1)/2;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ a[i].m1=a[i].m2=a[i].m3=0; a[i].t1=a[i].t2=a[i].t3=i; } for(int i=1;i
=3&&num[y]>=2) { LL p=0; if(a[x].t1==y) p=a[x].m2+a[x].m3; else if(a[x].t2==y) p=a[x].m1+a[x].m3; else p=a[x].m1+a[x].m2; if(a[y].t1==x) p+=a[y].m2; else p+=a[y].m1; p+=len; maxn=max(p,maxn); ans+=C(num[x]-1)*(num[y]-1); } int tmp=x;x=y,y=tmp; if(num[x]>=3&&num[y]>=2) { LL p=0; if(a[x].t1==y) p=a[x].m2+a[x].m3; else if(a[x].t2==y) p=a[x].m1+a[x].m3; else p=a[x].m1+a[x].m2; if(a[y].t1==x) p+=a[y].m2; else p+=a[y].m1; p+=len; maxn=max(p,maxn); ans+=C(num[x]-1)*(num[y]-1); } } printf("%lld\n%lld",ans,maxn); return 0;}

转载于:https://www.cnblogs.com/dfsac/p/7587829.html

你可能感兴趣的文章
strncpy, strncpy_s
查看>>
sqlserver 大杂烩
查看>>
python俱乐部
查看>>
haXe
查看>>
python --Everything is Object
查看>>
解决问题的方式
查看>>
Haffman编码(haffman树)
查看>>
Java排序算法——插入排序
查看>>
Swift3.0语言教程使用路径字符串
查看>>
Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
查看>>
9.2 空间拓扑运算[转]
查看>>
监控视频相关数据集
查看>>
(转)android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
查看>>
面试经典-设计包含min函数的栈
查看>>
linux下php添加cur/soapl扩展
查看>>
【百度地图API】多家地图API文件大小对比
查看>>
也可以使用如下命令更改您的默认 Shell
查看>>
Windows系统中IIS 6.0+Tomcat服务器环境的整合配置过程
查看>>
2015-03-15
查看>>
Node.js HTTP Server对象及GET、POST请求
查看>>