
题解
文章平均质量分 76
H-w-H
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #752 (Div. 2)(A-E)
Codeforces Round #752 (Div. 2)A. Era题意:给出一个数组aaa,一种操作:每次能够在任意位置插入一个数,问最小的插入次数使∀i∈[1,n]\forall i \in[1,n]∀i∈[1,n],都满足ai≤ia_i\le iai≤i思路:我们能够在最前面插入1,使每个数的下标都加1,如果i≤a[i]i\le a[i]i≤a[i],只要让最小i−a[i]i-a[i]i−a[i]变成0的操作数就是答案。#include <bits/stdc++.h>原创 2021-11-01 21:17:30 · 309 阅读 · 1 评论 -
2018-2019 ACM-ICPC, Asia Nanjing Regional Contest(J Prime Game)
J Prime Game题意:给出一个序列,mul(l,r)=∏i=lraimul(l,r)=\prod\limits_{i=l}^ra_imul(l,r)=i=l∏rai,fac(l,r)fac(l,r)fac(l,r)表示mul(l,r)mul(l,r)mul(l,r)的中不同的质数的个数。问:∑i=1n∑j=infac(i,j)\sum\limits_{i=1}^n\sum\limits_{j=i}^nfac(i,j)i=1∑nj=i∑nfac(i,j)思路:统计在序列中出现过的质原创 2021-10-16 16:15:25 · 163 阅读 · 0 评论 -
Codeforces Round #746 (Div. 2)(A,B,C)
Codeforces_Round#746(Div.2)A.Gamer_Hemose题意:思路:代码:B.Hemose_Shopping题意:思路:代码:C.Bakry_and_Partitioning题意:思路:代码:Codeforces_Round#746(Div.2)A.Gamer_Hemose题意:一个 BossBossBoss 的血量为mmm,有nnn把武器,每次能够使用一把武器,每把武器不能连续使用,问最少要几次才能杀掉BossBossBoss思路:选两个伤害最大的武器,交替使用。.原创 2021-10-07 18:36:58 · 569 阅读 · 1 评论 -
Rinne Loves Sequence
Rinne Loves Sequence推式子∑i=1n∑j=i+1n[gcd(ai,aj)=1]∑i=1n∑j=1n[gcd(i,j)=1]×cnti×cntj−∑i=1n[gcd(i,i)=1]∑d=1nμ(d)∑i=1n∑j=1ncnti×cntj∑d=1nμ(d)∑i=1nd∑j=1ndcntid×cntjd\sum_{i=1}^n\sum_{j=i+1}^n[gcd(a_i, a_j)=1]\\\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=1]\times cnt_原创 2021-09-21 10:32:44 · 146 阅读 · 0 评论 -
逆序对数列(简单dp)
P2513 [HAOI2009]逆序对数列题意:给出一个长度为nnn的排列,问有多少种排列方式的逆序对为k。思路:dp[i][j]dp[i][j]dp[i][j]表示长度为i的排列,逆序对为jjj的方案数。对于一个长度为iii的排列,将i+1i+1i+1插入到排列中有i+1i+1i+1种插入方法,最多能够多出iii个逆序对,所以可以得到转移方程dp[i][j]=∑k=0min(i−1,i(i−1)2)dp[i−1][j−k]dp[i][j]=\sum_{k=0}^{min(i-1, \fra原创 2021-09-13 19:00:31 · 360 阅读 · 0 评论 -
P1681 最大正方形II(简单dp)
P1681 最大正方形II题意给出一个n×mn\times mn×m的010101矩阵,问最大的01交错的正方形大小是多少。思路:dp[i][j]dp[i][j]dp[i][j]表示以(i,j)(i,j)(i,j)这个位置为右下角的最大的矩形的大小。考虑如何转移。当(i,j)(i,j)(i,j)和(i−1,j),(i,j−1)(i-1,j),(i,j-1)(i−1,j),(i,j−1)不相同时,(i,j)(i,j)(i,j)这个点才能向上左扩展。否则dp[i][j]=1dp[i][j]=1原创 2021-09-12 20:05:58 · 208 阅读 · 0 评论 -
EOJ Monthly 2021.9 Sponsored by TuSimple——A.Amazing.Discovery(分治or二次剩余)
EOJ Monthly 2021.9 Sponsored by TuSimpleA.Amazing.Discovery题意:思路:解法1:解法2:EOJ Monthly 2021.9 Sponsored by TuSimpleA.Amazing.Discovery题意:给出a,b,na,b,na,b,n,求S=(a+b)n+(a−b)n(mod p)S=(a+\sqrt b)^n+(a-\sqrt b)^n(mod~p)S=(a+b)n+(a−b)n(mod p)思.原创 2021-09-11 15:56:46 · 370 阅读 · 0 评论 -
P2359 三素数数(dp)
P2359 三素数数题意:如果一个数的所有连续三位数字都是大于100100100的素数,则该数称为三素数数。比如113797113797113797是一个666位的三素数数。给出一个nnn,问有多少长度为n的三素数数,对1e9+91e9+91e9+9取模。思路:dp[i][j][k]dp[i][j][k]dp[i][j][k]表示长度为iii的,倒数第二位是jjj,最后一位是kkk的方案数。这样我们dp[i][j][k]dp[i][j][k]dp[i][j][k]怎么从dp[i−1][k][原创 2021-09-07 21:43:22 · 369 阅读 · 0 评论 -
P2401 不等数列(dp)
P2401 不等数列题意:给出一个长度为nnn的排列,每种排列方式在两个数之间都能产生一个大于号小于号,问有k个小于号的排列方式有多少个思路:现在是长度问n−1n-1n−1的一个排列,我们把n插入到这个排列中就成了一个长度问n的排列。如果我们把nnn放在序列的最前面,就会多一个大于号。如果我们把nnn放在序列的最后面,就会多一个小于号。如果我们放在小于号的中间,我们就能减掉一个小于号,然后再加上一个大于号和一个小于号,也就是加上一个大于号如果我么放在大于号的中间,我们就能减掉一个小于号原创 2021-09-05 16:53:58 · 206 阅读 · 1 评论 -
P1622 释放囚犯(区间dp)
P1622释放囚犯题意:思路:CodeCodeCodeP1622释放囚犯题意:p个牢房,q个要释放的人,两个监狱能够通信当且仅当两个监狱之间都有人,当释放某个监狱的人时,和他能够通信的监狱必须要吃肉,问要按什么样的顺序释放才能让所有人吃上的肉最少思路:区间dp,反过来思考,释放人,我们考虑先把要放的人全部清空,然后再抓进去(可以想到,最优情况的顺序下,正向和反向的答案相同)这样一来,我们每次抓进去一个人,就合并两个区间,且加上区间人数。dp[i][j]dp[i][j]dp[i][j]表示把第.原创 2021-09-04 21:50:17 · 185 阅读 · 0 评论 -
E. e-Government(AC自动机,fail树,树状数组)
E. e-Government题意:给出一些m个模式串和n个操作,操作分为3种:‘?’+字符串:查询字符串中 在模式串集合中的字符串 出现了多少次。‘+’+数字:将第几个模式串添加回模式串集合‘-’+数字:将第几个模式串从模式串集合中删除。思路:考虑暴力的做法:先对所有模式串建trie树,bfs找fail数组,用一个boo数组来表示某个字符串是否在模式串集合中。对于一个查询,字符串在trie树上跳fail,当跳到还在模式串集合中的节点时,答案++,输出答案。树状数组维护差分数组做法:原创 2021-09-03 15:25:14 · 231 阅读 · 1 评论 -
P3966 [TJOI2013]单词(AC自动机,fail树)
P3966 [TJOI2013]单词题意:给出n个字符串,问各个字符串在所有字符串中出现的次数思路:对于一个字符串来说,我们对它在trie树上的路径节点++,表示当前节点一共出现多少次。再建一棵fail树,对于fail树的一个子树来说,子树权值等于根节点所表示的字符串出现的次数。所以我们就可以dfs去统计每个子树的权值和,在输出每个字符串对应节点的权值,就是答案。#include<bits/stdc++.h>using namespace std;#define int lon原创 2021-09-03 14:21:52 · 108 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(9)——H - Integers Have Friends 2.0
[H - Integers Have Friends 2.0](https://vjudge.net/problem/HDU-7073)题意:思路:H - Integers Have Friends 2.0题意:给出一个数组aaa,找到一个最长的子序列bbb,存在m(m>1)m(m>1)m(m>1)使bi mod m=bj mod mb_i~mod~m=b_j~mod~mbi mod m=bj mod&nbs.原创 2021-08-31 17:33:57 · 176 阅读 · 0 评论 -
P2414 [NOI2011] 阿狸的打字机(AC自动机,fail树)
[P2414 [NOI2011] 阿狸的打字机](https://www.luogu.com.cn/problem/P2414)题意:思路:解释一些地方代码P2414 [NOI2011] 阿狸的打字机题意:在一串长字符串中,可以构建出多个字符串,n组询问,问第x个字符串在第y个字符串中出现的次数。思路:先把每个字符串插入到trie树上(注意插入的方法)再对每个询问按照y进行归类,相同的y则放到同一个数组中,方便得到答案。再求出每个节点的fail,建出一棵fail树,用dfs找出fail树的d.原创 2021-08-31 16:07:15 · 137 阅读 · 0 评论 -
2021牛客暑期多校训练营2——Product of GCDs
Product of GCDs问题:求给定的多重集合的 所有长度为k的子集 的gcdgcdgcd的 乘积。mx=max{multiple_set}ans=∏i=1mxikiki表示在集合中的长度为k且gcd为i的子集的个数。先求出i的倍数个数num,再求出(numk),有因为其中包含gcd为2i的集合,所以要减到这些集合产生的贡献。(容斥一下)\begin{aligned}mx&=max\{multiple\_set\}\\ans&=\prod_{i=1}^{mx}i^{k_i}\原创 2021-08-29 15:49:31 · 135 阅读 · 0 评论 -
P6217 简单数论题
题意:给出一个长度为 n 的序列 a,q次询问 ∏i=lrlcm(ai,x)\prod\limits_{i=l}^r \operatorname{lcm}(a_i,x)i=l∏rlcm(ai,x) 的值。答案对 109+710 ^ 9 + 7109+7取模。思路:∏i=lrlcm(ai,x)=∏i=lraixgcd(ai,x)=∏i=lraix∏i=lrgcd(ai,x)\begin{aligned}&\prod_{{i=l}}^rlcm(a_i,x)\\=&\prod.原创 2021-08-29 15:15:55 · 291 阅读 · 0 评论 -
P3768简单的数学题(莫比乌斯,欧拉函数,杜教筛)
P3768简单的数学题解法一:推式子部分杜教筛部分:解法二:推式子部分杜教筛部分:P3768简单的数学题解法一:推式子部分∑i=1n∑j=1nijgcd(i,j)∑i=1ni∑j=1nj∑d∣i,d∣jd[gcd(i,j)=d]∑d=1nd3sumi=1ndi∑j=1ndj[gcd(i,j)=1]∑d=1nd3∑i=1ndi∑j=1ndj∑x∣gcd(i,j)μ(x)∑d=1nd3∑x=1ndx2μ(x)∑i=1ndxi∑j=1ndxj∑d=1nd3∑x=1ndx2μ(x)(⌊ndx⌋(1+⌊nd.原创 2021-07-13 23:51:52 · 140 阅读 · 1 评论 -
C. Need for Pink Slips
C. Need for Pink Slips问题:一个游戏,给出C,M,PC,M,PC,M,P三个事件,每个事件的概率是c,m,pc,m,pc,m,p,当出现事件PPP的时候,游戏结束。在每一轮游戏过程中c,m,pc,m,pc,m,p都会根据规则发生变化。问游戏进行多少轮的期望。规则:给定一个小数vvv。(c,m,p)=(0.2,0.1,0.7)(c,m,p)=(0.2,0.1,0.7)(c,m,p)=(0.2,0.1,0.7), v=0.1v=0.1v=0.1, 在发生事件C后,因为c>v原创 2021-07-08 21:27:09 · 635 阅读 · 3 评论 -
E. Number Challenge(清晰地推式子)
E. Number Challenge问题:∑i=1a∑j=1b∑k=1cd(ijk)\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)∑i=1a∑j=1b∑k=1cd(ijk),d(n)d(n)d(n)表示n的因子个数。推式子:∑i=1a∑j=1b∑k=1cd(ijk)∑i=1a∑j=1b∑k=1c∑x∣i∑y∣j∑z∣k[gcd(x,y)=1][gcd(y,z)=1][gcd(x,z)=1]∑x=1a∑y=1b∑z=1c∑i=1a∑j=1b∑k=1c∑x∣原创 2021-05-19 23:31:53 · 173 阅读 · 0 评论 -
Happy 2004(代码+积性函数扩展)
Happy_2004题意:思路(详细解释在扩展):CodeCodeCode:扩展(因子和,积性函数)nnn的全部因子之和是:积性函数σ\sigmaσHappy_2004题意:求2004k2004^k2004k的全部因子的和,对292929取模思路(详细解释在扩展):积性函数,等比数列求和CodeCodeCode:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e3+.原创 2021-05-11 21:58:48 · 396 阅读 · 0 评论 -
原根(模板+证明)
原根定义:原根判定定理原根的个数原根的存在定理题目:原根定义:设m∈N∗m\in\mathbb{N^*}m∈N∗,a∈Za\in\mathbb{Z}a∈Z.若(a,m)=1(a,m)=1(a,m)=1,且δm(a)=ϕ(m)\delta_m(a)=\phi(m)δm(a)=ϕ(m),则称aaa为模mmm的原根(注:a,ma,ma,m互质).原根判定定理若ggg是模mmm的一个原根,则对于ϕ(m)\phi(m)ϕ(m)的任何大于111且不为自身的因数ppp,都有gϕ(m)p≡1(mod .原创 2021-05-11 00:13:40 · 1592 阅读 · 2 评论 -
F. Lunar New Year and a Recursive Sequence(矩阵快速幂+BSGS)
F. Lunar New Year and a Recursive Sequence题意:给出f1=f2=⋯=fk−1=1f_1=f_2=\cdots=f_{k-1}=1f1=f2=⋯=fk−1=1和b1,b2⋯bkb_1,b_2\cdots b_kb1,b2⋯bk,还有递推方程fi=fi−1b1fi−2b2⋯fi−kbkf_i=f_{i-1}^{b_1}f_{i-2}^{b_2}\cdots f_{i-k}^{b_k}\\fi=fi−1b1fi−2b2⋯fi−kbk问原创 2021-05-08 20:59:09 · 1387 阅读 · 2 评论 -
2020 ICPC Universidad Nacional de Colombia Programming Contest---A
A. Approach题意:给出444个点,A,B,C,DA,B,C,DA,B,C,D,两个人a,ba,ba,b,a从AAA到BBB,b从CCC到DDD,他们两个速度相同,问他们相距最近的距离大小(注:当某一个人到达终点时,他会停留在终点,而另一个人仍然会继续前进)思路:猜测:距离的他们两点的距离是一个关于时间的凹函数,然后就是三分去查找。注意细节:当一个人已经到达终点时,可以肯定当前距离函数仍然是一个凹函数或者一个单调递增的函数,所以我们要再用一次三分,来找到当前段的最小值,再和上一段进行比较。原创 2021-05-07 11:37:40 · 217 阅读 · 0 评论 -
2020 ICPC Universidad Nacional de Colombia Programming Contest---D
D.Dice题意:思路:Code:D.Dice题意:给定nnn个色子,每个色子有kkk个面,每个面都有一个数字,数字模mmm为000的面出现的概率为000,剩下的面出现的的概率相等,每个面在模mmm下,只有mmm中情况,我们可以算出一个色子的mmm个概率。思路:设aia_iai表示111个色子丢出的面模mmm是iii的概率。设bib_ibi表示111个色子丢出的面模mmm是iii的概率。则:{b0=a0∗a0+a1∗am−1+a2∗am−2...am−1∗a1b1=a0∗a1+a1∗a.原创 2021-05-06 21:29:54 · 154 阅读 · 0 评论 -
[#716]D. Cut and Stick(莫队,思维)
D. Cut and Stick题意:给出一个长度为n的序列,m个询问。对于每个询问,我们要将询问序列按要求划分成多个序列,使每个序列都满足条划分序列的方法:从序列中选取子序列来组成新的区间条件:设序列长度为lenlenlen, 序列中每种元素的个数不能超过⌈lend⌉\lceil\frac {len}d\rceil⌈dlen⌉。思路:我们设在序列中的出现次数最多的是xxx次,如果⌈lend⌉≤x\lceil\frac {len}d\rceil\le x⌈dlen⌉≤x。最优的解法就是2∗x原创 2021-04-21 20:08:10 · 252 阅读 · 1 评论 -
Codeforces Round #716 (Div. 2)(A,B,C,D)
Codeforces_Round_#716(Div.2)A.Perfectly_ImperfectArrayB.AND_0,Sum_BigC.Product_1_Modulo_NCodeforces_Round_#716(Div.2)A.Perfectly_ImperfectArray题意:给出一个序列,问是否存在一个子序列连乘不是完全平方数。思路:如果在序列中存在一个非完全平方数,那么一定存在子序列连乘不是完全平方数。我们就可以对序列的每个数质因子分解,看每个质因子的次数是不是偶数,如果存在不.原创 2021-04-20 15:10:40 · 188 阅读 · 0 评论 -
D. Fox And Jumping(dp,裴蜀定理)
D. Fox And Jumping题意:在一个无限长的纸条上,给出n个卡片,每个卡片都有有两个属性l,c。我们可以花费c得到这个卡片,就能够用这张卡片来向左或者向右移动l的距离,问最小的代价使可以到达枝条上的全部点。思路:我们可以把纸条想象成坐标轴,起始位置为0,这样我们花费cic_ici得到卡片iii,就相当于能够写作0+∑i=1kxi×li(k未知,xi为一个常数)0+\sum_{i=1}^kx_i\times l_i(k未知,x_i为一个常数)0+∑i=1kxi×li(k未知,xi为一原创 2021-02-03 11:51:18 · 519 阅读 · 1 评论 -
三分查找(模板)
三分查找P3382 【模板】三分法思路:根据二分的思路,我们要逼近中间的值,就要确定是leftleftleft还是rightrightright向中间趋近。所以我们设置两个中间值lmlmlm,rmrmrm,分别为leftleftleft和rightrightright的下一步趋近值。这样我们比较一下lmlmlm,rmrmrm的多项式值,确定下一步的leftleftleft和rightrightright,重复,直到退出循环找到答案。凸函数#include<bits/stdc++.h>原创 2021-02-02 21:04:31 · 342 阅读 · 0 评论 -
Count a * b(欧拉函数,唯一分解定理)
Count a * b题意:有ttt组输入,每组输入入一个数n(n≤109)n(n\leq 10^9)n(n≤109),求g(n)=∑m∣nf(m)g(n) = \sum_{m|n}f(m)g(n)=∑m∣nf(m),f(m)=∑i=0m−1∑j=0m−1[i×j%m≠0]f(m)=\sum_{i=0}^{m-1}\sum_{j=0}^{m-1}[i\times j \%m \neq 0]f(m)=∑i=0m−1∑j=0m−1[i×j%m=0]。推式子:f(m)=∑i=0m−1∑j=0m−1原创 2021-01-24 22:09:46 · 412 阅读 · 0 评论 -
C. Array Destruction(思维,multiset)
C. Array Destruction题意:给出一个数列,有2n2n2n个数,问是否存在一个xxx,使ai+aj=x(i!=j)a_i+a_j=x(i!=j)ai+aj=x(i!=j)。我们再将x=max(ai,aj)x=max(a_i,a_j)x=max(ai,aj),之后重复前一个操作,每个数只能用一次,问是否存在一个数xxx,使全部的数都被选到,如果存在输出选择顺序。思路:最大值肯定是第一个被选的值之一,(简单证明:如果第一次选的是第二大的值,那最大的值就一定选不上了。)然后,我们再枚举原创 2021-01-24 19:29:20 · 247 阅读 · 0 评论 -
反素数
反素数定义对于正整数x,其约数的个数记作g(x)g(x)g(x)。例如 g(1)=1g(1)=1g(1)=1、g(6)=4g(6)=4g(6)=4。如果某个正整数xxx满足:对任意正整数i(0<i<x)i(0<i<x)i(0<i<x),有g(x)>g(i)g(x)>g(i)g(x)>g(i),那么 称xxx为反素数。感性理解,素数是只有1和本身两个约数,而反素数就是约数个数最多的数(并且在约数相同的情况下更小的那个数),所以反素数是对原创 2021-01-22 21:23:00 · 356 阅读 · 0 评论 -
Laptop(思维,二维偏序)
Laptop题意:n个物品,每个物品两个属性ai,bia_i,b_iai,bi,问有多少个物品j,满足∃\exists∃物品i (i≠j)i~(i\neq j)i (i=j)使ai≥aj,bi≥bja_i\geq a_j, b_i\geq b_jai≥aj,bi≥bj思路:先对其中一个属性a进行从大到小排序,再枚举每一个物品,设定一个最大值mxmxmx用来存放枚举过程中bbb的最大值,如果当前物品的bbb小于mxmxmx,ans++。简单证明:在枚举过程中,ai≥a原创 2021-01-20 23:32:49 · 791 阅读 · 0 评论 -
Goffi and GCD(欧拉函数 及其 性质)
Goffi and GCD题意:因为gcd(n−i,n),gcd(n−j,n)gcd(n-i,n),gcd(n-j,n)gcd(n−i,n),gcd(n−j,n)都是n的因子(且不为n)所以乘起来不会超过n2n^2n2所以等价于求推式子∑i=1n∑j=1n[gcd(n−i,n)gcd(n−j,n)=n]∑i=1n∑j=1n∑x∣n∑y∣n[xy=n][gcd(n−i,n)=x][gcd(n−j,n)=y]∑x∣n∑y∣n[xy=n]∑i=1n[gcd(i,n)=x]∑j=1n[gcd(j,n)=原创 2020-12-24 23:22:49 · 224 阅读 · 1 评论 -
P2303 [SDOI2012] Longge 的问题(欧拉函数,推式子)
P2303 [SDOI2012] Longge 的问题题意:求推式子∑i=1ngcd(i,n)∑d∣nd∑i=1n[gcd(i,n)=d]∑d∣nd∑i=1nd[gcd(i,nd)=1]∑d∣ndϕ(nd)\sum_{i=1}^ngcd(i,n)\\\sum_{d|n}d\sum_{i=1}^n[gcd(i,n)=d]\\\sum_{d|n}d\sum_{i=1}^{\frac{n}{d}}[gcd(i,\frac{n}{d})=1]\\\sum_{d|n}d\phi(\frac{n}{d})\原创 2020-12-15 23:40:26 · 1455 阅读 · 3 评论 -
SP5971 LCMSUM - LCM Sum(欧拉函数,公式推导)
SP5971 LCMSUM - LCM Sum题意:求推式子∑i=1nlcm(i,n)∑i=1ningcd(i,n)n∑i=1nigcd(i,n)n∑d∣n∑i=1nid[gcd(i,n)=d]n∑d∣n∑i=1ndi[gcd(i,nd)=1]n∑d∣n(ϕ(d)+[d=1])×d2\sum_{i=1}^nlcm(i,n)\\\sum_{i=1}^n\frac {in}{gcd(i,n)}\\n\sum_{i = 1} ^{n} \frac{i}{gcd(i, n)}\\n\sum_{d \mi原创 2020-12-12 23:52:06 · 1324 阅读 · 4 评论 -
[SDOI2008]仪仗队(欧拉函数或莫比乌斯反演)
[SDOI2008]仪仗队题意:设左下方是坐标(0,0)(0,0)(0,0),求(0,0)0,0)0,0)处能够看到的人数。每个人对应一个坐标(x,y)(x,y)(x,y),只要gcd(x,y)=1gcd(x, y)=1gcd(x,y)=1就被(0,0)(0,0)(0,0)能看到(令gcd(0,1)=1gcd(0,1)=1gcd(0,1)=1,和ϕ(1)=1对应\phi(1)=1对应ϕ(1)=1对应)。欧拉函数思路:我们只看其中的一半x,另一半和它对称,然后就得到式子x=∑x=1n∑y=1x[gc原创 2020-12-11 21:13:05 · 1307 阅读 · 7 评论 -
模(进制转换结论,扩展欧几里得性质)
模题意:给定四个正整数a,b,c,ka,b,c,ka,b,c,k,回答是否存在一个正整数nnn,使得a∗na*na∗n在kkk进制表示下的各位的数值之和模bbb为ccc。先给出一个结论:一个数十进制数xxx化成kkk进制数yyy,那yyy的各个位数加的和sumsumsum起来一定是x+(1−k)∗tx+(1-k)*tx+(1−k)∗t简单证明:x<kx < kx<k,那y=xy = xy=x假设x>=kx >= kx>=k1.x=k,y=(10)k,sum原创 2020-09-29 18:52:18 · 470 阅读 · 0 评论 -
P2512 [HAOI2008]糖果传递(环形“均分纸牌“可链化,前缀和数组)
那么原问题变成了求 X1 的值使得上述求和最小,上述求和可以看作是求点到直线的距离。先将 S 数组从小到大排序。如果 n 为奇数,那么 X1=Sn/2+1如果 n 为偶数,那么 X1∈[Sn/2,Sn/2+1]可以发现,不论 n 为奇数还是偶数,X1 都可以取到S 数组中的某个值使得求和最小,因此存在某个 Xi=X1−Si=0,即有两个人之间没有纸牌传递,因此这种解法实际上证明了环形均分纸牌问题的可链化。原创 2020-09-16 21:16:03 · 860 阅读 · 0 评论 -
P1031 均分纸牌(思维,贪心)
P1031 均分纸牌题意:有nnn堆纸牌,第iii堆纸牌有AiA_iAi张。一次操作中,第一堆只可以给第二堆任意张,第nnn堆只可以给第n−1n-1n−1堆任意张,其他堆iii,可以给第i−1i-1i−1或者i+1i+1i+1堆任意张。问最少的操作次数使每堆纸牌数量都相同。思路:第一堆只能由第二堆给出或得到,使第一堆等于平均值aveaveave。我们可以假设第一堆不等于aveaveave,那么第二堆要通过一次操作使第一堆等于平均值。操作之后A2A_2A2可能是正值,也可能是负值。在这里负值只原创 2020-09-16 20:07:14 · 346 阅读 · 0 评论 -
P1269 信号放大器
P1269 信号放大器题意:给出一个树形结构,1号为根节点,每个节点都能接收和发射信号。每条边有一个消耗,若到达某个节点时信号值为负,则可以在它的父节点处放置一个信号放大器,使它的父节点发出的信号值等于根节点发出的信号值。问如果可以使所有节点都接收到信号,需要的最少的信号放大器。否则输出""思路:先FaFaFa数组存下各个子节点到nownownow节点的距离,再遍历到根节点,再往上找以nownownow节点为子树的深度,用disdisdis数组存起来,。返回到nownownow节点时,如果dis[no原创 2020-09-13 22:30:01 · 530 阅读 · 0 评论