Helvetic Coding Contest 2019 差A3 C3 D2 X1 X2
Helvetic Coding Contest 2019
A2
题意:给一个长度为 n 的01序列 y。认为 k 合法当且仅当存在一个长度为 n 的01序列 x,使得 x 异或 x 循环右移 k 位的 01 串得到 y 。问合法的 k 的个数。 \(n \le 2*10^5\)
key:找规律
考虑如何check一个 k 是否合法。那么对于所有的 i 和 i-k 在模 n 的意义下,如果 y 的第 i 位为 0 则二者必须不同,否则必须相同。这样可以用并查集判断是否合法。实际上是把相同的缩起来后看看是否存在奇环。
仔细观察可以发现实际上只有 i+k*m 这个集合中的点有边,并且形成了一个环,而环的大小就是集合中 1 的个数。
实际上,对于一个 k ,只需要把 1~n 按照模 gcd(k,n) 分成等价类,判断每个等价类中 1 的个数即可。所以只需要对 n 的每个约数做预处理。复杂度 \(O(n\sqrt n)\)
B2
题意:给一个带权二分图,边权均为 k 。可以加若干个右部点连向所有左部点,边权为 h。求二分图最小权匹配。 \(n \le 1000\)
key:二分图
实际上只有两种情况:全部匹配,花费为 n*h。或者不加新点,花费为匹配数*k。证明比较显然。写这个题主要是当时傻逼了……
E1
题意:给一个带权无向图。定义 \(E_{\max}(c_i)\) 是把第 i 条边的边权最大修改成多大,使得它可能出现在最小生成树中。求 \(E_{\max}(c_1)\)。 \(n \le 10^5\)
key:最小生成树
有一个易证的结论:若某边可以出现在最小生成树中,那么把严格小于该边边权的所有边加入图中,该边的两个端点仍然处于两个联通块中。
E2
题意:对于所有非树边,求上题中的 \(E_{\max}(c_i)\)。保证最小生成树唯一。 \(n \le 10^5\)
key:最小生成树
因为最小生成树唯一,所以还是有一个易证的结论:一条非树边的答案为对应最小生成树的链上最大值。
E3
题意:对于所有边,求上题中的 \(E_{\max}(c_i)\)。 \(n \le 10^5\)
key:最小生成树
首先先看非树边,考虑E2的做法以及它为什么在不唯一时仍然成立:对于做出来的一棵最小生成树,非树边的答案显然是大于等于链上最大值的。如果存在一个最小生成树的形态使得在这条链上的最大值更大,那么显然可以把这条边换掉来得到一个更小权的生成树,矛盾。实际上这表明对于最小生成树的任意形态,两点之间的最大值是不变的(NOIP2013 货车运输)
对于树边其实比较简单:如果在生成树上把这条边去掉,会分成两个联通块,考虑所有连接这两个联通块的边,除去它本身最大的那条边即为答案。换句话说,所有覆盖它的非树边中最小的即为答案。这可以用并查集简单的维护。
Helvetic Coding Contest 2019 差A3 C3 D2 X1 X2的更多相关文章
- Helvetic Coding Contest 2019 online mirror (teams allowed, unrated)
http://codeforces.com/contest/1184 A1 找一对整数,使x^x+2xy+x+1=r 变换成一个分式,保证整除 #include<iostream> #in ...
- Helvetic Coding Contest 2019
题目链接:戳我 小注:其中部分(大括号不换行的)代码是BLUESKY007神仙写的. 咕 CF1184 A1 直接枚举,以根号的时间复杂度判断即可.注意x,y都是正整数. #include<io ...
- CF 690C3. Brain Network (hard) from Helvetic Coding Contest 2016 online mirror (teams, unrated)
题目描述 Brain Network (hard) 这个问题就是给出一个不断加边的树,保证每一次加边之后都只有一个连通块(每一次连的点都是之前出现过的),问每一次加边之后树的直径. 算法 每一次增加一 ...
- [Helvetic Coding Contest 2017 online mirror]
来自FallDream的博客,未经允许,请勿转载,谢谢, 第一次在cf上打acm...和同校大佬组队打 总共15题,比较鬼畜,最后勉强过了10题. AB一样的题目,不同数据范围,一起讲吧 你有一个背包 ...
- 【Codeforces】Helvetic Coding Contest 2017 online mirror比赛记
第一次打ACM赛制的团队赛,感觉还行: 好吧主要是切水题: 开场先挑着做五道EASY,他们分给我D题,woc什么玩意,还泊松分布,我连题都读不懂好吗! 果断弃掉了,换了M和J,然后切掉了,看N题: l ...
- Helvetic Coding Contest 2016 online mirror A1
Description Tonight is brain dinner night and all zombies will gather together to scarf down some de ...
- Helvetic Coding Contest 2016 online mirror F1
Description Heidi has finally found the mythical Tree of Life – a legendary combinatorial structure ...
- Helvetic Coding Contest 2016 online mirror B1
Description The zombies are gathering in their secret lair! Heidi will strike hard to destroy them o ...
- Helvetic Coding Contest 2016 online mirror C2
Description Further research on zombie thought processes yielded interesting results. As we know fro ...
随机推荐
- delphi http server
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...
- selenium爬取优酷页面并下载图片
from selenium import webdriver import requests driver = webdriver.Chrome() #打开优酷 driver.get("ht ...
- Java并发分析—synchronized
在计算机操作系统中,并发在宏观上是指在同一时间段内,同时有多道程序在运行. 一个程序可以对应一个进程或多个进程,进程有独立的存储空间.一个进程包含一个或多个线程.线程堆空间是共享的,栈空间是私有的.同 ...
- Java 14 令人期待的 5 大新特性,打包工具终于要来了
随着新的 Java 发布生命周期的到来,新版本预计将于 2020 年 3 月发布,本文将对其中的 5 个主要特性作些概述. Java 13刚刚发布给开发人员使用不久,最新版本的JDK于2019年9月发 ...
- 2020/1/28 PHP代码审计之代码执行漏洞
0x00代码执行原理 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞. 该漏洞主要存在于eval().assert().p ...
- dfs--汉诺塔
在研究汉诺塔问题时,我们可以先分析俩个盘子的方法: 1.把第一个盘子放到辅助柱子上 2.把第二个盘子放大目标柱子上 3.把第一个盘子从辅助柱子移到目标柱子上 由此我们可以通过整体思想推导出一共有n个盘 ...
- image compression with libjpeg
http://www.aaronmr.com/en/2010/03/test/ Working on the project I've seen in the need for compression ...
- Disruptor的简单介绍与应用
前言 最近工作比较忙,在工作项目中,看了很多人都自己实现了一套数据任务处理机制,个人感觉有点乱,且也方便他人的后续维护,所以想到了一种数据处理模式,即生产者.缓冲队列.消费者的模式来统一大家的实现逻辑 ...
- 连词词组|relax|brings about a rise in|Chance are (high)that|Have no clue|Be passionate about|Tedious|overwhelmed by piles of
efficient有效率的 effective有效果的 Make sb. Do Stuff没有复数 首先的三种表述:First off=To begin with=For starters 其次:Ad ...
- 面向对象 part5
构造函数模式与原型模式结合 function Person(name) = { this.name = name this.friends = ["a", "b" ...