不谈离散数学基本定理

news/2025/11/7 18:26:01/文章来源:https://www.cnblogs.com/AzureHair/p/19200600

本文半娱乐向半学术向

先列出定理:

  • 1.对于 \(\forall x,y \in \mathbb{Z},x<y\),有 \(x+1\le y\)

  • 2.\(\forall a,b\in\mathbb{Z},a<b,x>1\),则有 \(x^a<x^b\)

  • 3.\(\forall i\in\{1,2\cdots,n\},a_i\in\mathbb{N_+}\),且 \(\sum_{i=1}^n a_i=S\),则必定存在 \(k_1,k_2\in\{1,2\cdots n\},a_{k_1}\le\frac{S}{n},a_{k_2}\ge\frac{S}{n}\)

  • 4.\(\forall x,y\in\mathbb{R},x=x+y\times 0,x=x+y-y\)

  • 1.对于 \(\forall x,y \in \mathbb{Z},x<y\),有 \(x+1\le y\)

推论:对于 \(\forall x_1,x_2 \cdots x_n \in \mathbb{Z},x_1<x_2< \cdots <x_n\),有 \(x_1+n-1 \le x_2+n-2 \le \cdots \le x_n\)

典例分析:

Solution

首先观察到 \(d\in[0,1]\) 想到分情况讨论,对于 \(d=0\) 显然是单调队列优化DP的板子题,对于 \(d=1\) 我们发现对于一个 \(f_i\) 他最多就会加一,根据“离散数学基本定理”可以知道,一个不为最大值的 \(f_i\) 加一之后也无法影响最大值,所以可以忽略不为最大值的 \(f_i\) 所以需要做的就是写一个线段树找 \(f_i\) 最小的中的 \(h_i\) 最大的一个即可。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,d,h[300010],w[300010],f[300010];
struct node
{int l,r,pre,mmax;
}t[1200010];
struct node1
{node1(){}node1(int pre,int mmax):pre(pre),mmax(mmax) {}int pre,mmax;
};
void build(int x,int a,int b)
{t[x].l=a;t[x].r=b;if(a==b){t[x].pre=0;t[x].mmax=h[a];return ;}int mid=a+b>>1;build(x*2,a,mid);build(x*2+1,mid+1,b);t[x].pre=min(t[x*2].pre,t[x*2+1].pre);if(t[x*2].pre==t[x*2+1].pre)t[x].mmax=max(t[x*2].mmax,t[x*2+1].mmax);else if(t[x*2].pre>t[x*2+1].pre)t[x].mmax=t[x*2+1].mmax;else t[x].mmax=t[x*2].mmax;return ;
}
void change(int x,int a,int b,int s)
{if(a<=t[x].l&&b>=t[x].r){t[x].pre=s;return ;}int mid=t[x].l+t[x].r>>1;if(a<=mid){change(x*2,a,b,s);}if(b>mid){change(x*2+1,a,b,s);}t[x].pre=min(t[x*2].pre,t[x*2+1].pre);if(t[x*2].pre==t[x*2+1].pre)t[x].mmax=max(t[x*2].mmax,t[x*2+1].mmax);else if(t[x*2].pre>t[x*2+1].pre)t[x].mmax=t[x*2+1].mmax;else t[x].mmax=t[x*2].mmax;
}
node1 query(int x,int a,int b)
{if(a<=t[x].l&&b>=t[x].r){return node1(t[x].pre,t[x].mmax);}int mid=t[x].l+t[x].r>>1;node1 ans1,ans2;if(a<=mid){ans1=query(x*2,a,b);}if(b>mid){ans2=query(x*2+1,a,b);}if(a<=mid&&b>mid){int pre=min(ans1.pre,ans2.pre),mmax;if(ans1.pre==ans2.pre)mmax=max(ans1.mmax,ans2.mmax);else if(ans1.pre>ans2.pre)mmax=ans2.mmax;else mmax=ans1.mmax;return node1(pre,mmax);}else if(a<=mid)return ans1;else if(b>mid)return ans2;else return node1(0x3f,0x3f);
}
signed main()
{scanf("%lld%lld%lld",&n,&k,&d);for(int i=1;i<=n;i++){scanf("%lld%lld",&h[i],&w[i]);}build(1,1,n);change(1,1,1,w[1]);for(int i=2;i<=n;i++){node1 ans=query(1,max(i-k,1ll),i-1);f[i]=ans.pre+w[i]+(ans.mmax<=h[i])*d;change(1,i,i,f[i]);}cout<<f[n]<<endl;return 0;
}

