【整理】最近做的几道数学题

数学题也是有意思 那么总结一下

T1.【Bzoj2751】【HAOI2012】容易题

题意

有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些限制即A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,求出所有可能的数列的积的和。

题解

考虑一个式子(...)(...)(...),()内为一些数相加,根据乘法分配律,打开这个式子就是每次从每个括号中选一个元素,再把所有可能选择的结果加起来。

这件事情就是我们题目的设问,于是我们只要算出来每个位置sigma可能的选择,再乘起来就行了。

具体的实现中,因为很多位置没有限制,于是这些快速幂解决;有限制的做减法。

用到的就是小学生都知道的知识,感觉小时候玩式子玩得还是不够多啊!反应不够快!

“公式的逆”这种解题模型应该是很常见的。

T2.【Bzoj3142】【HNOI2013】数列

题意

有一个长度为m的严格递增正整数数列,规定相邻两项差值<=k,且末项<=n,并且有m(k-1)<n,求可能的数列个数。

题解

不难想到考虑数列两项的差值(设a[i]代表i项与前一项差),且因为m(k-1)<n所以差值可以随便选(不过当然不超过k)都不会选挂。

那么每一个差值序列对于答案的贡献也就是(n-sigma a[i])。

考虑暴力的方法,也就是枚举每一个a[i],然后按上面那个公式计算。

因为最后答案是由各数列累加,n的贡献可以直接来,关键是a[i],也就是我们可以分开算a[i]每个取值的贡献。

显然1~k这些数被选作a[i]概率相等,我们也知道a[i]被选总数,由此得出每个数被选次数。

我们也知道1~k的和,所以贡献就是sigma(1~k)*每个数被选次数。

具体的数值自己push吧。

T3.【Bzoj1110】【POI2007】砝码Odw

题意

n个物品,m个背包,大小都由输入给定,有一个条件n个物品任意两个有倍数关系,也可能相等,求最多能放多少物品。

题解

其实这道题和数学好像关系不大,主要是倍数关系比较神奇。

因为都存在倍数关系,那么大小物品之间是可以相互转换的。

从大到小,直接拆就可以了;从小到大,数量要够且要在一个背包中。

由此看来,从大到小比从小到大高明多了。

于是贪心,拆所有的背包,能拆成大物品就拆成大物品。比如背包19,物品8、4、2,就拆成8*2+2(拆完8后4放不进,最后的1没用)。

在此贪心,因为只要求个数,先放小的肯定比放大的好。

考虑的时候用拿个背包并不重要(这也就是拆大的高明之处),所以m个背包一起考虑(就是把每个物品在各个背包的系数加起来)。

如果当前物品系数不够,考虑上面的分析过程,把大的拆成小的就可以了。

因为是倍数,且大小在10^9内,就算每次*2,也只可能有30不同物品,于是怎么实现都可以了。

以上是我口胡的方法,比较正规的说法是,把背包看做一个奇怪的进制(倍数关系),然后拆大就是借位。

接下来两道题Orz叉姐

如此神奇的模型转换我怎么想得到呢

于是直接copy题解供大家欣赏好了

T4.【POJ 3244】Difference between Triplets

题意

定义两个三元组I(xi,yi,zi)和J(xj,yj,zj) (可以看做是空间中的点)
他们的距离为D(I,J)=max{xi-xj,yi-yj,zi-zj}-min{xi-xj,yi-yj,zi-zj}
给定n个三元组(n<=200000),求任意两个三元组的差的和

题解
抽化出来的模型是 max(a,b,c)-min(a,b,c),这个东西吧他放在数轴上 a,b,c
我们要求最大和最小的差就是这三个点构成的线段的距离,那么我们这里再变通下 是不是端点到中间那个点的距离
其实画出这个图的时候,就可以看到这个距离为(|a-b|+|b-c|+|c-a|)/2,这样我们并不需要关心中间的那个//也就是线段的长度
对应到题目中的原型,就是(|(xi-xj)-(yi-yj)|+|(yi-yj)-(zi-zj)|+|(zi-zj)-(xi-xj)|)/2;
对应到同一个点上就是(|(xi-yi)-(xj-yj)|+|(yi-zi)-(yj-zj)|+|(zi-xi)-(zj-xj)|)/2;
设a=(xi-yi),b=(yi-zi),c=(zi-xi),原问题等价为(|ai-aj|+|bi-bj|+|ci-cj|)/2;
然后三个可以完全分开完全独立的计算,并不影响其他两元,这里要加个优化,就是按从小到大排序出来
我们只需要算出每个位置上,他贡献了多少次加法,贡献了多少次减法即可
举个例子,目前把a的部分排序了,对于第i个,他前面的比它小,所以在和i点比较时i点贡献了i次加法,对后面的n-i个点向他们做了n-i次减法

T5.【POJ 2595】Min-Max

题意

设函数F(x1,x2...xn)=Σuixi(1<=i<=n),u为函数固定的系数,且对u有限制Σu=1且u∈[0,1],但是你不知道,你只知道一组输入x1,x2...xn对应的输出为C,问题是给定的另一组输入y1,y2...yn的输出最小与最大可能是多少。
题解

观察一下u的神奇范围我们可以很直观的联想到一群质点的重心公式,不妨将(xi,yi)作为坐标放在平面直角坐标系中,我们就可以将所有的有序实数对看成质量相等的质点,C就是其重心的x坐标,答案即为重心的y坐标,由重心知识可知重心位于点集的凸包内部,所以贪心得到答案为凸包边(点)上,所以求出凸包维护一下答案就行了。

