HYNB Round 8: 2016 ICPC Amritapuri Regionals

A - Tim and BSTs

做法

  • 经典的树 DP 问题。
  • \(dp[u][i]\) 表示考虑以 u 为根子树,u 的 rank 为 i 方案数。
  • 关于 \(dp[u][]\) 的计算,枚举左子树有几个比根小的,枚举右子树有几个数字比根小。合并两棵子树的复杂度为 \(O(sz_1 * sz_2)\),因此可以 \(O(n^2)\) 计算答案。

B - A Historic Discussion

做法

  • 每次把一个集合分裂成两个大小尽可能相等的集合放到两边
  • 次数为把n除2上取整变成1需要的次数

C - Influence on Social media

做法

  • 预处理所有合法的数字,合法的数字一定是 \(p^k\) 形式,其中 \(k+1\) 为质数。
  • 注意排序输出。

E - Black Money Island

做法

  • 问题转化为给一个图,有白边和黑边,问是否存在恰有 k 条黑边的生成树。
  • 第一眼带权二分......... 有点憨憨。
  • 口胡一个引理:对于任意一棵包含黑边数最少的生成树 \(T_1\),存在一棵包含极多黑边的生成树 \(T_2\),使得 \(T_1\) 中的黑边是 \(T_2\) 中黑边的子集。
  • 口胡一个证明:考虑 \(T_1\) 中黑色的非树边,逐条添加,加上后得到一个环,如果环上存在白边,删除白边,如果不存在,删除刚添上的黑边。
  • 做一棵包含黑边数最少的生成树 \(T_1\),保留下 \(T_1\) 中所有黑边,并查集维护点连通性,逐条添加其它黑边。

F - Notes and GPS Chips

做法

  • 构造第一种芯片的生成函数:\(f(x)=\sum_{i=1}^{\infty}i^2x^i=\frac{x(1+x)}{(1-x)^3}\)
  • 构造第二种芯片的生成函数:\(g(x)=\sum_{i=1}^{\infty}3i(i+1)x^i=\frac{6x}{(1-x)^3}\)
  • 于是答案为\((f(x))^A*(g(x))^B\)里\(x^N\)的系数
  • 把\(\frac{6^B(1+x)^Ax^{A+B}}{(1-x)^{3A+3B}}\)里的\((1+x)^A\)拆开枚举一下,剩下是个组合数,复杂度\(O(A+B)\)
  • 贼基本的组合数求蒙了导致没写出来。。。
  • 至今不知道题意怎么读出来的p序列前A个是第一种芯片后B个是第二种芯片

G - Hawala Arrests

做法

  • 考虑树是根链的 case,问题是个经典的序列上贪心问题:序列上,选择极少的点,使得每个区间至少包含一个点。
  • 把连通块的根当成右端点即可。
  • 不会证明。

H - Netcoin Verification


I - Mancunian Hoards Black Money

做法

从大到小考虑,可以拿的物品,就拿,不拿的话,拿之后所有的物品都凑不齐。


J - Bob vs ATM

做法

  • 根据括号序列建树。
  • 删除一段相当于删除子树,树上删边游戏。

K - Paint for Vernon

HYNB Round 8: 2016 ICPC Amritapuri Regionals的更多相关文章

  1. 2016 ICPC总结

    2016 ICPC总结 九月份开学,开始知识点的补充,刚开始的几周都在刷acmsteps,十月开始进行专题性的学习,首先进行的数据结构,给自己定的计划,十一月前看完数据结构,刚开始的时候看的都是以前的 ...

  2. 2016 ICPC Mid-Central USA Region J. Windy Path (贪心)

    比赛链接:2016 ICPC Mid-Central USA Region 题目链接:Windy Path Description Consider following along the path ...

  3. HYNB Round 15: PKU Campus 2019

    HYNB Round 15: PKU Campus 2019 C. Parade 题意 将平面上n*2个点安排在长度为n的两行上. 做法 首先可以忽略每个点之间的影响,只用考虑匹配即可 然后把所以点归 ...

  4. 2016 ICPC青岛站---k题 Finding Hotels(K-D树)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5992 Problem Description There are N hotels all over ...

  5. 2016 ICPC北京站现场赛总结(再度流水账)

    其他的都先不说,北大的未名湖真的美! 虽然感觉北大其他地方都有些破旧之感,但是未名湖附近真的值得称赞. 在去北京之前就听说北京温度很低,不过是干冷,果不其然.北京不冷,就是嘴唇太干了,不喝水真的受不了 ...

  6. [Google Codejam] Round 1A 2016 - The Last Word

    [Problem Description] Problem On the game show The Last Word, the host begins a round by showing the ...

  7. 2021ICPC网络赛第一场部分题解-The 2021 ICPC Asia Regionals Online Contest (I)

    写在前面 本来应该6题的,结果不知道哪个铸币发了H的clar,当即把我们的思路转向三维几何上.当时我们还在想这三维计算几何的正确率有点太高了还在感叹ICPC选手的含金量,直到赛后我才知道这H题的铸币出 ...

  8. 2016 ICPC大连站---F题 Detachment

    题意:输入一个x,将x拆分成一些小的数(这些数不能相同,即x=a1+a2+......   ai!=aj when i!=j),然后这些数相乘得到一个成积(s=a1*a2*......),求最大的乘积 ...

  9. 2016 ICPC China-Final 现场赛总结

    距离比赛结束快有一个礼拜了才抽出时间来写这篇总结.今年比赛打了也有5场了(4场区域赛+1场省赛),也取得了不错的成绩(区域赛两银),总的来说第一年就取得这成绩还是挺高兴的.我们队,我自己都渐渐的趋于成 ...

随机推荐

  1. Batch - FINDSTR

    总结 Searches for strings in files. 在文件中寻找特定的字符串 官方文档 C:\Users\cuixunxu>FINDSTR /? Searches for str ...

  2. charles抓取数据

    charles抓包 抓取手机app的数据 charles设置 help--->SSL Proxying--->Install Charles Root Certificate 1.给电脑下 ...

  3. vue组件间函数调用

    vue父子组件间函数调用 <Child ref="myChild"></Child> // 父组件 // 引入子组件 import Child from ' ...

  4. Exception一自定义异常

    异常体系的根类是:Throwable Throwable: Error:   重大的问题,我们处理不了.也不需要编写代码处理.比如说内存溢出. Exception:   一般性的错误,是需要我们对编写 ...

  5. Kafka高级API和低级API

    Kafka消费过程分析 kafka提供了两套consumer API:高级Consumer API和低级API. 1 高级API 1)高级API优点 高级API 写起来简单 不需要去自行去管理offs ...

  6. NX二次开发-UFUN写入本地文本文档uc4524

    1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_cfi.h> 5 #include <uf_ui.h> 6 7 us ...

  7. java带jar编译与运行

    javac -classpath ./wxpay-sdk-0.0.3.jar HttpsTest2.java java -cp .:./wxpay-sdk-0.0.3.jar HttpsTest2

  8. SQL语句增加列、修改列、删除列

    SQL语句增加列.修改列.删除列 1.增加列: 1.alter table tableName add columnName varchar(30) 2.ALTER TABLE dbo.doc_exa ...

  9. Metasploit 模块和位置

    Metasploit Framework由许多的模块组成的. 一.Exploits(漏洞模块) 定义为使用“有效载荷(payloads)”的模块 没有“有效载荷”的攻击是辅助模块 二.Payloads ...

  10. Python3 From Zero——{最初的意识:004~迭代器和生成器}

    一.反向迭代:reversed() >>> a [1, 2, 3, 4] >>> for x in reversed(a): ... print(x, end=' ...