首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
题解-拉格朗日(bzoj3695变种)
】的更多相关文章
题解-拉格朗日(bzoj3695变种)
Problem 在无穷大的水平面上有一个平面直角坐标系,\(N-1\)条垂直于\(x\)轴的直线将空间分为了\(N\)个区域 你被要求把\((0,0)\)处的箱子匀速推到\((x,y)\) 箱子受水平面的摩擦力与正压力正相关,所以在第\(i\)个区域的摩擦力可以表示为\(f_i\) 求把箱子推到目的地做的最小功是多少呢?(不考虑改变速度时的做功) \(N\leq 100\) Thoughts 这道题看题面是物理题,但一般来说这些题都是借着物理题的外表掩饰自己的数学本质 以为要从两块区域的简单情形…
BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\dots,x_n) = E\) 我们需要求\(f\)在限制\(g\)下的极值 如图 当\(f\)取到最值时,必然与\(g\)的等高线相切 所以我们只需找出这个切点 切点处两函数的梯度向量平行\({\nabla f~//~\nabla g}\) 梯度向量的每一维就是该维下的偏导函数 \[{\nabla…
【BZOJ】2876: [Noi2012]骑行川藏
题意 给出\(s_i, k_i, v_i', E\),满足\(\sum_{i=1}^{n} k_i s_i ( v_i - v_i' )^2 \le E, v_i > v_i'\),最小化$ \sum_{i=1}^{n} \frac{s_i}{v_i} $ 分析 首先是贪心,很显然小于等于号要取等号,即问题转化为,满足\(g(V) = \sum_{i=1}^{n} k_i s_i ( v_i - v_i' )^2 = E\),最小化$ f(V) = \sum_{i=1}^{n} \frac{s_…
BZOJ2287: 【POJ Challenge】消失之物
2287: [POJ Challenge]消失之物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 254 Solved: 140[Submit][Status] Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -- 这是经典的问题了.她把答案记为 Count(i, x) ,想要…
题解 P4781 【【模板】拉格朗日插值】
题目 本蒟蒻看到一道数学题,就顺手切了.感觉单单对这一题而言,部分评论区的大佬过于复杂了 [分析] 先讲讲拉格朗日插值法: 对于给定的 \((n+1)\) 个点,我们可以确定唯一的一个 至多\(n\)次 函数 \(f(x)\) 这里简单解释一下为什么是唯一的至多 \(n\) 次: 若给定 \((n+1)\) 个点,理论上可以确定一个 \(n\) 次函数 \(f(x)\) .但 \(f(x)\) 可以前几项系数为 \(0\) .因此,本蒟蒻按照数学上的定义,认为它是至多 \(n\) 次的. 若给定…
【LeetCode题解】二叉树的遍历
我准备开始一个新系列[LeetCode题解],用来记录刷LeetCode题,顺便复习一下数据结构与算法. 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点--左孩子结点与右孩子结点.C实现的二叉树: struct TreeNode { int val; struct TreeNode *left; // left child struct TreeNode *right; // right child }; DFS DFS的思想非常朴素:根据…
【LeetCode题解】数组Array
1. 数组 直观地看,数组(Array)为一个二元组<index, value>的集合--对于每一个index,都有一个value与之对应.C语言中,以"连续的存储单元"实现数组: int arr[5], *p_arr[5]; 数组提供以\(O(1)\)的复杂度访问元素,下标从0开始.但是,数组的插入.删除操作却非常耗时,因为这涉及到了元素间的移动. 常见的矩阵,可用二维数组表示.二维数组本质上是一个一维数组,其中每个行单元也是一个一维数组,比如,二维数组int x[3][…
华南师大 2017 年 ACM 程序设计竞赛新生初赛题解
题解 被你们虐了千百遍的题目和 OJ 也很累的,也想要休息,所以你们别想了,行行好放过它们,我们来看题解吧... A. 诡异的计数法 Description cgy 太喜欢质数了以至于他计数也需要用质数表示!在他看来,2(第一小质数)表示1,3(第二小质数)表示2--可正因为他的计数方法太奇葩,所以他的数学成绩非常差而且拖累了他的绩点. lxy 得知 cgy 的绩点排名之后打算告诉他,可是必须以极度麻烦的 cgy 质数计数法的方式表示. lxy 出重金 ¥(10000000 mod 10) 请你…
bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
题目描述 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行前设定好目的地.同时合理分配好自己的体力是一件非常重要的事情. 由于蛋蛋装备了一辆非常好的自行车,因此在骑行过程中可以认为他仅在克服风阻做功(不受自行车本身摩擦力以及自行车与地面的摩擦力影响).某一天他打算骑\(N\)段路,每一段内的路况可视为相同:对于第\(i\)段路,我们给出有关这段路况的3个参…
【CSA35G】【XSY3318】Counting Quests DP 拉格朗日反演 NTT
题目大意 zjt 是个神仙. 一天,zjt 正在和 yww 玩猜数游戏. zjt 先想一个 \([1,n]\) 之间的整数 \(x\),然后 yww 开始向他问问题. yww 每次给 zjt 一个区间 \([l,r](1\leq l\leq r\leq n)\),并询问:\(x\) 是否在区间 \([l,r]\) 内? 对于 NOIP 爆零的 yww 来说,他只会用二分法去猜出这个数. 但是 zjt 决定加大难度.他只会在 yww 给出所有想问的问题之后一次性给出答案. 请你帮助 yww 算出,…
【BZOJ2876】【Noi2012】骑行川藏 拉格朗日乘法
题目描述 给你 \(n,E,s_i,k_i,v_i'\),要求在 \[ \sum_{i=1}^nk_i{(v_i-v_i')}^2s_i\leq E \] 的前提下最小化 \[ \sum_{i=1}^n\frac{s_i}{v_i} \] \(n\leq 10000,0\leq E\leq {10}^8,0<s_i\leq {10}^5,0<k\leq 1,-100<v_i'<100\) 题解 显然最优解会把体力浪完,所以约束的不等号可以换成等号. 这样就变成了:在 \(G(V)=…
【XSY2921】yja 拉格朗日乘法
题目描述 在平面上找 \(n\) 个点,要求这 \(n\) 个点离原点的距离分别是 \(r_1,r_2,\ldots,r_n\),最大化这 \(n\) 个点构成的土包的面积.这些点的顺序任意. \(n\leq 8\) 题解 先枚举凸包上的点和顺序. 不妨设 \(r_{n+1}=r_1\) 面积为:\(\frac{1}{2}(r_1r_2\sin \theta_1+r_2r_3\sin \theta_2 + \cdots + r_nr_{n+1}\theta_n)\) 那么问题就是最大化 \(r_…
【XSY2843】「地底蔷薇」 NTT什么的 扩展拉格朗日反演
题目大意 给定集合\(S\),请你求出\(n\)个点的"所有极大点双连通分量的大小都在\(S\)内"的不同简单无向连通图的个数对\(998244353\)取模的结果. \(n\leq {10}^5,(m=\sum_{x\in S})\leq {10}^5\) 题解 首先你要会求\(n\)个点带标号有根简单无向图的个数.bzoj3456就是求这个东西. 记\(H(x)\)为带标号有根简单无向图个数的EGF. 记\(b_i\)为\(i+1\)个点的带标号点双个数,\(B(x)=\sum_{…
【XSY1537】五颜六色的幻想乡 数学 生成树计数 拉格朗日插值
题目大意 有一个\(n\)个点\(m\)条边的图,每条边有一种颜色\(c_i\in\{1,2,3\}\),求所有的包括\(i\)条颜色为\(1\)的边,\(j\)条颜色为\(2\)的边,\(k\)条颜色为\(3\)的边的生成树的数量. 对\({10}^9+7\)取模. \(n\leq 50\) 题解 如果\(\forall i,c_i=1\),就可以直接用基尔霍夫矩阵计算生成树个数.但是现在有三种颜色,不妨设\(c_i=2\)的边的边权为\(x\),\(c_i=3\)的边的边权为…
【BZOJ2655】calc DP 数学 拉格朗日插值
题目大意 一个序列\(a_1,\ldots,a_n\)是合法的,当且仅当: 长度为给定的\(n\). \(a_1,\ldots,a_n\)都是\([1,m]\)中的整数. \(a_1,\ldots,a_n\)互不相等. 一个序列的值定义为它里面所有数的乘积,即\(a_1\times a_2\times\cdots\times a_n\). 求所有不同合法序列的值的和. 两个序列不同当且仅当他们任意一位不一样. 输出答案对一个数\(p\)取余的结果. \(n\leq50…
JLOI2016 简要题解
「JLOI2016」侦查守卫 题意 有一个 \(n\) 个点的树,有 \(m\) 个关键点需要被监视.可以在其中一些点上插眼,在 \(i\) 号点上放眼需要花费 \(w_i\) 的代价,可以监视距离 \(i\) 不超过 \(d\) 的所有点. 问将所有关键点都被监视所需要花费的最小代价. \(m \le n \le 5 \times 10^5, d \le 20, w_i \le 1000\) 题解 \(d\) 很小,不难想到 \(\mathcal O(nd)\) 的 \(dp\) . 令 \(…
【Luogu4781】【模板】拉格朗日插值
[Luogu4781][模板]拉格朗日插值 题面 洛谷 题解 套个公式就好 #include<cstdio> #define ll long long #define MOD 998244353 #define MAX 2020 inline int read() { int x=0;bool t=false;char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')t=t…
BZOJ.2655.calc(DP/容斥 拉格朗日插值)
BZOJ 洛谷 待补.刚刚政治会考完来把它补上了2333.考数学去了. DP: 首先把无序化成有序,选严格递增的数,最后乘个\(n!\). 然后容易想到令\(f_{i,j}\)表示到第\(i\)个数,当前选的是\(j\)的价值和.复杂度是\(O(nA)\)的.然后忘掉这个做法吧这个做法没前途. 上面这个做法最后还要\(O(A)\)求一遍和,感觉不够优美. 直接令\(f_{i,j}\)表示选了\(i\)个数,选的最大的数\(\leq j\)的价值和.转移为:\(f_{i,j}=f_{i,j-1}+…
BZOJ.4559.[JLOI2016]成绩比较(DP/容斥 拉格朗日插值)
BZOJ 洛谷 为什么已经9点了...我写了多久... 求方案数,考虑DP... \(f[i][j]\)表示到第\(i\)门课,还有\(j\)人会被碾压的方案数. 那么\[f[i][j]=\sum_{k=j}^{n-1}f[i-1][k]\times C_k^{k-j}\times C_{n-1-k}^{R_i-1-(k-j)}\times g[i]\] 就是先从\(k\)人中选出\(k-j\)在\(i\)这门课比B神得分高,然后再从剩下\(n-1-k\)个人中选\(R_i-1-(k-j)\)个…
文本分类学习 (九)SVM入门之拉格朗日和KKT条件
上一篇说到SVM需要求出一个最小的||w|| 以得到最大的几何间隔. 求一个最小的||w|| 我们通常使用 来代替||w||,我们去求解 ||w||2 的最小值.然后在这里我们还忽略了一个条件,那就是约束条件,在上一篇的公式(8)中的不等式就是n维空间中数据点的约束条件.只有在满足这个条件下,求解||w||2的最小值才是有意义的.思考一下,若没有约束条件,那么||w||2的最小值就是0,反应在图中就是H1和H2的距离无限大那么所有点都会在二者之间,都属于同一类,而无法分开了. 求最小值的目标函数…
LG4781 【模板】拉格朗日插值
题意 题目描述 由小学知识可知,$n$个点$(x_i,y_i)$可以唯一地确定一个多项式 现在,给定$n$个点,请你确定这个多项式,并将$k$代入求值 求出的值对$998244353$取模 输入输出格式 输入格式: 第一行两个正整数$n,k$,含义如题 接下来$n$行,每行两个正整数$x_i,y_i$,含义如题 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: 复制 3 100 1 4 2 9 3 16 输出样例#1: 复制 10201 输入样例#2: 复制 3 100 1 1 2 2…
Cmd2001的毒瘤水题题解
怕不是我再不写题解这题就该成没人做也没人会的千古谜题了...... T1: 仔细分析题面,发现相同就是广义SAM上节点相同,相似就是广义SAM上为从根到某个点路径的前缀..直接SAM上跑从根开始,每个点下界为1的最小流即可.代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<queue>…
CodeChef TWOROADS(计算几何+拉格朗日乘数法)
题面 传送门 简要题意:给出\(n\)个点,请求出两条直线,并最小化每个点到离它最近的那条直线的距离的平方和,\(n\leq 100\) orz Shinbokuow 前置芝士 给出\(n\)个点,请求出一条直线,使所有点到它距离的平方和最小,点带插入和删除 如果我们设\(y=kx+b\),设点\(i\)为\((x_i,y_i)\),那么就是要求我们最小化 \[ \begin{aligned} Ans &=\sum_{i=1}^n{(kx_i-y_i+b)^2\over k^2+1}\\ &…
BZOJ3775: 点和直线(计算几何+拉格朗日乘数法)
题面 传送门 题解 劲啊-- 没有和\(Claris\)一样推,用了类似于\(Shinbokuow\)推已知点求最短直线的方法,结果\(WA\)了好几个小时,拿\(Claris\)代码拍了几个小时都没找到\(bug\)在哪儿,最后发现是我一个除法的地方忘记除数为\(0\)的情况了--甘霖娘-- 公式恐惧症患者可以直接转去结论了 设直线为\(ax+by+c=0\),点为\((x,y)\),记\(d_i=a_i^2+b_i^2\),那么就是要我们最小化 \[ \begin{aligned} f(x,…
【BZOJ4559】成绩比较(动态规划,拉格朗日插值)
[BZOJ4559]成绩比较(动态规划,拉格朗日插值) 题面 BZOJ 洛谷 题解 显然可以每门课顺次考虑, 设\(f[i][j]\)表示前\(i\)门课程\(zsy\)恰好碾压了\(j\)个\(yyb\)的方案数. 那么,思考转移,显然是原来碾压了\(k\)个人,但是在考虑到这一门课程的时候有些人没被碾压了, 所以转移就是\(f[i][j]=f[i-1][k]*C_k^j*C_{n-k-1}^{n-rank[i]-j}*P[i]\) 大致的含义就是,原先\(zsy\)碾压了\(k\)个人,但是…
【BZOJ2655】Calc(拉格朗日插值,动态规划)
[BZOJ2655]Calc(多项式插值,动态规划) 题面 BZOJ 题解 考虑如何\(dp\) 设\(f[i][j]\)表示选择了\(i\)个数并且值域在\([1,j]\)的答案. \(f[i][j]=f[i-1][j-1]*i*j+f[i][j-1]\) 即不考虑选择\(j\),以及当前选择\(j\),那么枚举是哪个数,转移即可. 时间复杂度\(O(An)\). 碰到这种东西我们直接假装它是一个若干次的多项式. 先假设是个\(n\)次多项式,发现不对, 再试试\(2n\)次多项式,恩,很对,…
【BZOJ】3453: tyvj 1858 XLkxc 拉格朗日插值(自然数幂和)
[题意]给定k<=123,a,n,d<=10^9,求: $$f(n)=\sum_{i=0}^{n}\sum_{j=1}^{a+id}\sum_{x=1}^{j}x^k$$ [算法]拉格朗日插值 [题解]参考:拉格朗日插值法及应用 by DZYO 虽然式子很复杂,但一点一点化简有条理的化简后就可以做了. 首先最后是一个自然数幂和: $$\sum_{x=1}^{j}x^k$$ 这是一个k+1次多项式,可以理解为k+一个Σ(一般一个Σ增加一次项). 然后会发现最后部分和第二部分之间不需要插值,因为第…
【BZOJ】2655: calc 动态规划+拉格朗日插值
[题意]一个序列$a_1,...,a_n$合法当且仅当它们都是[1,A]中的数字且互不相同,一个序列的价值定义为数字的乘积,求所有序列的价值和.n<=500,A<=10^9,n+1<A<mod<=10^9,mod是素数. [算法]动态规划+拉格朗日插值 [题解]这道题每个数字的贡献和序列选了的数字积关系密切,所以不能从序列角度考虑(和具体数字关系不大). 设$f_{n,m}$表示前n个数字(值域)中取m个数字的答案,那么枚举取或不取数字n,取n时乘n且有j个位置可以插入,即:…
【BZOJ】4559: [JLoi2016]成绩比较 计数DP+排列组合+拉格朗日插值
[题意]n位同学(其中一位是B神),m门必修课,每门必修课的分数是[1,Ui].B神碾压了k位同学(所有课分数<=B神),且第x门课有rx-1位同学的分数高于B神,求满足条件的分数情况数.当有一位同学的一门必修课分数不同时视为两种情况不同.n,m<=100,Ui<=10^9. [算法]计数DP+排列组合+拉格朗日插值 [题解]把分数作为状态不现实,只能逐门课考虑. 设$f[i][j]$表示前i门课,有j个同学被碾压的情况数,则有: $$f[i][j]=g(i)\cdot\sum_{k=j…
P5282 【模板】快速阶乘算法(多项式运算+拉格朗日插值+倍增)
题面 传送门 前置芝士 优化后的\(MTT\)(四次\(FFT\)) 题解 这里有多点求值的做法然而被\(shadowice\)巨巨吊起来打了一顿,所以来学一下倍增 成功同时拿到本题最优解和最劣解-- \(Min_{25}\)牛逼!(据说这是原文然而我看不懂就是了) 真的快的不要不要的-- 和多点求值一样,我们还是设\(s=\sqrt{n}\),并设多项式 \[g_s(x)=\sum_{i=1}^s(x+i)\] 求出\(g_s(0),g_s(s),g_s(2s),..,g_s((s-1)s)\…