首页 > 其他分享 >10.10

10.10

时间:2024-10-10 19:23:35浏览次数:6  
标签:直线 le10 int 唐题 区间 10.10 线段

我本来以为打模拟赛有两种苦难

一种是豪挂不止——『愤怒』
一种是完全不会——『绝望』

然后今天发现了被忽视的第三种——『哀伤』

\(A\) 不到一个小时想出来咋写,从思路到细节总之代码的整个流程跟题解都一模一样,但是写不出来。
虽然不知道这个容斥的名字,但是我能清楚的记得刚上初三集训的时候那场提高组模拟赛的那道蚂蚁走网格但是有两条河 C_liar 场切的那道题。
我还记得题解说来回翻递归下去容斥就好了。
但是我忘了怎么写了。
对整个题的记忆非常深刻但是就只有一个点只记了个大概,还挺悲伤的。
好不容易思维想到了,但是算法没跟上也挺难受的。
距离 \(100\) 仅差一个能返回两个直线间合法路径数的函数,然后写了三个半小时豪取弱化版 \(30pts\) 遗憾退场。
赛后发现 \(B\) 纯唐题,\(D\) 不怎么纯的唐题。
所以这种题为什么放 \(A\) 啊。。。
不过体育课真开心!

A.宝石

[ZJOI2008] 生日聚会

于是这道抽象题就诞生了。
\(n,m\le10^7,k\le10^9\)

若一种为 \(+1\) ,一种为 \(-1\) ,则我们需要满足前缀 \(\max\) 与前缀 \(\min\) 的差值 \(\le k\)。
这种东西直接 \(dp\) 很麻烦,所以考虑放到二维平面上。

于是将操作转化为横坐标 \(+1\) 或 纵坐标 \(+1\) ,同时结合上前面的 \(+1/-1\) ,于是我们问题转化为 \((0,0)\) 到 \((n,m)\) 路径经过节点 \(\max\{y-x\}-\min\{y-x\}\le k\) ,容易发现 \(y-x\) 相同的为一条直线,即 \(y=x+b\) 。我们现在知道两条直线的间距 \(k\) ,枚举其中一条直线的间距,另一条直线就确定了,然后要解决不能穿过这两条直线的到 \((n,m)\) 的合法路径数。
这个东西可以用这个式子求。
\(ans=\sum_{k\in \mathbb{Z}}\binom{n+m}{n-k(r-l)}-\binom{n+m}{n-k(r-l)+r}\)
最后有一个问题就是我们有的区间会被算重。
考虑一条很长的线段,同时用一条长为 \(k\) 的线段从左往右移动,同时计算区间内所有子区间的和,那么一个长为 \(l\) 的区间会被统计 \(k-l+1\) 次,但是我们想让每个区间都被统计一次。
所以用长度为 \(k-1\) 的线段再扫一遍即可,这时长度为 \(l\) 的区间被统计了 \(k-l\) 次,用长度为 \(k\) 的线段求出的和减去 \(k-1\) 的就好。
下面是反射容斥的代码:

inline LL W(int mx,int mn)
{
	LL res = 0;int len = mx-mn;
	for (int d = (n+mx)/len;n-d*len <= n+m;d--)
		res = mod(res+mod(C(n+m,n-d*len)-C(n+m,n-d*len+mx)));
	return res;
}

事实证明我没写过一个东西赛时就真的写不出来,这个两行的循环控了我将近 \(3\) 个小时。

B.促销

\(n\le100,k\le10^9\)
唐题,值域很小,矩阵快速幂优化 \(dp\),复杂度 \(O(n^3\log k)\) 。

D.如何度过双十一

