![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论/规律
文章平均质量分 67
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
Codeforces Round #780 (Div. 3) ABCDEF
A - Vasya and Coins给定a,ba, ba,b表示aaa个111和bbb个222,要求求出最小不能被表示出的数。2×b+1,2×b2 \times b + 1, 2 \times b2×b+1,2×b可以表示a+2×ba + 2 \times ba+2×b范围内的所有数字(除111之外),那么缺1(a=0)1(a =0)1(a=0)时输出111,如果aaa不是000,此时因为有111也能被标示,所以直接输出a+2×b+1a + 2 \times b + 1a+2×b+1。#includ原创 2022-04-01 16:31:24 · 437 阅读 · 0 评论 -
Codeforces Round #766 (Div. 2)补题 E.Not Adding 数论GCD
Codeforces Round #766 (Div. 2)补题 E.Not Adding 数论GCD原创 2022-01-18 20:52:22 · 939 阅读 · 0 评论 -
2021 CCPC 桂林站 I.PTSD
Problem Analysis题目大意:有nnn个士兵,从1…n1 \dots n1…n编号,每个士兵拥有一个权值为iii。然后给定一个0−10-10−1序列,表示每个士兵是否被标记。现在要将这些士兵分为几组,同一组内如果存在比被标记的士兵权值更大的士兵,那么该士兵就会感觉到失望。要求最大化分组后各组失望士兵的权值和最大。思路分析:要使得权值和最大,那么要让失望的士兵分布在尽可能多的组里。因此考虑两两配对。我们设置一个cntcntcnt变量表示未被配对的士兵,并将所有士兵按照权值从大到小进行排序。遍原创 2021-11-08 19:37:22 · 679 阅读 · 3 评论 -
2018 Petrozavodsk Winter Camp, Yandex Cup G. Piecewise Linearity 数学
题目分析题目大意:给定n+1n + 1n+1个二维平面上的点P0,P1,..,PnP_0, P_1,..,P_nP0,P1,..,Pn表示一个分段一次函数f(x)f(x)f(x),第一段和最后一段分别是射线P1P0P_1P_0P1P0和射线Pn−1PnP_{n - 1}P_nPn−1Pn,中间第iii段是线段PiPi+1P_iP_i + 1PiPi+1。求是否存在实数λ1、λ2、...、λm,a1,a2,...,am\lambda_1、\lambda_2、...、\lambda_m,a_原创 2021-11-07 21:02:46 · 258 阅读 · 0 评论 -
The 2020 ICPC Asia Macau Regional Contest L. Random Permutation 数学期望
Problem Analysis题目大意:一个长度为nnn的随机生成的整数序列{ai}\{a_i\}{ai},序列中每个元素为111~nnn之间之间的整数,且为某个数字的概率均为1n\frac1nn1。现在要求你计算对于排列{pi}\{p_i\}{pi},在满足pi≤aip_i \leq a_ipi≤ai的情况下的期望值。思路分析:首先可以知道{ai}\{a_i\}{ai}序列一共有nnn^nnn种,{pi}\{p_i\}{pi}序列由于要求从111~nnn数字组合,因此共有n!n!n!种原创 2021-11-06 21:25:07 · 1450 阅读 · 0 评论 -
2021-2022 ACM-ICPC Brazil Subregional Programming Contest G.Getting in Shape 构造+思维+搜索
Problem Analysis题目大意:做练习,一共有两种练习ABABAB:做完一个练习BBB之后可以进入下一个练习;完成一个练习AAA之后可以进入下一个练习或者跳过下一个练习进入后一个练习。对于某个给定的练习序列sss,可能存在多种完成方式。现在给定某个序列的的完成方式数目,要求求一个满足要求的序列,使能该序列的完成方式数目符合要求。该序列必须以BBB结尾,且要求答案保证输出的方案是字典序最小的序列。题目分析:首先考虑连续的AAA序列+++一个BBB,很容易发现每增加一个AAA,序列的完原创 2021-11-06 17:56:50 · 2122 阅读 · 0 评论 -
2021-2022 ACM-ICPC Brazil Subregional Programming Contest K.Kathmandu 思维/规律
Problem Analysis题目大意:飞机的飞行时间为DDD分钟,中间提供MMM次食物,每次的时间序列给定,每TTT分钟入睡一次,要求求能否吃到食物。思路分析:签到题,直接排序判断相邻间隔即可。注意给序列末尾加项MMM。#include <bits/stdc++.h>using namespace std;const int N = 1e4 + 10;int a[N];inline int solve(){ int t, d, m; cin >> t &原创 2021-11-06 09:37:53 · 421 阅读 · 0 评论 -
2018 Petrozavodsk Winter Camp, Yandex Cup G. Piecewise Linearity 数学
占坑原创 2021-11-03 23:51:31 · 206 阅读 · 0 评论 -
HDU-7092 仓颉造数
题目大意,给定两个数字ab,ba\frac{a}{b},\frac{b}{a}ba,ab,每次选取两个数字x,yx,yx,y合称为x+y2\frac{x + y}{2}2x+y或2xyx+y\frac{2xy}{x + y}x+y2xy,合成后原来的两个数字仍然存在,求是否能够经过有限次合成得到数字111。首先,我们分析每次可以合成的两个数字x+y2\frac{x + y}{2}2x+y或2xyx+y\frac{2xy}{x + y}x+y2xy,后者即为21x+1y\frac{2}{\fra原创 2021-08-22 22:22:26 · 385 阅读 · 0 评论 -
2021CCPC华为云挑战赛
2021CCPC华为云挑战赛A.对象存储调度问题贪心问题,使用优先队列(大顶堆)存一下分条,然后从小的对象开始填充。如果碰到无法填充的情况直接输出"No",因为堆顶元素是堆里最大的,它装不下后面的也一样装不下。#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int a[N], b[N];priority_queue<int> q;signed main(){ int t原创 2021-08-22 22:17:03 · 517 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(9) Boring data structure problem
2021“MINIEYE杯”中国大学生算法设计超级联赛(9) Boring data structure problem 模拟 Problem Analysis按题目要求维护一个双端队列,每次寻找中位数的值输出。显然需要每个操作在O(1)O(1)O(1)内完成,因此按照原题意去维护是行不通的…那么考虑如何维护。我们可以开两个队列。用第二个队列的首元素表示中位数下标元素。那么我们只需要在每次操作后对俩个序列的长度进行维护,使得queue1queue_1queue1的长度 = queue2queue_2原创 2021-08-18 22:27:09 · 186 阅读 · 2 评论 -
2021牛客多校9.H.Happy Number 思维规律
2021牛客多校9.H.Happy Number???? | Powered By HeartFireY Problem Description题目大意:快乐数是由"2,3,62,3,62,3,6"组成的数字,且不能包含其他的数字,求第nnn个快乐数。自信满满的写了个三进制…发发现样例都过不了,然后发现。。。跟三进制没啥关系。枚举一下前几个快乐数,发现最后一位是236236236循环,有第二位的数字开始算,第二位是222333666222333666222333666,即为313^131原创 2021-08-15 19:18:38 · 195 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)GCD Game 数论+博弈
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)GCD Game 质因子分解+NIM博弈???? | Powered By HeartFireY Problem Analysis题目大意:BobBobBob和AliceAliceAlice在玩游戏,每次可以进行一个操作:从给定的序列中每次选择一个数aia_iai,再任意选取一个x(1≤x<ai)x(1\leq x<a_i)x(1≤x<ai),然后用gcd(ai,x)gcd(a_i,x)gcd(ai,x)代原创 2021-08-13 23:15:02 · 224 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)D.Counting Stars 线段树+二进制拆位+区间更新剪枝
???? | Powered By HeartFireY Problem Description题目大意:给定一个序列,然后有三种操作:op=1op = 1op=1,查询[l,r][l, r][l,r]区间和;op=2op = 2op=2,将区间[l,r][l,r][l,r]的每个数减去其lowbitlowbitlowbit值,实际上就是将最低非000位消去;op=3op = 3op=3,将区间[l,r][l, r][l,r]的每个数乘2k2^k2k,实际上就是将最高非000位左移一位。原创 2021-08-13 19:12:36 · 189 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Fall with Trees 等比数列
???? | Powered By HeartFireY Problem Analysis根据二叉树本身性质以及题目给出的条件限制,我们发现整棵树倾向于三角形的组合。那么我们不妨设第二层两个节点间的距离为len2=dlen_2 = dlen2=d,那么我们不难发现,第kkk层的宽度为∑i=2klen2×22−i=d×(2−22−k)\sum ^k_{i = 2} len_2 \times2^{2 - i} = d \times (2 - 2^{2 - k})∑i=2klen2×22−i=d×(2−原创 2021-08-12 12:31:01 · 193 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Yiwen with Sqc 字符串
2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Yiwen with Sqc 字符串???? | Powered By HeartFireY Problem Analysis题目大意:定义一个字符串的权值为字符串中不同字符出现次数的平方和,求给定字符串所有子串的贡献值之和。数据范围猛如虎,暴力枚举不可取。首先我们明确:某个字符串而言,每个字母出现次数平方和对答案的贡献是相互独立的,因为我们对于每个字母统计其出现的次数和出现的位置,单独计算其贡献即可。那么我们来考虑对于单个字母,如何计原创 2021-08-11 21:05:39 · 330 阅读 · 0 评论 -
牛客多校8.K.Yet Another Problem About Pi 计算几何/思维
Problem Analysis题目大意转述:给你一个无限延伸的网格的长和宽,现在有一条固定长度的绳子(长为π\piπ),绳子可以摆成任意形状,求放到网格上去最多能经过的网格数目。首先要确定绳子怎么摆才能达到这个目的:我们要经过近可能多的点,那么要经过尽可能多的顶点,而经过定点分为两种情况:在左侧的情况中,经过上面的点时,利用绳子无限小数部分向四个格子延展出一点点,可以使绳子穿过四个格子;而竖着向下走,再统计下一个点的情况时,我们可以发现途中蓝色阴影部分的两个格子是被重复统计的在右侧的情况中,同原创 2021-08-09 19:36:32 · 177 阅读 · 0 评论 -
牛客多校8.D.OR 二进制+思维
牛客多校8.D.OR 二进制+思维Problem Analysis题目给给定数组b[]、c[]b[]、c[]b[]、c[]各具有n−1n - 1n−1个元素,求满足b[i]=a[i] or a[i−1]∧c[i]=a[i]+a[i−1]b[i] = a[i]\ or\ a[i - 1] \wedge c[i] = a[i] + a[i - 1]b[i]=a[i] or a[i−1]∧c[i]=a[i]+a[i−1]条件的的具有nnn个元素的aaa序列的个原创 2021-08-09 17:26:28 · 124 阅读 · 2 评论 -
牛客多校7.H.xay loves count 思维
???? 算法标签:数学/思维建权值数组,枚举所有因子,记录合法方案数即可。时间复杂度O(NlogN)O(N \log N)O(NlogN)#include <bits/stdc++.h>#define int long longusing namespace std;const int maxn = 1e6 + 10;int a[maxn];signed main(){ ios_base::sync_with_stdio(false), cin.tie(0),原创 2021-08-07 14:57:05 · 202 阅读 · 0 评论 -
牛客多校7.I.xay loves or 二进制
???? 算法标签:二进制求出对于给到的xxx和sss,存在多少个yyy满足x or y=sx\ or \ y = sx or y=s。首先考虑yyy恒为000的情况:xxx的某一位为111,sss的对应位为000。再考虑yyy的情况种数:统计xxx和sss同一位都为111的位数,同时为111,那么对于该位yyy就有两种选择:然后2n2^n2n输出即可。喜提WA…再读题,正整数。。。考虑什么时候会出现000这种及其特殊的数字:xxx的某一位为000原创 2021-08-07 14:39:43 · 193 阅读 · 2 评论 -
牛客多校4.B.Boxes 概率
牛客多校4.B.BoxesProblem Analysis给定nnn个盒子在你前面,等概率的装着白球或者黑球,且各自独立。现在你来猜盒子里的球的颜色,你可以打开盒子,但是需要花费盒子对应的权值。额外的,会提供给你所有没开盒子里剩余多少黑球,但是也要花费一个权值CCC,那么问:确定盒子里所有球颜色需要花费最小权值的期望。首先需要确定,CCC要花则仅能花费一次,那么开盒子方案分为:直接全开,ans1=∑Wians_1 = \sum W_ians1=∑Wi将权值升序排列,花费CCC后逐原创 2021-07-31 21:03:52 · 158 阅读 · 0 评论 -
牛客多校3.E.Math 数论打表
牛客多校3.E.MathAnalysis首先分析题目,要求求对于给定nnn,在[1,n][1, n][1,n]范围内满足xy+1∣x2+y2xy + 1 | x^2 + y^2xy+1∣x2+y2的解的个数。首先考虑合法解:要使xy+1∣x2+y2xy + 1 | x^2 + y^2xy+1∣x2+y2,则应满足x2+y2=k(xy+1)x^2 + y^2 = k(xy + 1)x2+y2=k(xy+1),则:$$\begin{aligned}x^2 + y^2 = k(xy + 1) \x^原创 2021-07-28 18:02:06 · 153 阅读 · 0 评论 -
牛客多校4.J.Average 数学+二分
牛客多校4.J.Average设子矩阵横向起点终点l1, r1l_1,\ r_1l1, r1,纵向起点终点l2, r2l_2,\ r_2l2, r2,则子矩阵平均值可以表示为:∑i=l1r1∑j=l2r2W[i][j](r1−l1+1)×(r2−l2+1)=∑i=l1r1∑j=l2r2ai+bj(r1−l1+1)×(r2−l2+1)=(r2−l2+1)∑i=l1r1ai+(r1−l1+1)∑j=l2r2bi(r1−l1+1)×(r2−l2+1)=∑i=l1原创 2021-07-27 21:35:38 · 155 阅读 · 0 评论 -
牛客多校4.F. Just a joke 博弈
Analysis给定两种操作:Select an edge of GGG and delete it from GGG.删一条边Select a connected component of GGG which doesn’t have any loop, then delete it from GGG.删一个连通块那么对于第一种操作, 会使得边数 −1-1−1,对于第二种操作, 会使得点数 −k-k−k, 边数 −(k−1)-(k-1)−(k−1)。任何一种操作都会使得点数+边数的和(n+原创 2021-07-27 17:01:34 · 191 阅读 · 0 评论 -
牛客多校4.C.LCS 构造
牛客多校4.C.LCS 构造Analysis题目要求构造三个长度为nnn的字符串s1,s2,s3s_1,s_2,s_3s1,s2,s3,同时满足LCS(s1,s2)=a, LCS(s2,s3)=b, LCS(s3,s1)=cLCS(s_1, s_2) = a, \ LCS(s_2, s_3) = b, \ LCS(s_3,s_1) = cLCS(s1,s2)=a, LCS(s2,s3)=b, LCS(s3,s1)=c很容易想到,对于原创 2021-07-27 16:42:06 · 203 阅读 · 0 评论 -
樱花 唯一质因子分解、线性筛
樱花 唯一质因子分解、线性筛???? | 知识点:线性筛、唯一质因子分解(阶乘分解)求不定方程:1x+1y=1n!\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}x1+y1=n!1的正整数解 (x,y)(x,y)(x,y) 的数目。首先分析题目,x,y∈N∗x,y \in N*x,y∈N∗,求解组数。对于题目给定的方程,由于都是分数形式,很难直接找出规律,因此先对方程进行变形,将分式相加转换为多项式:1x+1y=1n!,x+yxy=1n!,x=y∗n!y−n!原创 2021-06-08 23:12:17 · 197 阅读 · 0 评论 -
博弈论 详解
博弈论 ,是经济学的一个分支,主要研究具有竞争或对抗性质的对象,在一定规则下产生的各种行为。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。对于算法竞赛中的博弈问题,一般具有以下特征:博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负。公平博弈。即两人进行决策所遵循的规则相同。本文针对常见的几种博弈:巴什博弈、威佐夫博弈、斐波那契博弈、NIM博弈以及解决公平组合博弈的SG函数定理进行解原创 2021-05-27 23:57:07 · 10882 阅读 · 2 评论 -
2017蓝桥杯 K倍区间 前缀和+同余定理
2017蓝桥杯 K倍区间 前缀和+同余定理给定一个长度为NNN的数列,A1,A2,...ANA1, A2, ... ANA1,A2,...AN。如果其中一段连续的子序列Ai,Ai+1,...Aj(i<=j)Ai, Ai+1, ... Aj(i <= j)Ai,Ai+1,...Aj(i<=j)之和是KKK的倍数,我们就称这个区间[i,j][i, j][i,j]是KKK倍区间。你能求出数列中总共有多少个KKK倍区间吗?看到“区间的和”,首先想到前缀和,然后暴力枚举区间计数。#incl原创 2021-04-15 17:52:03 · 332 阅读 · 1 评论 -
数论-欧拉函数 学习笔记
一、欧拉函数1.欧拉函数的定义欧拉函数(Euler’s totient function),即 φ(n)\varphi(n)φ(n),表示的是小于等于 nnn 和 nnn 互质的数的个数。比如说 φ(1)=1\varphi(1) = 1φ(1)=1。当 n 是质数的时候,显然有 φ(n)=n−1\varphi(n) = n - 1φ(n)=n−1。2.欧拉函数的一些性质欧拉函数是积性函数。积性是什么意思呢?如果有 gcd(a,b)=1\gcd(a, b) = 1gcd(a,b)=1,那么原创 2021-04-04 16:47:20 · 383 阅读 · 0 评论 -
数论-费马小定理 学习笔记
费马小定理 学习笔记1.定理内容如果p是一个质数,而整数a不是p的倍数,则有ap−1≡1(modp)a^{p - 1} \equiv 1 \pmod{p}ap−1≡1(modp)。即:若 ppp 为素数,gcd(a,p)=1\gcd(a, p) = 1gcd(a,p)=1,则 ap−1≡1(modp)a^{p - 1} \equiv 1 \pmod{p}ap−1≡1(modp)。第二种表述形式:对于任意整数 aaa,有 ap≡a(modp)a^p \equiv a \pmod{p}ap≡a(mod原创 2021-04-04 16:46:46 · 244 阅读 · 0 评论 -
蓝桥杯2015初赛 垒骰子 DP动规 题解
蓝桥杯2015初赛 垒骰子 DP动规+矩阵快速幂 题解首先简化题目描述:共有nnn个骰子,骰子的组成规则遵循(1<->4)、(2<->5)、(3<->6),现在将骰子落成一个竖条,必须满足mmm个条件:条件要求每组的两个骰子标号互斥而不能面对面摞在一起。容易想到枚举每个骰子某面向上的状态,通过mapmapmap打标记检查状态是否合法,不合法的回溯。但是一看数据范围,枚举显然行不通,于是考虑动态规划。走经典的DPDPDP分析法:1.状态表示:首先确定发生转移的状态原创 2021-04-01 22:21:21 · 377 阅读 · 0 评论 -
矩阵快速幂 算法原理与模板
一.前导知识(线性代数)1.矩阵乘法※运算公式[a11a12...a1na21a22...a2n............an1an2...ann] ⋅ [b11b12...b1nb21b22...b2n............bn1bn2...bnn] = [c11c12...c1nc21c22...c2n............cn1cn2...cnn]⟨cij=∑k=1naik∗bkj⟩\begin{bmatrix}a_{11}&a_{12}&a原创 2021-03-30 20:28:35 · 336 阅读 · 0 评论 -
牛客小白月赛32 C.消减整数 思维规律
链接:https://ac.nowcoder.com/acm/contest/11163/CProblem Analysis给出一个正整数H,从1开始减,第一次必须减1,每次减的数字都必须和上一次相同或者是上一次的两倍,请问最少需要几次能把H恰好减到0。数据范围不小,到1e91e91e9了。因此考虑十进制下的减法和倍乘运算意义不大。①.第一次必须减一,这里我们不妨联想到二进制单个数位的规律:我们规定减数为1要使111变成000,那么需要做减法111次;要使000变成000,那么需要先借位111次原创 2021-03-21 08:58:39 · 361 阅读 · 1 评论