首页 > 其他分享 >Being stupid is hard.

Being stupid is hard.

时间:2023-08-15 20:45:43浏览次数:51  
标签:Being siz 最大值 hard pos 然后 枚举 stupid MOD

\(n\) 个元素分成 \(m\) 份,每份不能为空,在 \(n - 1\) 个空中插入 \(m - 1\) 个板子,方案数\(C_{n - 1} ^ {m - 1}\)。

为空则加上 \(m\) 个元素来垫着,就转化为上一个,然后就是 \(C_{m - n + 1} ^ {m - 1}\)。所以为什么我之前不会插板?我是傻逼吗?

然后突然发现,之前一直以为 Games with Rectangle 是在插板,但是其实就只是因为有 \(n - 1\) 个可选,然后选出 \(2k\) 条作为矩形的长(宽类似)而已,所以我是傻逼。

然后还是不懂 Little Elephant and LCM。所以重新理一遍。

假设枚举的 \(i\) 所有因数从小到大是 \(p_1, p_2, \dots, p_m\)。那么我们只能从其中选组成 \(b\) 数组。这边为什么要枚举间隙啊?

其实是因为每个 \(a_i\) 可以放的个数是不一样的,所以要分开计算。

比如 \(a_{1 \sim i - 1}\) 可以放 \([r_{i - 1}, n]\),\(a_{1 \sim i}\) 可以放 \([r_i, n]\),那么就是 \([r_{i - 1} + 1, r_i]\) 可以放 \(i\) 个。至于直接用 lower_bound 相减只是因为这个结果刚好等于上面区间的长度。然后就是:

for (int j = 1; j <= siz - 1; j++)
	(res *= qkpow(j, pos[d[i][j]] - pos[d[i][j - 1]])) %= MOD;

这时候全部放的数量还没有统计(只到了 \(siz - 1\))。还要固定选出的最大值是枚举的 \(i\),这里其实是用的最大值 \(\leq i\) 的方案数减去最大值 \(\leq i - 1\) 的方案数,就是最大值 $ = i$ 的方案数。然后:

(res *= (qkpow(siz, n + 1 - pos[d[i][siz - 1]]) - qkpow(siz - 1, n + 1 - pos[d[i][siz - 1]]) + MOD) % MOD) %= MOD;

这里的 n + 1 - pos[d[i][siz - 1]] 是因为 lower_bound 的奇怪写法,反正就是可以放的区间长度。

标签:Being,siz,最大值,hard,pos,然后,枚举,stupid,MOD
From: https://www.cnblogs.com/liuzimingc/p/stupid.html

相关文章

  • 内核softlockup和hardlockup的一些参数分析
    一参数配置  Softlockup和hardlockup作为内核中的"lockup-看门狗"可以检查系统中调度和中断是否正常运转,其原理可以参考lockup-watchdogs。这两种watchdogs在/proc/sys/kernel/目录下有一些配置参数来对功能进行控制和调整procfs下的接口文件名称接口说明内核中对应的......
  • Spring Boot集成Sharding JDBC分库分表
    背景近期公司购物车项目需要使用ShardingJDBC分表,特记录下。ps:未分库依赖引入<!--sharding-sphereVersion:4.1.1--><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><ver......
  • Sharding自定义分片策略
    公司分库分表使用用户id,主键后3位拼接用户id后三位,现把相关分片规则自定义简易组件使用一、参数配置引用者可以配置主键字段与用户字段命名,配置分片日志记录等packagecom.ypshengxian.shardingslice.properties;importorg.springframework.beans.factory.annotation.Val......
  • OD介绍及基本操作 so hard!
    OD介绍及基本操作sohard!Odindex&basicoperation#include<iostream>#include<Windows.h>#include<tlhelp32.h>intmain(){intb;inta=123;scanf_s("%d",&b);if(b==a){MessageBoxA(NULL,"回答正确!","回答正确!&......
  • CodeForces 1856E2 PermuTree (hard version)
    洛谷传送门CF传送门考虑局部贪心,假设我们现在在\(u\),我们希望\(u\)不同子树中的\((v,w),a_v<a_u<a_w\)的对数尽量多。我们实际上只关心子树内\(a_u\)的相对大小关系,不关心它们具体是什么。如果\(u\)只有两个儿子\(v,w\),我们可以让\(v\)子树内的\(a\)全部......
  • sharding-jdbc配置
    一、概念先行1)SQL相关的逻辑表:水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:订单数据根据主键尾数拆分为2张表,分别是t_order_0到t_order_1,他们的逻辑表名为t_order。真实表:在分片的数据库中真实存在的物理表。例:示例中的t_order_0到t_order_1数据节点:数据分片的最小单......
  • ES profile 性能优化用——返回各个shard的耗时
    ProfileAPI都说要致富先修路,要调优当然需要先监控啦,elasticsearch在很多层面都提供了stats方便你来监控调优,但是还不够,其实很多情况下查询速度慢很大一部分原因是糟糕的查询引起的,玩过SQL的人都知道,数据库服务的执行计划(executionplan)非常有用,可以看到那些查询走没走索引和执行时......
  • 335. Self Crossing (Hard)
    Description335.SelfCrossing(Hard)Youaregivenanarrayofintegersdistance.Youstartatthepoint(0,0)onanX-Yplane,andyoumovedistance[0]meterstothenorth,thendistance[1]meterstothewest,distance[2]meterstothesouth,distance[......
  • 335. 路径交叉 (Hard)
    问题描述335.路径交叉(Hard)给你一个整数数组distance。从X-Y平面上的点(0,0)开始,先向北移动distance[0]米,然后向西移动distance[1]米,向南移动distance[2]米,向东移动distance[3]米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。判断你所经过的路径......
  • element-ui 日期选择器报错 Prop being mutated: "placement"
    报错信息解决方法,添加placement="bottom-start"<el-date-pickerv-model="queryParams.startTime"type="date"placeholder="开始时间"value-format="yyyy-MM-ddHH:mm:ss"placement="bottom-start">......