【洛谷】P4167 [Violet]樱花】的更多相关文章

洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: 输入一个整数N 输出格式: 输出答案 输入输出样例 输入样例#1: 1439 输出样例#1: 102426508 Solution 极其恶心的一道题... 看到这种题肯定是需要化简式子的,因为出题人不会好到给你一个好做的式子 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!…
BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1}{n!}\] 通分:\[\dfrac{x + y}{xy} = \dfrac{1}{n!}\] 十字相乘:\[(x + y) \times n! = xy\] 把\((x + y) \times n!\)移到右项:\[xy - (x + y) \times n! = 0\] 两边同时加上\((n!…
洛谷P1445:https://www.luogu.org/problemnew/show/P1445 推导过程 1/x+1/y=1/n! 设y=n!+k(k∈N∗) 1/x​+1/(n!+k)​=1/n!​ 等式两边同乘x*n!*(n!+k)得 n!(n!+k)+xn!=x(n!+k) 移项得 n!(n!+k)=x(n!+k)−xn!=xk x=n!(n!+k)​/k=(n!)2​/k+n! 因为x为正整数 所以(n!)2​/k+n!为正整数0. 因为n!为正整数 所以只要(n!)2​/k为正…
#include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; #define fi first #define se second #define mp make_pair #define pb push_back typedef long long ll; typedef unsigned long long ull; typedef…
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac{xy}{x+y}=n!$$ $$xy=n!(x+y)$$ $$-n!(x+y)+xy=0$$ $$(n!x+n!y)-xy=0$$ $$(n!)^2+(n!x+n!y)-xy=(n!)^2$$ $$(x-n!)(y-n!)=(n!)^2$$ 所以$(x-n!)$就是$(n!)^2$的一个因子. 又…
题面 又懒得弄题面,开个传送门吧 分析 人生第一次切数学题,我们先把方程写出来 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ 现在我们知道的条件是x,y都是正整数(废话  所以我们考虑单独通过式子的变换将x,y表示出来,表示出来的式子算出来也一定是个整数 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ $$\frac {1}{x}=\frac {1}{n!}-\frac{1}{y}$$ $$\frac {1}{x}…
P4169 [Violet]天使玩偶/SJY摆棋子 题目描述 \(Ayu\)在七年前曾经收到过一个天使玩偶,当时她把它当作时间囊埋在了地下.而七年后 的今天,\(Ayu\) 却忘了她把天使玩偶埋在了哪里,所以她决定仅凭一点模糊的记忆来寻找它. 我们把 \(Ayu\) 生活的小镇看作一个二维平面坐标系,而 \(Ayu\) 会不定时地记起可能在某个点 \((x,y)\) 埋下了天使玩偶:或者 \(Ayu\) 会询问你,假如她在 \((x,y)\) ,那么她离近的天使玩偶可能埋下的地方有多远. 因为…
P4168 [Violet]蒲公英 题目背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢.昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了.我觉得把那么可怕的怪物召唤出来的那个坏蛋也很坏呢.不过奶奶说他是很难受的时候才做出这样的事的-- 最近村子里长出了一大片一大片的蒲公英.一刮风,这些蒲公英就能飘到好远的地方了呢.我觉得要是它们能飘到那个城市里面,让哥哥看看就好了呢! 哥哥你要快点回来哦! 爱你的妹妹 Violet…
[Violet]天使玩偶/SJY摆棋子 题目传送门 解题思路 用CDQ分治开了氧气跑过. 将输入给的顺序作为第一维的时间,x为第二维,y为第三维.对于距离一个询问(ax,ay),将询问分为四块,左上,右上,左下,右下,对于坐下,左下的dist即为ax+ay-max(bx+by).所以只要查询时间小于自己的点里x+y最大的即可.对于其他四块,都可以转为左下,各自跑一遍CDQ. 代码如下 #include <bits/stdc++.h> using namespace std; int n, m;…
历尽千辛万苦终于AC了这道题目... 我们考虑1个区间\([l,r]\), 被其完整包含的块的区间为\([L,R]\) 那么众数的来源? 1.\([l,L)\)或\((R,r]\)中出现的数字 2.\([L,R]\)中的众数 思路逐渐清晰起来 我们考虑维护这样的两个量 \(P[i][j]\)表示从第i块到第j块的区间(最小)众数 \(S[i][j]\)表示前i块中j的出现次数 先直接离散化或者hash或者unordered_map处理,然后维护 结合刚才的思路,不难得到: 1.求出\([l,L)…