csp-s模拟测试41「夜莺与玫瑰·玫瑰花精·影子」

Posted znsbc-13

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csp-s模拟测试41「夜莺与玫瑰·玫瑰花精·影子」相关的知识,希望对你有一定的参考价值。

夜莺与玫瑰

题解

联赛$T1$莫比乌斯$\\%\\%\\%$

技术图片

 

 $dead$  $line$是直线

首先横竖就是$n+m$这比较显然

枚举方向向量

首先我们枚举方向向量时只枚举右下方向,显然贡献$*2$就是所有斜着的直线

$i,j$表示当自己向右$i$个单位长度,向下$j$单位长度

我们相同斜率下只算最短的线贡献,(因为其他长度下方案数都包含在最短里面了)

我们方向向量$i$,$j$的$gcd(i,j)==1$时我们枚举的才是当前斜率最短长度,

然后考虑贡献

考虑容斥,先算出来当前长度下所有线段再减去重合的

$(n-a)*(m-b)$是总方案数,考虑重合部分

假设我们有一个4*4点阵

. . . .

. . . .

. . . .

. . . .

我们算1,1方向向量贡献

\\ \\ \\ .

\\ \\ \\ \\

\\ \\ \\ \\

. \\ \\ \\

只有

\\ \\ \\ .

\\ \\ \\ \\

\\ \\ \\ \\

. \\ \\ \\

才有贡献,别的都是算重的

定义前趋为$x-1$ $y-1$,后继$x+1$ $y+1$

观察这些线发现符合条件就是前趋不在点阵而后继在点阵数量

例如$1$,$1$这个点$+$方向向量得到$-1$ $-1$ 和$2$ $2$

因为$-1$ $-1$不在点阵内所以是合法的

,我们把他们都提到与边界相重

看他们相减后是否在边界中即可

重复的部分就是$max((n-2*a),0)*max((m-2*b),0)$

 

代码

夜莺

 

以上是关于csp-s模拟测试41「夜莺与玫瑰·玫瑰花精·影子」的主要内容,如果未能解决你的问题,请参考以下文章

4A夜莺性能测试丨炸裂弹奏《Like a star》

csp-s模拟测试58「Divisors」·「Market」·「Dash Speed」?

csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」

csp-s模拟测试94「凉宫春日的犹豫·漫无止境的八月·射手座之日」

csp-s模拟测试50(9.22)「施工(单调栈优化DP)」·「蔬菜(二维莫队???)」·「联盟(树上直径)」

csp-s模拟测试59(10.4)「Reverse」(set)·「Silhouette」(容斥)