博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20190317 A
阅读量:5251 次
发布时间:2019-06-14

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

今天是学长wsy的题,我理论会100+50+30=180,实际100+20+10=130,充分体现我的菜

最近日常模拟赛挂分50到60,很危险,这2天一定要调整好。。。

Upd:T2我认为50的划分数做法其实是100分做法。。。

Upd:T3我猜出了式子的形式却没推出来。。。

感觉浪费了ak场。。。(不过5h估计也写不完。。。)如果是lqs/wzy一定随手ak吧。。。

对超常发挥的T1记录一下吧:(zr的题题面就不放了)

大致思路:

考虑枚举a一个一个暴力建图

不难发现a新建边只对>a的点有作用                  --------------用时20min

所以建图过程可以认为是从小到大枚举a,把比a大的a的邻居连成团

暴力维护团/dfs直接建边都有O(n^3/6)或者O(n^2)的50分建图做法(常数超小)  -------------用时30min

认为图是有向的,从小向大连,图是一个DAG              -------------用时40min

考虑答案统计,一个点的限制是与之相邻的点

类比树的染色,DAG的染色的困难在于

1---->2

|         |

v       v

3---->4

的图中4的染色时2,3是否相同需要讨论

观察题中DAG的性质,发现对于节点i(如图中1),任意2个出边的点之间有边,即图中1,2,3的关系不会有

答案是每个点(n-出度)的乘积

此时比赛已经开始60分钟,写了O(n^3/6)得到50分

边数一共是O(n^2)条,复杂度O(n^3)怎么也不合理

观察重要结论:每次连所有比a大的邻居成团的时候只需要连最小的b和其他所有邻居即可

因为剩下的在枚举到b之前无用,而在枚举到b时一定会加入进去

85分钟 写了O(n^2)仍然50分

本着T1不a一定掉分的信念继续想

观察刚才的重要结论:

每次相当于把a的所有邻居变成b的邻居,维护邻居集合,每次合并a,b即可

暴力set启发式合并O(nlog^2n)

线段树合并/平衡树合并有望O(nlogn)

最终set启发式合并水过此题(少有的小常数)-----------------------总用时120min

 

感觉思路非常妙啊。。。

虽然巨佬们肯定认为这是一道水题。。。

 

转载于:https://www.cnblogs.com/xyleo/p/10546799.html

你可能感兴趣的文章
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
第三次作业
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>