赛时写的抽象代码。

  • 2.对于 \(\forall x\),有 \(x=x+y\times0\)

看起来抽象实际非常具体,看例题:

\(A(z)=\sum a_nz^z\)\(B(z)=\sum a_nz^n\)\(C(z)=\sum c_nz^n\)

\[c_n=\sum_{i+2j\le n}a_ib_j \]

试用 \(A(z)\)\(B(z)\) 表示 \(C(z)\)

我们首先发现这个东西是一个卷积的形式但不完全是卷积的形式。

但是我们可以使用高贵的换元法:

\[c_n=\sum_{i+j\le n}a_ib_{\frac{j}{2}} \]

到这里,不知道这个重要的离散数学基本定理的人一定就不会做了,但是,我们会!发现只有 \(j\) 为偶数时才会计数,但是我们完全可以让奇数项的值为零即可,所以变成了没脑子题。

\[c_n=\sum_{i+j\le n}a_ib_j \]

所以他就是一个卷积再求和的形式,所以答案为:

\[C(z)=\frac{A(z)B(z^2)}{1-z} \]

要睡觉了以后再写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代Linux网络命令简介

都是字符界面的、很小的。 iftop: /usr/sbin/iftop display bandwidth usage on an interface by host nethogs: /usr/sbin/nethogsNet top tool grouping bandwidth per process nload: /usr/bin/nloaddisplays the c…

深谈王书童变换

首先大家肯定都听过这个名字,毕竟发明者比较著名,他就是和鲍林,泡利三人能得三次诺贝尔奖的著名化学家王书童,不过他这个变换更多的应用于数学领域,所以大多人不太熟悉这个定理,就让我来给大家打通一下! 首先先…

众所周知,高中课内物理需要解微分方程

众所周知,解微分方程作为一种常用的方法是每一个高中生都要掌握的,所以物理课上讲二阶微分方程一点问题都没有吧。 著名物理老师 zjz 曾经说过:微积分,很重要,我带大家推一遍。 所以他就带大家推了一遍。 课内物理…

语文诗歌赏析好题集萃(纯纯的学术向)

QDEZ 某诗社的新社员一进社团就为社团提供了大量素材,让我们跟随他来看一下这些好诗好题,欢迎大家留言自己的答案。 (如有侵权请私聊作者)山火 烬收枝打电,霆动得炬手。 巧瞧焰蚁下,偶有挞痕牛。 午头有梧桐,遍惺…

11.7模拟赛

t1 题面 题意 给一个长为 \(n\) 的序列 \(h\),你要还原一个排列 \(p\)。其中对于任意 \(i\in[1,n]\) 满足 \(\exist \{p_{i},p_{i-1},p_{i+1}\}=h_i\)。求出 \(p\) 的种类数对 \(10^9+7\) 的答案。 对于 \(100\%\) 的…

code first 常用命令

记录一下,之前想找命令的时候找不到  ̄□ ̄|| Enable-Migrations 启用迁移 Add-Migration v_1_0_0 添加迁移 Update-Database 将迁移更新到数据库Update-Database -TargetMigration:v_1_0_0 数据库迁移新指定版本…

动态规划学习/复习笔记

