[洛谷P4388] 付公主的矩形】的更多相关文章

18.09.09模拟赛T1. 一道数学题. 题目传送门 首先把对角线当成是某个点的移动轨迹,从左下到右上. 那么这个点每上升一个单位长度,就穿过一个格子. 每右移一个单位长度,也会穿过一个格子. 例外:穿过格点,会减少穿过的格子数. 初步的结论:R*C的矩形,对角线穿过的格子数N=R+C-gcd(R,C). 那么我们只需算出这个方程的解的个数. 可以看出,R.C和gcd(R,C)都是gcd(R,C)的倍数. 那么N显然也是. 设N/gcd(R,C)=n,R/gcd(R,C)=r,C/gcd(R,…
P4388 付公主的矩形 前置芝士 \(gcd\)与欧拉函数 要求对其应用于性质比较熟,否则建议左转百度 思路 有\(n×m\)的矩阵,题目要求对角线经过的格子有\(N\)个, 设函数\(f(x,y)\)为矩阵\((x,y)\)对角线经过的格子 设\(gcd(n,m)=1\),对角线在矩形中不会经过任意一个格点,\(f(n,m)=n+m-1\) 那\(gcd(n,m)!=1\)呢?将这个矩阵拆除\(gcd(n,m)\)个相同的矩阵 其中\(gcd(n',m')=1\),则\(\dfrac{n}{…
P4389 付公主的背包 题目背景 付公主有一个可爱的背包qwq 题目描述 这个背包最多可以装\(10^5\)大小的东西 付公主有\(n\)种商品,她要准备出摊了 每种商品体积为\(V_i\),都有\(10^5\)件 给定\(m\),对于\(s\in [1,m]\),请你回答用这些商品恰好装\(s\)体积的方案数 输入输出格式 输入格式: 第一行\(n,m\) 第二行\(V_1\sim V_n\) 输出格式: \(m\)行,第\(i\)行代表\(s=i\)时方案数,对\(998244353\)取…
题目传送门:洛谷 P4389. 题意简述: 有 \(n\) 个物品,每个物品都有无限多,第 \(i\) 个物品的体积为 \(v_i\)(\(v_i\le m\)). 问用这些物品恰好装满容量为 \(i\) 的背包的方案数,两个方案不同当且仅当存在某一个物品的选取数量不同. 你需要对 \(i\in [1,m]\) 回答,答案对 \(998,244,353\) 取模. 题解: 对于一个体积为 \(v\) 的物品,它装满容量为 \(x\) 的背包的方案数序列为 \(a_x=[v|x]\). 例如 \(…
题目链接戳这里 题目描述 有\(n\)件不同的商品,每件物品都有无限个,输出总体积为\([1,m]\)的方案数 思路 直接跑背包有\(30\) 考虑把每个物品的生成函数设出来,对于一件体积为\(v\)的物品: \[f(x)=1+x^v+x^{2v}+\cdots +x^{kv}+\cdots \] 那么答案\(F(x)\)就是每个物品的\(f\)卷起来: \[F(x)=\prod\limits_{i=1}^{n}f_i(x)=\prod\limits_{i=1}^{n}\frac{1}{1-x^…
传送门 同样是回过头来发现不会做了,要加深一下记忆. 思路 只要听说过生成函数的人相信第一眼都可以想到生成函数. 所以我们要求 \[ ans=\prod \sum_n x^{nV}=\prod \frac{1}{1-x^V} \] 也就是\(\prod (1-x^V)\). 但这玩意好像还是不会做,怎么办呢? 按照套路,可以先\(\ln\)一下,加起来,再\(\exp\)回去. 所以现在要求 \[ \sum \ln(1-x^V) \] -- -- -- 不会. 不会怎么办? 打表找规律! 经过打…
题目:https://www.luogu.org/problemnew/show/P4389 关于泰勒展开: https://blog.csdn.net/SoHardToNamed/article/details/80550935 https://www.cnblogs.com/guo-xiang/p/6662881.html 大概就是:\( f(x) = \sum\limits_{i=0}^{n}\frac{ f^{(i)}(x_0) }{i!}(x-x_0)^i +R_n\) 麦克劳林展开就…
题目大意:有$n(n\leqslant10^5)$种物品,第$i$个物品体积为$v_i$,都有$10^5$件.给定$m(m\leqslant10^5)$,对于$s\in [1,m]$,请你回答用这些商品恰好装$s$体积的方案数 题解:(by Weng_weijie) 背包问题模板(误) 对每个物品构造生成函数$F(x)=\displaystyle\sum_{i=0}^{\infty}x^{vi}=\dfrac{1}{1-x^v}$ 然后所有相乘就得到答案(不会乘) 对每个多项式求$\ln$加起来…
题面: 为了排解心中的怒气,她造了大量的稻草人来发泄.每天付公主都会把一些稻草人摆成一个R∗C的矩形,矩形的每个方格上都有一个稻草人.然后她站在这个矩形的左上角,向矩形的右下角射箭.付公主的箭术过人,她能穿透任意多的稻草人.弓箭经过的方格上的稻草人难逃厄运,报废掉了.看着被毁坏的稻草人,付公主开心了一些. 但是制造稻草人需要大量的金钱,所以付公主不希望坏掉太多的稻草人,所以她每天都选择毁坏掉N个稻草人.付公主还是个喜新厌旧的人,她希望每天能看到一种不同的稻草人摆放矩形.矩形是可以旋转的,即R∗C…
题目链接 嗯,毒瘤题. 首先有一个结论,就是最小矩形一定有条边和凸包重合.脑补一下就好了. 然后枚举凸包的边,用旋转卡壳维护上顶点.左端点.右端点就好了. 上顶点用叉积,叉积越大三角形面积越大,对应的高也就越大.两边的点用点积,点积越大投影越大. 然后就是精度问题.这种实数计算最好不要直接用比较运算符,要用差和\(eps\)的关系来比较,我就是一直卡在这里.还好有爆炸\(OJ\)离线题库提供的数据... #include <cstdio> #include <cmath> #inc…