数学问题
~
verdin黄大锤
afo啦!
展开
-
洛谷 1290 欧几里德的游戏
题目:欧几里德的游戏思路:不妨设两数A>=B(如果不是手动swap)。假如A<2B,这一轮时只可能有一种选择方案,就是A'=A-B,且此时A'一定小于B而当A>=2B时,有多种选择方案,那么此时选择的人就可以每次都把另一个人的选择限制在一个自己能赢的状态中。所以,当A<2B时,就模拟这个过程,只要出现了A>=2B的情况,那么此时选择的人就一定会赢。代码:#includ...原创 2018-07-03 21:14:22 · 183 阅读 · 0 评论 -
2018/10/17 膜你赛 day1T1 分数
题目:题目描述老虎和蒜头是好朋友。秋天到了,森林中学又迎来了一年一度的招生季。为了与科技时代接轨,森林中学今年即将使用全新的答题卡。只要考试时学生对答题卡进行规范性的填涂,考试后不用多久就能得到大家考试的成绩了。然而,被聘请为顾问的老虎却犯了难。原来,在数学考试中,往往会出现如 2/3,√23这样的答案,而这样的答案在答题卡上没有填涂的方案——答题卡上只能够填涂在 0 至 999 之...原创 2018-10-18 20:29:01 · 213 阅读 · 0 评论 -
数学课
题目:数学课上,老师在黑板上写了n个数,然后让大家做一个游戏:每次擦掉黑板上的两个数,然后在黑板上写下这两个数的乘积加一,直到最后只有一个数。同学们做了几次这个游戏之后,发现最终剩下的数大小不一。同学们十分好奇,但老师说:“如果你们能保证剩下的数比我玩的时候剩下的数要小或者相等,那我就告诉你们原因。”同学们现在十分想知道原因,你能帮帮他们吗?思路:每次擦掉两个最大的数。假设有3...原创 2018-10-09 21:01:20 · 439 阅读 · 1 评论 -
noip2014 洛谷 P1965 转圈游戏
题目:转圈游戏思路:答案就是(x+m∗(10k))(x+m*(10^k))%n(x+m∗(10k))由于10k10^k10k很大,所以要用快速幂求。快速幂模板忘了啊……QAQ快速幂模板:#include<bits/stdc++.h>using namespace std;#define ll long longll a,b,k; ll ans=1;int m...原创 2018-10-16 15:45:08 · 194 阅读 · 0 评论 -
noip2016 洛谷 P2822 组合数问题
题目:组合数问题思路:先把所有的 Cij mod kC_i^j \ mod \ kCij mod k 打表,然后统计,维护一个二维前缀和,对于询问查表。求CijC_i^jCij时忘记了递推式了QAQ……递推式 : Cij=Ci−1j+Ci−1j−1C_i^j = C_{i-1}^j+C_{i-1}^{j-1}Cij=Ci−1j+Ci−1j−1...原创 2018-10-21 10:59:01 · 210 阅读 · 0 评论 -
noip2016 洛谷 P2831 愤怒的小鸟
题目:愤怒的小鸟思路:搜索。对于每一只鸟,如果可以被之前的抛物线经过,就可以合并,不需要考虑。否则就先考虑能否和之前的单个点组成抛物线,或者单独成一个点。要先考虑第一种情况以便于进行最优性剪枝。一定要注意精度问题!!!WA了好多遍!!!判断两个double类型相等:bool issame(db x,db y) { if(fabs(x-y)&lt;1e-8) return true...原创 2018-10-23 15:32:57 · 214 阅读 · 0 评论 -
【模板·线性筛(线性筛求欧拉函数/素数筛)】洛谷 P3383 【模板】线性筛素数
题目:线性筛素数思路:复习。以前写的线性筛求欧拉函数模板,好毒啊,表示看不懂惹……代码:#include<bits/stdc++.h>using namespace std;#define maxn 10000000#define read(x) scanf("%d",&x)int n,m;int euler[maxn+5];vector<in...原创 2018-10-26 17:00:26 · 198 阅读 · 0 评论 -
noip 2008 洛谷 P1125 笨小猴
题目:苯小猴思路:差不多就是质数判定。一定要注意0和1都不是质数!代码:#include<bits/stdc++.h>using namespace std;#define maxn 100char a[maxn+5];int n; int cnt[maxn+5];bool judge(int x) { if(x==0||x==1) return fals...原创 2018-10-31 16:51:01 · 417 阅读 · 0 评论 -
数学课
题目:题目描述数学课上,老师在黑板上写了n个数,然后让大家做一个游戏:每次擦掉黑板上的两个数,然后在黑板上写下这两个数的乘积加一,直到最后只有一个数。同学们做了几次这个游戏之后,发现最终剩下的数大小不一。同学们十分好奇,但老师说:“如果你们能保证剩下的数比我玩的时候剩下的数要小或者相等,那我就告诉你们原因。”同学们现在十分想知道原因,你能帮帮他们吗?输入输出格式输入格式:第一行...原创 2018-11-04 20:44:37 · 431 阅读 · 0 评论 -
洛谷 P1313 计算系数
题目:计算系数思路:先推个杨辉三角,再求个快速幂。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000#define md 10007#define ll long long#define read(x) scanf("%d",&x)int a,b,k,n,m;int f[ma...原创 2018-11-07 21:07:43 · 159 阅读 · 0 评论 -
CF1080C Masha and two friends
题目:Masha and two friends思路:首先这题思路很简单,模拟+容斥就可以了。即 最终的白块数 = 原网格图的白块数 + 涂白增加的白块数 - 涂黑减少的白块数 - 又涂了白又涂了黑的那一块减少的白块数。这里重点说下怎么求两矩形交,我最开始就是这里不会写的。下面的题解大多分类讨论了,其实可以不用讨论的。如图,要求黑色矩形和红色居心的交。设黑色矩形左上角坐标 ( x...原创 2018-12-26 22:19:48 · 288 阅读 · 0 评论 -
CF1080D Olya and magical square
题目:Olya and magical square思路:首先,n>31时可以不用考虑,因为只需要划分左上角或右下角的正方形就足够了。令f[i]f[i]f[i]表示把大长方形2n2^n2n划分成全部是边长为2n−i2^{n-i}2n−i小正方形的划分次数。g[i]g[i]g[i]表示形成边长2n−i2^{n-i}2n−i通路需要的最小划分数。f[i]=2i∗2−2+f[i−1]f...原创 2018-12-27 13:37:09 · 194 阅读 · 0 评论 -
Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) B Div Times Mod
题目:Div Times Mod思路:枚举一个数i ∈ [1,n) 使得 n / i ==0 ,表示 x mod k == i,且x / k == n / i 。然后 x 可以算出来,即 x=( n / i ) * k + i 。输出x的最小值就好 。代码:#include<bits/stdc++.h>using namespace std;#define re...原创 2018-12-24 13:07:32 · 176 阅读 · 1 评论 -
洛谷 P4549 【模板】裴蜀定理
题目:【模板】裴蜀定理思路:求这几个数的gcd代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)int n;int gcd(int x,int y) { return y==0?x:gcd(y,x%y);}int main() { read(n);...原创 2019-01-04 13:32:32 · 166 阅读 · 0 评论 -
UVA11538 Chess Queen
题目:Chess Queen思路:简单的数学推导。代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define readll(x) scanf("%lld",&amp;x)#define ll long longll n,m;int main() { while((~readll(n))&amp;&amp;(~r原创 2019-01-06 22:32:15 · 125 阅读 · 0 评论 -
UVA11401 Triangle Counting
题目:UVA11401 Triangle Counting思路:简单推导即可。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000000#define ll long long#define read(x) scanf("%d",&x)int n;ll f[maxn+5];int...原创 2019-01-07 13:26:25 · 160 阅读 · 0 评论 -
UVA11806 Cheerleaders
题目:Cheerleaders思路:容斥原理。考虑全部的方案数减去边上没有的方案数。可以预处理组合数。二进制状压可以简化代码。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxk 500#define md ((int)(1e6+7...原创 2019-01-07 21:15:06 · 161 阅读 · 0 评论 -
bzoj3029 守卫者的挑战
题目:题目描述打开了黑魔法师 Vani 的大门,队员们在迷宫般的路上漫无目的地搜寻着关押 applepi 的监狱的所在地。突然,眼前一道亮光闪过。“我, Nizem,是黑魔法圣殿的守卫者。如果你能通过我的挑战,那么你可以带走黑魔法圣殿的地图„„”瞬间,队员们被传送到了一个擂台上,最初身边有一个容量为 K 的包包。擂台赛一共有 N 项挑战,各项挑战依次进行。第i 项挑战有一个属性 ai ...原创 2019-02-11 14:38:54 · 159 阅读 · 0 评论 -
Codeforces Round #512(Technocup 2019 Elimination Round 1) D. Vasya and Triangle (Codeforces 1030D)
题目:Vasya and Triangle题意:给出三个数n,m,k,求是否存在第一象限的3个点满足每个点的横坐标小于等于n,纵坐标小于等于m,坐标为整数,且构成的三角形面积等于n*m/k。思路:不妨把这个三角形看做直角三角形,然后把它补全成长方形,面积为nm2/k。那么这个面积一定是整数,如果不是整数就输出NO。接下来先尽量最大化横坐标x,即求gcd(nm2/k,n),然后算出y,输出...原创 2018-09-24 10:34:51 · 269 阅读 · 3 评论 -
Codeforces Round #512 C. Vasya and Golden Ticket (Codeforces 1030C)
题目:Vasya and Golden Ticket题意:给出一个数字构成的序列,问能否把它划分成几段,使得每一段的和相等。思路:dp。令f[j]表示当前段在第j个位置结束每一段的和为i能否成立。枚举段和i,对于每个j,若存在k使得 sum[j]-sum[k-1]==i 且 f[k-1]==true,则f[j]=true。其中sum为关于序列a的前缀和。代码:#include<b...原创 2018-09-24 10:24:17 · 608 阅读 · 0 评论 -
洛谷 P1865 A % B Problem
题目:A % B Problem思路:用素数筛处理出所有素数,再对于每次查询进行判断。代码:#include<bits/stdc++.h>using namespace std;#define maxm 1000000int m;int ispr[maxm+5]={0};void slv(){ for(int i=2;i<=m;i++) ispr[i]=tru...原创 2018-07-11 21:50:23 · 167 阅读 · 0 评论 -
洛谷 P1029 最大公约数和最小公倍数问题
题目:最大公约数和最小公倍数问题思路:由结论a*b=gcd(a,b)*lcm(a,b)。所以可以直接枚举a,b的值再判断可行性。代码:#include<bits/stdc++.h>using namespace std;#define maxm 1000000int m;int ispr[maxm+5]={0};void slv(){ for(int i=2;i&l...原创 2018-07-11 21:53:37 · 177 阅读 · 0 评论 -
洛谷 P1022 计算器的改良
题目:计算器的改良思路:把方程以=为界拆成两段,对于每一段假设前面没有 - 号,就添加一个 + 号,且每一段的结尾加一个 + 号。再把两段的未知数系数和常数项合并,移项,化系数为1求得。注意当常数项为0时要特殊处理,避免出现精度问题。代码:#include<bits/stdc++.h>using namespace std;string a;int n;int ssum=0,...原创 2018-07-11 22:02:39 · 304 阅读 · 0 评论 -
楼
题目:题目背景zhx 为他的妹子造了一幢摩天楼。题目描述zhx 有一幢摩天楼。 摩天楼上面有 M 个观光电梯,每个观光电梯被两个整数ui, di描述。每个电梯只有两个按钮,(针对第i个电梯)两个按钮分别可以使电梯向上ui层向下di层。摩天楼的高度是无限的,但是电梯不可以钻入地下, 也就是说是有下限的。每层楼用整数标记,以 0 作为地面这一层的标记。 zhx 去陪他妹子了,留你一个人在摩天楼...原创 2018-07-11 22:55:09 · 167 阅读 · 0 评论 -
UVa 756 Biorhythms
题目:Biorhythms 思路:中国剩余定理模板题。 代码:#include<bits/stdc++.h>using namespace std;#define A 23#define B 28#define C 33#define lcm (A*B*C)#define mdA B*C#define mdB A*C#define mdC B...原创 2018-07-23 22:33:25 · 173 阅读 · 0 评论 -
NYoj 1013 除法表达式
题目:除法表达式 思路:X1一定要做分子,X2一定要做分母,其余的数可做分母也可做分子。若要整除,一定是尽量的把所有数都放到分子的位置。然后就用欧几里得算法,把第二个数和其余的数约分,假如能约到1,那么就可能整除。 代码:#include<bits/stdc++.h>using namespace std;#define maxn 10000...原创 2018-07-19 22:07:24 · 187 阅读 · 0 评论 -
POJ 2487 Farey Sequence
题目:Farey Sequence 思路:对于每个n,结果就是2~n的欧拉函数之和。 代码:#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>#include <vector>using namespace s...原创 2018-07-21 14:03:32 · 212 阅读 · 0 评论 -
洛谷 P1516 青蛙的约会
题目:青蛙的约会 思路:扩展欧几里得算法求出特解,再由特解求出通解及最小值。依题意,可列出方程(n-m)x1+Lx2=X-Y。根据exgcd(n-m,L,x1,y1),求出特解(x1,y1),以及gcd(n-m,L)。注意一下,当(X-Y)%gcd!=0时原方程无解。再根据公式,最小值为(x0%t+t)%t,其中x0=x1*c/gcd,t=b/gcd。通解公式:x=...原创 2018-07-22 14:35:44 · 185 阅读 · 0 评论 -
ACM赛 CF gym 101341 C Urn with Balls
题目:Urn with Balls思路: emm…瞎搞分类讨论推结论代码:#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;map&gt; // STL原创 2018-08-02 19:57:01 · 242 阅读 · 0 评论 -
ACM赛 CF gym 101341 D Jumps
题目:Jumps思路: 根据裴蜀定理得,只要x能整除Ai的gcd,那么就可以到达。代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <map> // STL#include <stri...原创 2018-08-02 20:03:30 · 427 阅读 · 0 评论 -
数学一本通 骰子
题目: 思路: 令f[i][j]表示前i次投掷总和为j的方案数。 边界f[1][i]=i。 转移方程:f[i][j]=Σf[i-1][j-k]。 最后除以一个gcd。代码:#include<bits/stdc++.h>using namespace std;#define maxn 24#define m 6#define maxs 150#def...原创 2018-08-19 11:22:14 · 198 阅读 · 0 评论 -
UVA10529 Dumb Bones
题目:Dumb Bones题意: 来自luogu—— 你正在尝试用多米诺骨牌搭成一条直线,以便最后试验时推倒它们 (确实,搭建某些东西仅仅为了推倒看上去没啥意义,但你有一些奇怪的爱好) 然而你在搭建过程中可能会弄倒骨牌,这将波及到邻近的部分 现在需要你来求将骨牌搭建完成所需的期望步数思路: 令f[i]表示连续i个骨牌搭建的期望步数。 枚举已经搭建了i-1个骨牌,还剩k第k个位...原创 2018-08-22 20:06:26 · 156 阅读 · 0 评论 -
Codeforces Round #505 B Weakened Common Divisor (cf 1025B)
题目:Weakened Common Divisor题意: 比赛时我的思路是求出每一对ai和bi的lcm,计作ci,再求出gcd(ci),最后求出这个gcd的一个质因数即可。问题是质因数的分解问题,max{gcd}=1e18,如果要找到质因数最多要做1e9次运算。然后我就被hack掉了… hack数据:11000000007 1000000009正确思路:将a1和b1分解质因...原创 2018-08-20 12:02:07 · 236 阅读 · 0 评论 -
P1291 SHOI2002 百事世界杯之旅
题目:百事世界杯之旅思路: 即求n∗(1+12+13+...+1n)n∗(1+12+13+...+1n)n*(1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}),注意向左对齐。代码:#include<bits/stdc++.h>using namespace std;#define ll long longint n;l...原创 2018-08-21 11:57:52 · 304 阅读 · 0 评论 -
Codeforces Round #506 (Div. 3) F Multicolored Markers (cf 1029F)
题目:Multicolored Markers题意:现有一面长宽可无线延伸的网格,现要求将aaa个格子染成红色,bbb个格子染成蓝色。要求染成的图形为矩形,且至少有一种颜色染成了矩形。求染成的图形的最小周长。思路: 枚举染成的大矩形的边长,同时维护内部可以框住的小矩形的某一边的最大边长,判断一下能否围住就可以了。 当时以为只需要考虑占地多的染料围住占地少的染料,结果WA了。其实占地少的...原创 2018-08-25 14:43:42 · 305 阅读 · 0 评论 -
Codeforces Round #506 (Div. 3) D Concatenated Multiples (cf 1029D)
题目:Concatenated Multiples题意:给出nnn个数,求数对(x,y)(x,y)(x,y)的个数,使得axaxa_x和ayaya_y简单拼接后能被kkk整除。思路: 对于两个数xxx和yyy,简单拼接后能被kkk整除,当且仅当 x×10log10ymod&nbsp;k&nbsp;+&nbsp;y&nbsp;mod&nbsp;k&nbsp;==&nbsp;0x×10log原创 2018-08-25 17:48:44 · 597 阅读 · 0 评论 -
Manthan, Codefest 18 (rated, Div. 1 + Div. 2) A. Packets (cf 1037 A)
题目:Packets题意:给出n个金币,求最少可以将这些金币分成几个钱袋使得使用这些钱袋可以拼成1~n中的每一个数。思路: 结论,ans=log(2,n)+1。尽量用2的倍数的钱装成钱袋是更优的。 比赛时log()函数被卡精度了Orz…代码:#include<bits/stdc++.h>using namespace std;int main() { ...原创 2018-09-03 16:14:57 · 193 阅读 · 0 评论 -
【19/04/18 膜赛】 Jams倒酒(pour)
题目:题目描述Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载。 酒吧的生意并不好。Jams发现酒鬼们都很穷,不像他那么土豪。有时,他们会因为负担不起a ml 或者 b ml酒的消费,而不得不离去。因此,Jams决定出手第三种体积的啤酒(较小体积的啤酒)。 Jams只有两种杯子,容积分别为 a ml 和 b ml,而...原创 2019-04-18 20:29:52 · 442 阅读 · 0 评论