(是时候通过写笔记的方式开始复建OI了) 写在前面:本篇笔记主要适用于有一点DP基础但是实力又比较弱的选手比如我,如果你的水平很高,请手动关闭这篇笔记。 树形DP的复习笔记 首先感觉树形DP属于是所有DP当中最简单的…

系统设计与分布式算法实战指南

本项目提供完整的系统设计核心算法实现,包含一致性哈希、负载均衡、限流算法等关键组件,涵盖Java和Python双语言版本,帮助开发者深入理解分布式系统设计原理与实践应用。系统设计与分布式算法实战指南 项目概述 本项…

SDOI 2024游记兼退役游记

SDOI Day1: NOIP2022被T2送走,NOIP2023被T3送走,万万没想到,SDOI Day1还能被T1送走,考场上提前了7分钟发卷,我光速浏览T1,感觉T1可做,想了一会觉得想出了无解条件先写一下,然后发现想错了,要有4种情况,觉得…

STM32G474单片机开发入门(六)定时器TIMER详解及实战含源码 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

openEuler 22.03 LTS 在 VMware 虚拟机环境下的 CPU 与内存性能基准测试及分析

​ 开篇概述 本文将通过 VMware ​Workstation 虚拟化平台部署 openEuler 22.03 LTS x86_64 操作系统,并使用 MobaXterm 作为远程连接工具,对系统进行实战评测。 评测内容为CPU​的和内存​的基准测试 测试环境配置:…

某头部公募基金云原生转型实践:基于 KubeSphere 的多集群异构管理之路

引言 在金融业务加速数字化、信创替代逐步深化的背景下,容器化与云原生架构正成为基金公司提升 IT 效能、保障业务连续性的关键技术路径。作为国内较早推进容器化改造的基金管理公司之一,某头部公募基金公司选择 Kub…

布谷鸟过滤器详解:从原理到Spring Boot实战

Redis学习过程中涉及到布隆过滤器的内容、顺便把布谷鸟过滤器也讲一下,做个知识拓展。 后面继续学Redis。 在分布式系统和缓存场景中,去重、防穿透、高效查询是常见需求。布隆过滤器(Bloom Filter)曾是解决这些问题…

让 Agentic AI 落地到“最后一公里”,GitHub Universe 25 新品解码

从代码生成到智能体协作,从自动化测试到自适应运维,Agentic AI 正在重构软件开发的每一个环节。当 AI 技术成为企业“必选项”,您是否正陷入这些困局?AI 技术转型呼声高,但从战略规划到执行落地仍缺乏清晰的方法论…

openEuler 云原生实战:部署高性能 Redis 集群与压测分析

​ 一、openEuler:企业级高性能计算的理想选择 最近公司要做缓存系统的性能优化,正好借这个机会深入体验一下 openEuler 在高性能场景下的表现。openEuler 作为华为主导的开源操作系统,在内核调优、网络性能、存储优…

SSM面试题学习 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

组合数学笔记

在课内学习中,我们需要学习一些的组合数学的内容,在学习中,我们了解到组合数的定义:\(C_n^k=C_{n-1}^k+C_{n-1}^{k-1}\),组合意义上为在 \(n\) 个中选取 \(k\) 个的方案数等于第 \(n\) 个选取,前 \(n-1\) 个选取…

Spring容器的心脏:深度解析refresh()手段(上)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

原神概率模型假说

众所周知,原神是一款由米哈游自主研发的开放世界冒险游戏 在原神等游戏中我们常常被抽卡概率所困扰,以至于人们研究出了种种玄学抽卡不歪的方法,在此我也提出一个猜想: 从米哈游的角度考虑,他肯定想要赚取更多的钱…

距离高考一年纪念文章

这个周是高考前的最后一个周了,周二晚上第二节晚自习后就看到高三楼那边开始玩灯,整个楼的灯都在开开关关,更是有人从窗上往下扔纸飞机,后来看到很多同学都跑到高三楼下去围观,拿着手电筒进行着一些人类难以理解的…