不怎么纯的唐题,对每个区间 \([l,r]\) 增加两维 \(l',r'\) 分别表示移除左边界挡板和右边界挡板之后的活动范围 \((l',r)\) 为 \((l,r')\) 。这个可以扫描线 \(set\) 维护暴力求。两个区间 \((l_1,r_1,l_1',r_1'),(l_2,r_2,l_2',r_2')\) 能同时坐人当且仅当 \(l_2\ge r_1'\) 且 \(l_2'\ge r_1\) ,然后扫一遍同时维护前缀最大值转移即可。

标签:直线,le10,int,唐题,区间,10.10,线段
From: https://www.cnblogs.com/ZepX-D/p/18456958

相关文章

  • 24.10.10
    非常好双十模拟赛,使我的分数任意旋转都不变(〇),爱来自CDQZ。话说怎么双十模拟赛题面都是双十一啊(A数据范围弱化版:P2592。\(n,m\le10^7\)。把一个看作\(+1\)另一个\(-1\),那么合法序列即为前缀和的最大值与最小值的差\(\lek\)。在一维上不好写,上二维平面。把向右走一步......
  • 2024.10.10 1514版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 2024.10.10 总结
    A:赛时发了什么疯非要来冲这题。不妨计各种颜色的宝石为0/1。考虑记前缀和的最大值为\(S_\max\),最小值为\(S_\min\),于是总的限制为\(|S_\max-S_\min|\leqk\)。考虑反向维护这个限制,即枚举一个\(i\),然后钦定\(i\leqS_\min\leqS_\max\leqi+k\),计算对应的序列个数。然后......
  • 闲话 10.10
    想到什么写什么昨晚CTH(大喊):HDK!HDK(大喊):CTH!CTH(愣了一下):干啥?2-SAT定义给出若干个形如\(a\lorb\)的限制条件,询问是否有满足条件的一组解。人话:给出\(n\)个集合,每个集合两个元素,再给定若干个限制条件\(\left\langlea,b\right\rangle\)表示\(a\)与\(b\)矛盾,询......
  • UpdatePack7R2 24.10.10 参数详细说明及示例
    UpdatePack7R224.10.10使用示例以下是一些使用UpdatePack7R2的示例命令:自动安装所有更新,包括InternetExplorer11,并重启计算机:CopyCodeUpdatePack7R2.exe/ie11/silent/reboot隐藏所有现有产品的更新,不更改InternetExplorer的版本,并且不重启计算机:CopyCode......
  • 110.109 Introductory Financial Accounting
    110.109Introductory FinancialAccountingAssessment3 BookletDistanceandInternalSemester2– 2024IMPORTANT INFORMATIONThis is an electronic assessment and must be completed in the “Assessment 3 Answer Workbook” – Excel temp......
  • python3.10.10安装
    链接:https://www.python.org/选择一个盘建个python文件夹(任意盘,以E盘 python310为例,文件名任意字母数字下划线);安装包可分享路径不要太深E:\python310卸载uninstall 卸载之后可以把之前存储位置的文件夹(E:\python310)删除......
  • C++Primer Plus对象和类的练习,练习10.10类和对象 练习2默认参数和重载
    2.下面是一个非常简单的类定义:classPerson{private:staticconstLIMIT=25;stringlname;//Person’slastnamecharfname[LIMIT];//Person’sfirstnamepublic:Person()(lname=“”;fname[0]=0’;}//#1Person(conststring&ln,constchar*fn=“Heyyou”);//......
  • 这种运行结果里的10.100000001,怎么能最快改成10.1?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题。问题如下:这种运行结果里的10.100000001,怎么能最快改成10.1,所有结果都最多一位小数。二、实现过程这里【论草莓如何成为冻干莓】和【.】给了一个指导:用round函数或者’%.......
  • 10.10
    今天我对线段树进行了深入的学习,理解了其基本概念和操作,包括线段树的定义、节点的创建、遍历和更新等。通过编写代码,我实践了这些操作,对线段树有了更深刻的理解。在处理复杂的线段树问题时,我意识到自己在构建和管理线段树方面还有很大的提升空间。如何利用线段树的性质优化内存使......