2019CCPC湖南全国邀请赛(广东省赛、江苏省赛)重现赛

本文介绍了2019年CCPC湖南全国邀请赛的算法问题,包括A Chessboard、B Build Tree等题目。详细解析了部分题目解法,如A题采用最大费用最大流解决,D题尚未解决,E题采用贪心策略。
RankSolvedABCDEFGHIJkL
?/?7/12OOO.OØØØO.OO

O: 当场通过

Ø: 赛后通过

.: 尚未通过

A Chessboard

solved by chelly


chelly’s solution

把每个行和每个列抽象成一个点。

  • iii行向第i+1i+1i+1行连边,第jjj列向第j−1j-1j1列连边,费用是000,容量根据限制条件来
  • SSS向第111行连边,第111列向TTT连边,费用是000,容量根据限制条件来
  • 如果第kkk个棋子的坐标是(i,j)(i,j)(i,j),那么第iii行向第jjj列连边,费用是kkk,容量是1

S−>TS->TS>T求最大费用可行流即可。
注意离散化只需要对棋子坐标离散化,对与限制不需要离散化,不然会TLE。

B Build Tree

solved by chelly&viscaria


chelly’s solution

C Chika and Friendly Pairs

solved by chelly


chelly’s solution

莫队+树状数组。

D Chika and Solid Geometry

unsovled


E Hello XTCPC

solved by viscaria&chelly


chelly’s solution

贪心,每次取出字典序最小的序列

F Neko and function

solved by feynman1999


feynman1999’s solution

看到这个范围,第一反应就是EES类似。

考虑fff函数如何计算,发现不是积性函数而且不好计算。

考虑另外一个函数ggg,和fff的区别只是限制条件ai>1a_i>1ai>1变为ai≥1a_i\ge 1ai1,这个时候考虑g(n,k)g(n,k)g(n,k)如何求解以及fffggg之间的关系。

  • 考虑fffggg之间的关系,显然ggg的情况是不小于fff的,考虑多的部分,其实就是有ai=1a_i=1ai=1的情况。自然想到枚举哪个位置放1,剩下的用ggg继续表示,即f(n,k)=g(n,k)−Ck1∗g(n,k−1)f(n,k) = g(n,k) - C_k^1*g(n,k-1)f(n,k)=g(n,k)Ck1g(n,k1)。 但发现其实多减去了,因为后面那个部分统计显然有重复,重复的就是Ck2∗g(n,k−2)−Ck3∗g(n,k−3)+....C_k^2*g(n,k-2) - C_k^3*g(n,k-3)+....Ck2g(n,k2)Ck3g(n,k3)+....

    也就是要容斥一下,即f(n,k)=∑i=0k(−1)i∗Cki∗g(n,k−i)f(n,k) = \sum_{i=0}^k(-1)^i*C_k^i*g(n,k-i)f(n,k)=i=0k(1)iCkig(n,ki)

    由于kkk只有30,这个时候祈祷ggg是积性函数,ees就结束了。确实是。

  • 考虑函数g(n,k)g(n,k)g(n,k),将nnn质因子分解,可知不同质因子贡献是满足积性的。而对于g(pe,k)g(p^e,k)g(pe,k),对应于eee个球,kkk个盒子,球没有区别,位置(盒子)有区别的放球模型(可以有空盒)。即g(pe,k)=Ce+k−1k−1g(p^e,k) = C_{e+k-1}^{k-1}g(pe,k)=Ce+k1k1k−1k-1k1个插板 ,e+k−1e+k-1e+k1个位置)。最多30次ees即可。

注意ees dfs中,改用Long long 不要用int,二分找错误才发现一个bug,原来爆了int…cao

G Neko and quadrilateral

upsolved by viscaria


viscaria’s solution

H Neko and sequence

upsolved by chelly


chelly’s solution

首先不可以倍增来求解。
考虑到一个重要的性质,从一个位置出发会到达一个长度为222的环,进入环之后,答案就只和ddd的奇偶性有关。
我们可以先预处理出每个位置走多少步进环,以及进环后ddd为奇数/偶数时候分别的答案。
对于每个询问(l,r,d)(l,r,d)(l,r,d),我们分成两个部分进行统计,一部分是未进环的,一部分是进环的,这个可以通过离线来处理。
对于进环的部分,奇数和偶数分别维护一个树状数组即可。
对于不进环的部分,以)为例,考虑一个位置iii,那么最后的答案就是(i+dk%n)%n(i+dk \% n) \% n(i+dk%n)%n,设p=dkp=dkp=dk,容易发现区间[l,r][l,r][l,r]会被分成两部分,一部分答案就是i+pi+pi+p,一部分答案就是i+p−ni+p-ni+pn,分别利用维护的树状数组进行统计即可。((的处理是类似。)
时间复杂度O(nlogn)O(nlogn)O(nlogn)

I Neko and tree

solved by chelly


chelly’s solution

dp[u][i]dp[u][i]dp[u][i]表示以uuu为根的子树,选了一些key point,其中最深的key point离uuu的距离是iii情况下的方案数。
直接树上背包转移即可。

J Neko and triangle

unsolved


K SSY and JLBD

solved by viscaria


viscaria’s solution

L Can you raed it croretcly?

solved by viscaria


viscaria’s solution

Dirty Replay

  • A题:TLE了4发,主要离散化之后剩下的点多了。事实证明留下点数2e52e52e5的二分图跑费用流还是很慢的。
### 关于CCPC江苏2022省的信息 尽管当前提供的引用主要涉及的是“海康威视杯”2022年第十四届四川省大学生程序设计大的内容[^1],并未直接提及CCPC江苏2022省的具体细节。然而,可以推测两者作为省级竞,在题目难度、比形式以及参经验方面可能存在相似之处。 #### 比概述 中国大学生程序设计竞(China Collegiate Programming Contest, CCPC)是一项面向全国高校学生的高水平编程事。江苏省CCPC通常会吸引来自省内各大院校的学生参与。这类比一般分为多个阶段,包括区域和总决。对于具体到某一年份的比情况,例如2022年的江苏区,可以通过以下几个角度来探讨: - **题解分析** 虽然未提供具体的CCPC江苏2022省题解文档链接或内容,但从其他省份的经验来看,此类比往往涵盖了算法基础、数据结构应用及复杂问题求解等多个领域。例如动态规划、图论、字符串处理等问题类型均可能成为考察重点。 - **参体验分享** 学生们在参加类似规模的大时,普遍反馈准备过程非常重要。这不仅限于技术能力提升还包括团队协作默契培养等方面。一位名为Linno的博主在其文章中提到过关于如何有效备战ACM/ICPC类事的一些技巧,这些方法同样适用于CCPC系列比: - 定期刷LeetCode或其他在线评测平台上的经典习题; - 组织模拟训练营以增强实战演练效果; - 总结每次练习中的错误并加以改正。 ```python # 示例代码展示了一个简单的二分查找实现方式, # 这种基本技能是在各类程序设计比中都需要掌握的基础之一。 def binary_search(arr, target): low = 0 high = len(arr) - 1 while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 ``` #### 结语 综上所述,虽然目前缺乏针对CCPC江苏2022省确切资料的支持,但通过借鉴同级别活动实例仍能获取不少有价值的信息用于参考学习。希望上述介绍能够帮助您更好地理解该主题相关内容!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值