时间: 2024-10-31 09:16:35

【整理】最近做的几道数学题的相关文章

hdu 4405 概率dp 2012年金华亚洲网络赛--虽然水,但是是自己独立做的第一道概率dp

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4405 e[i]:当前在位置i还需要走的步数期望 受刘汝佳的AC自动机那个后缀链接写法的启发,我的x[i]通过逆序算出来连续有"flight line "的时候,能到达的最远距离, rep(i,0,m) { scanf("%d%d",&xx,&yy); x[xx]=yy; } for(int i=n;i>=0;i--) if(x[i]!=-1 &

今天做了几道蓝桥杯的去年题

找了几道简单的热热身,感觉自己算法还是记不住,能描述,不会写,应该是练少了的缘故. 今天一道题交了好几遍才对啊,明明是很简单的题啊啊啊啊啊,算了,先回忆一下心路历程. 题目是这样的 问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4.下一个同学要往下数三个数,说7.依次类推. 为了使数字不至于太大,栋栋和同学们约定,

以前整理的做某数据产品售前工程师的能力要求

在与客户交流前或之后,需要明确的内容有: 1. 客户是否已经有做商业智能分析的预算,大概的立项时间是什么时候?2. 此次会见的客户是什么职位,是IT还是业务部门?是否为决策关键人?3. 客户当前有些什么样的业务源系统?4. 客户源系统的数据库环境是怎样的,oracle还是db2或sql server?5. 现在是否有我们的竞争对手也在与客户接触?是哪些竞争对手?6. 客户当前是否有明确的需求或愿望要做哪些分析? 最后,交流之后最好能拿到如下信息: 预算,立项时间,环境,对手,关键人,初步需求 售

跟王千问学数学之做了一天数学题

一天有个年轻人来到王老板的店里买了一件礼物.这件礼物成本是18元,标价是21元.结果是这个年轻人掏出100元要买这件礼物.王老板当时没有零钱,用那100元向街坊换了100元的零钱,找给年轻人79元.但是街坊後来发现那100元是假钞,王老板无奈还了街坊100元.现在问题是:王老板在这次交易中到底损失了多少钱??? 上午上班的时候,老婆突然打电话,问这道题答案是什么.我犹豫了好长时间,100块?以前好象见到过这个答案,哦,不对,是97块...上网搜了一下,基本上才敢确定是97. 然后liu老师拿他儿

谈pkusc2016的几道数学题

题面搬来的qwq(忘记出处了 水印应该能表示) [题解] 1. 我们看到这题先想到令(x+y+z)^3 展开得到一坨,稍微减减,得到我们要求证 delta = 3xy^2+3xz^2+3yx^2+3yz^2+3zx^2+3zy^2+9xyz 能被(x+y+z)整除 卧槽这什么鬼啊赶紧消系数 分分类 delta = xy(x+y)+xz(x+z)+yz(y+z)+3xyz 哎这就傻逼了嘛 把3xyz分开即可证明. 2. 这..需要熟悉高斯公式以及1^2+2^2+...+n^2的计算公式 二次函数?

POJ 1860【求解是否存在权值为正的环 屌丝做的第一道权值需要计算的题 想喊一声SPFA万岁】

题意: 有n种钱币,m个钱币兑换点,小明一开始有第n种钱币数量为w. 每个兑换点可以将两种不同的钱币相互兑换,但是兑换前要先收取一定的费用,然后按照比例兑换. 问小明是否可以经过一系列的兑换之后能够将持有的第n种钱的数量增加. 这题大概就是看是否存在权值为正的环.如果存在这样的环,那么可以一直循环,然后在适当的时候兑换成第n种钱币. 这种算法一定要看好兑换率的范围!~ 思路: 利用SPFA算法,当一个点松弛次数超过N次的时候我们认为存在一个正环. #include<stdio.h> #incl

用数值分析方法做一道平面解析几何数学题

问题 看到有人问: 已知拱高10.4米的圆弧弧长36.7米,求圆的半径和圆心角(最好附带Matlab程序).怎么限制x是锐角? 解答 顺便把三个软件都用一遍,用它们各自擅长的.实际上,这个问题而言,单独用任何一款都能画图和解方程(是的,Geogebra不但画图厉害,解这个方程也实际上顶呱呱). 先根据大致情况推导一番(Geogebra作图) 因为r跟θ有如下关系,只须求一个r即可: s=r?θ 可以利用的关系从图上看出还有: x2=h(2r?h) sinθ2=xr 由此三个关系知道: x2=r2

2015年ACM沈阳网络赛(准备做掉4道:)

Traversal Best Solver Minimum Cut Dividing This Product Excited Database Fang Fang Matches Puzzle Game Hold Your Hand Stability Jesus Is Here Poker Largest Point Manors

2018 CCPC网络赛 几道数学题

1002 Congruence equation 题目链接  : http://acm.hdu.edu.cn/showproblem.php?pid=6439 题解 : https://www.zybuluo.com/yang12138/note/1262592 相关定理 : 裴蜀定理 在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理.裴蜀定理得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a.b和它们的最大公约数d,关于未知数x和y的线性丢番图方程(称为裴蜀等式): ax + by