![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日cf计划
此部分是本人为了督促自己每天打代码而写的每日题解
yeah17981
作者很懒,正在睡大觉……
展开
-
cf F. Kazaee(离散化随机hashing+树状数组)
我们重复哈希t次,直到错误概率约等于0,概率约为1/2^t,t取30(我不知道为啥,但是这个概率看起来脸不黑应该是能过的)如果k为2的话,如果本来答案是错误的,此时有奇数和偶数两种情况,概率相同,偶数会被判定为对的,因此错误概率为1/2。题解:如果符合条件的话,则区间l-r的和是k的倍数,当数被离散化后此结论同样成立。2 l r k:查询l到r内是否存在每种数的个数都是k的倍数。我们想办法排除掉本来是错误但是被我们判定为正确的情况的情况。如果区间和为k的倍数的时候,有可能是对的也可能是错的。原创 2022-10-21 01:31:47 · 290 阅读 · 0 评论 -
Dytechlab Cup 2022
假设现在中心点为(x,y),其右上各一个点,如果将中心点横向转移,则可以通过右→左,上→左下,中→左,此时中心点转移到(x-2,y)同理可进行延伸,求出可行解图。C:棋盘上有三个棋子,呈L的形状,每颗棋子可以跳过其他棋子(横,纵,斜,类比孔明棋,但是不拿走),求有没有棋子能到目标点。首先要确定的是,L的中心点延伸出来的十字的点是一定能到达的,因此我们需要找出中心点能转移的所有位置,其横纵轴都是能到达的。贪心,每次从a选到第min(k,25)个字母,遇到0直接输出并跳出即可,都不为零就输出下一个字母。原创 2022-10-08 01:43:01 · 600 阅读 · 2 评论 -
E. Till I Collapse
一些躺床上开始写题解的日常(上一次的审核不通过了已经QAQ)开始从辅助转为主攻(原因复杂)所以很多算法要学着自己写一遍了线段树之前知道大致流程,但是没自己写过主席树同理之前二维数点的时候就想学着要学了(但是我现在看到二维数点满脑子还是树状数组QAQ)终于是学了于是刷了一题题意:给一个序列1-n,求k为1-n时满足被分隔成ans个子串中不同元素个数小于等于k,求ans思路是维护区间不重复元素个数,线段树的板子中我们知道sum就是前缀区间原创 2022-09-20 01:42:46 · 198 阅读 · 0 评论 -
数位dp专题之Beautiful numbers
首先找到1-9的最小公倍数为2520,它的48个因子分别对应的是1-9不同组合下的最小公倍数。dfs(pos,presum,prelcm,flag) 分别为 当前位数,当前余数,当前lcm,是否达到上限。再者,因为需要进行状态的转移,在记录数字铁定会爆的情况下我们选择记录对2520取模后的结果,通过对余数的处理进行转移。看这数字肯定不能暴力捏,但是结果和位数存在关系,考虑枚举位数,并且记录此时是否达到上限。设dp[j][i][k],当前位为j,余数为i,最小公倍数ak下的ans。我真的好讨厌写dfs啊。原创 2022-09-05 21:32:38 · 145 阅读 · 0 评论 -
Codeforces Round #817 (Div. 4)
C:给仨人,每人出n个长度为3的不相同的字符串,如果俩人有一样的串各加1分,仨人不加分,只有自己有加一分,求总分。字符串相当于三位26进制数,换算成10进制,直接排序,找相同值的个数。刚打完上面那句话网就上去了,过了,果然网站是需要吓一吓的,比赛的时候写着写着发现网卡了,正准备截图发群里说“大风车吱呀吱呀呀的转”,网好了,草。B:给俩字符串,有B和G和R,求蓝绿色盲看俩串是否一样,R标0,BG标1,看串是否一样。还有三分钟,感觉这个网不太支持我登上去看G题了,那就算了吧,快快结束,快快睡觉,QAQ。...原创 2022-08-31 01:05:11 · 386 阅读 · 0 评论 -
代码源#467路径计数2
路径计数2 - 题目 - Daimayuan Online Judge上次做这题还是4个月前,直到四个月后的今天才解出来了……翻了下当时的代码,里面还有一些气急败坏的成分……本来想的是dp每个格子,但是复杂度是n^2,明显T了考虑枚举dp每个障碍物i(并加一个障碍物n,n),到达此处的合法路径数f为总-非法,此时枚举在该障碍物内的障碍物j,非法路径数就会fj*i到j路径数结束日常操作:买一送一XOR Inverse - 题目 - Daimayuan Online Judge两个数对结果的贡献度取决于二原创 2022-07-05 22:28:19 · 316 阅读 · 0 评论 -
Codeforces Round #804 (Div. 2)
https://codeforces.com/contest/1699/problem我好困啊……上一次cf还是在上一次(印象中班主任上课我打题解)差点就只过一题了,爬了现在div2都干不动了吗迷迷糊糊的想题想到现在原创 2022-07-05 13:39:58 · 174 阅读 · 0 评论 -
Codeforces Round #797 (Div. 3)
关于有的脑子有病的人,怕丢脸就都没提交,结果最后一分钟脑子一缺全交上去,然后没交成功……原创 2022-06-08 12:24:54 · 234 阅读 · 0 评论 -
Codeforces Round #783 (Div. 2)
本来早上要补的,vp的时候玩了一会游戏然后没用然后了Dashboard - Codeforces Round #783 (Div. 2) - Codeforces下午上课补了,真的不写long long谁是狗,真的A:从1,1到n,m,不能连续走两格同一个方向,求最小步数先统一n小m大,从1,1走到n,n要n*2步,且最后一步往右,因此后面直接折叠往下走就ok需要特判#include<iostream>using namespace std;int main()原创 2022-04-20 23:12:50 · 221 阅读 · 0 评论 -
Codeforces Round #782 (Div. 2)
咕咕咕咕咕前段时间去打华为软挑了,所以停了一段时间的训练,嘤嘤嘤这场本来要打,然后十分钟写A写bug了,于是玩游戏去了……早上vp了一下,下课了就溜回去睡觉了,下午把c做了,d还没看,回头看一下Dashboard - Codeforces Round #782 (Div. 2) - CodeforcesA:经典插板法#include<bits/stdc++.h>using namespace std;int main(){ int _,n,r,b; cin&g原创 2022-04-18 15:05:28 · 2728 阅读 · 1 评论 -
Codeforces Round #780 (Div. 3)
div3卡c烦A:判断1的个数是不是0B:判断最大和第二大之间差是否为1D:(wa2)前缀和记录2和-2的个数、负数个数,答案区间一定是在俩相邻的0之间(令0和n+1也为0)对一个可能的答案区间,要么删前面k个要么删后面k个,如果负数个数为偶数则整个区间为可能答案,否则前往后和后往前遍历找到第一个负数,为可能区间但是我不知为啥wa了补题去了系统说缺少代码,那就放个d把...原创 2022-04-01 21:31:31 · 801 阅读 · 0 评论 -
CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes)
传送门:Dashboard - CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) - Codeforces之前定每日cf搞得压力有点大,就改成了两天一练了vp了一场,和rating没关打得可真开心,不过这场确实水还是要勇于交题,不要怂,不然就会出现上一场,结束就会A:找到最大的最小的俩数的位置B:设原来是a1,a2,a3,a4,a5,假设删除的顺序是从1到4a1,a2,a3,a4,a5→a2-a1,a3-a1,a4-a1,原创 2022-03-30 11:56:42 · 607 阅读 · 0 评论 -
Codeforces Round #779 (Div. 2)
颓废了一个月,开卷开卷(尽量每天vp一次比赛)Dashboard - Codeforces Round #779 (Div. 2) - CodeforcesA:00中间要插入俩1,010中间插入一个1,遍历,结束B:n为奇数,结果为0,n为偶数,奇数一定在偶数位,偶数一定在奇数位,求A(n/2,n/2)^2C:...原创 2022-03-28 10:09:51 · 571 阅读 · 0 评论 -
代码源#464数数
数数 - 题目 - Daimayuan Online Judge区间l-r中不大于h的点数可以考虑画一个坐标轴,所求变成矩形(l,h) (l,0)(r,h)(r,0)内的点的个数离线二维数点问题好像还有主席树的解法,算了咕了就不单独讲这题(讲a-b中大小为c-d的数)令s[i][j]表示(0,0)到(i,j)这个矩形内的点的个数,则我们所求的结果应该是s[b][d]-s[a][d]-s[b][c]+s[a][c]问题转化为求数组s,由于数据范围过大,二维的树状数组肯定是不太行原创 2022-03-05 10:28:00 · 278 阅读 · 0 评论 -
代码源#452序列操作
序列操作 - 题目 - Daimayuan Online Judge标记一下每个数最后一次进行操作1是什么时候,并找出此操作往后最大的2操作往后最大用后缀最大值求得#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5;int a[maxn],a1[maxn][2],a2[maxn];int main(){ std::ios_base::sync_with_stdio(false); cin.t原创 2022-03-03 09:19:39 · 285 阅读 · 0 评论 -
代码源#436子串的最大差
子串的最大差 - 题目 - Daimayuan Online Judge中文题不需要复述了吧最大差之和=最大数和-最小数和因此分别找出所有子串的最大值和最小值这里采用的是从找到每个值的贡献量来计算的以最大值为例,贡献量=前面比他小的个数*后面比他小的个数*自己此处使用的是单调栈结果写了半天没写出来,我是个废物#include<bits/stdc++.h>using namespace std;long long a[500005];long l原创 2022-03-01 15:33:07 · 313 阅读 · 0 评论 -
代码源#323. 最长因子链
最开始想了半天怎么从最长不下降组序列转到这里,后来发现没用必要搞那么麻烦,因为n比较小,直接用n方的dp写就行和最长不下降子序列比多了一个排序和比较元素变为看是否为因子就行了#include<iostream>#include<algorithm>using namespace std;int a[100005];int dp[100005];//dpi 当前最大因子链int main(){ long long n, m, num, i; cin >原创 2022-02-25 12:47:37 · 542 阅读 · 0 评论 -
Educational Codeforces Round 123 (Rated for Div. 2)
A:给6个字符串其中rgb和RGB各一个,分别代表钥匙和门,人从左往右走能不能走到尽头题解:模拟,然后wa了,然后发现是if的时候R写成B了B:构造序列,满足用到1-n的每个元素各一次且序列满足ai+ ai+1 !=ai+2(斐波那契)题解:以9和8为例8:8 1 / 7 2 / 6 3 / 5 4,两两一组,和为9,且大的数字在前,每组间隔的位置和为n(此时因为最大数n前面必为另外一组,和为n+1),头尾相连,相邻和为2*n+n/2,从中间切一刀,必然满足9:9/8 1 / 7 2 /原创 2022-02-25 00:24:28 · 271 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2)
Dashboard - Codeforces Round #772 (Div. 2) - CodeforcesA:给一个数组,任意次操作,每次选择两个不同的整数i,j(1≤i<j≤n) ,将ai替换为x,将aj替换为y。为了不破坏数组,必须保持ai | aj=x | y。求数组和最小题解:an的异或和B:给一个数组,最小次操作,每次可以修改一个数,使得这个数组不存在ai>ai-1且ai>ai+1(an和a1默认符合条件)题解:每次找到一个峰值(ai>ai-1且ai&g原创 2022-02-23 15:33:40 · 240 阅读 · 0 评论 -
supermarket
A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral number of time units starting from the moment the sale begins. Each product takes precisely one unit of tim原创 2022-01-16 22:02:26 · 344 阅读 · 0 评论 -
Junk-Mail Filter
最近在给新生上数据结构于是复习(预习)了一下并查集怎么有人给别人上课前才在学啊(去年学了,但是摸太久了忘了)给n个点m条操作操作M:认为a和b属于一个集合操作S:认为a不属于原来的集合求有多少个集合很明显是并查集但是多了个删除单点的操作设置虚拟节点若原本1,2,3属于一个集合,设置一个虚拟节点5,原本123都指向5,现在使1出集合,就将1指向6#include<bits/stdc++.h>using namespace std;const i原创 2022-01-16 21:54:11 · 290 阅读 · 0 评论 -
cf D. Not Quite Lee
传送门:Problem - D - Codeforces大意:给一个数组b,求子序列c是“good”个数,一个“good”的序列满足c1,c2,……,cn构造n个数字串,第i串有ci个数字,且为连续数字(like:-1,0,1,2),使得n个数字串中的数字的和为0第一步:如何判断一个序列是否满足条件。我们假定ci构造出来的数字串是以xi开头的,那么就是xi-(xi+ci-1),sumi(ci的数字串的和)=(2*xi+ci-1)*ci/2=(ci-1)*ci/2+xi*cisum1+sum2+…原创 2021-11-29 15:00:17 · 223 阅读 · 0 评论 -
Codeforces Round #754 (Div. 2) C
某个b这场的c题死都找不到bug,不然就绿了呜呜呜,对我到现在都没绿我可菜了结果发现是中间变量忘了清零了草给一串只有abc的字符串,求最短子串满足其中的a的数量大于b的数量首先子串开头结尾都为a,中间bc、cb、c、b、bbacc、ccabb、空结束#include <bits/stdc++.h>using namespace std;char s[1000006];int a1[1000006];int b1[1000006];int c1[1000006];原创 2021-11-16 09:23:32 · 131 阅读 · 0 评论 -
cf 102760
照例来个传送门Dashboard - 2020 KAIST 10th ICPC Mock Contest (XXI Open Cup. Grand Prix of Korea. Division 2) - Codeforces最近因为学业原因小咕了一段时间,接下来还会继续咕下去的!主要是每天想着还有博客没写很焦虑()日常更新系列就暂停了,但是训练和cf是不会停止的,水题解啊不归纳整理还是会继续的!今天训练过5补1,剩下的有空再说前几天cf还没补,有空一定B.Bombs In My原创 2021-11-15 01:08:30 · 370 阅读 · 0 评论 -
cf(M) Manhattan Mornings
Dashboard - 2017 Benelux Algorithm Programming Contest (BAPC 17) - Codeforces上篇博客前言+1#include <iostream>#include <algorithm>using namespace std;typedef pair<int, int> pii;const int N = 100010;pii p[N];int cnt;int dp[N], le原创 2021-11-10 22:59:31 · 96 阅读 · 0 评论 -
cf (K) King of the Waves
总所周知只要是我提供了思路就可以算是我过的题虽然但是代码不是我写的没事我脸皮厚拿来水一下应该没事吧给一个数字n然后是n*n的表格横i竖ji==j时为s[i][j]==xi赢j s[i][j]==1j赢i s[i][j]==0求一串队列a代表擂台赛赛顺序a[1]和a[2]比,赢的和a[3]比,以此类推问如何使比赛结束后的擂主是0构造题,令0在末位,按照输赢关系构造有向图,dfs,如果能遍历全局则有解,如果不能则无解#include <io原创 2021-11-10 22:09:00 · 214 阅读 · 0 评论 -
cf I - Irrational Division
https://codeforces.com/gym/101666严格论证还没想出来本来以为是判断奇偶关系就行了没想到在奇*偶上翻车wa了看了下数据感觉和大小有关就尝试了一下然后就过了代码#include<bits/stdc++.h>using namespace std;int main(){ int p,q; cin>>q>>p; if(q%2==0) { cout<<0; } else {原创 2021-11-09 09:45:26 · 199 阅读 · 0 评论 -
cf C.Collatz Conjecture
Dashboard - 2017 Benelux Algorithm Programming Contest (BAPC 17) - Codeforces大意:给n个数字,求区间gcd的情况数首先,设我们有三个数字 a b cgcd(a,b)==d,gcd(b,c)==e,gcd(d,e)==f因为gcd(b,b)==b,gcd(gcd(a,b),gcd(b,c))=gcd(a,b,c,d)=gcd(a,b,c)所以我们可以把所有的区间gcd写成一个倒三角形,下面的是上面俩的原创 2021-11-07 22:47:58 · 471 阅读 · 0 评论 -
P1280 尼克的任务
P1280 尼克的任务 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)继续水博客我看了眼题解中很多说不能从前往后什么的然后我不信然后我从后往前了()顺带复习了下pair就是了()完全可以从前往后,但是需要预处理出结束时间后排序,因为只是反向而已,所以从前往后可以从后往前必然可以从后往前,直接用起点就只用预处理开始时间的顺序(后来尝试了一下发现本题给的就是顺序排序,所以也不用预处理,但是反向肯定是俩都要处理的)f[i],i-n的空余时间预处理如果i点没原创 2021-11-06 22:51:17 · 106 阅读 · 0 评论 -
最长公共子序列转最大上升子序列(洛谷p1439)
又是一事无成的一天呢但是不得不水一篇,毕竟我是个有始有终的人(bushi)今天这题是几个礼拜前刷dp题刷到的明天找题号给两个1-n的全排列,求最长公共子序列我觉得题解通过把原序列中的其中一个转换成1-n的序列,另一个按照转化关系转成新序列,然后求新序列的最大上升子序列的方法很好玩例5231421453我们再加一行成523142145312345序列2和3形成新的转化关系1➡22➡13➡54➡35➡4序列1即为41523,最长上升子序原创 2021-11-03 23:59:36 · 162 阅读 · 0 评论 -
ICPC Central Russia Regional Contest (CRRC 18) D
Problem - D - Codeforces题目大意:给定k,求因子个数为k的最小数先上zpc的代码,感谢zpc,因为高精度的问题所以用的pyprimes = [0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]#质数表#inf = 10 ** 100000n = int(input())if n == 1 : print(1) exit(0)ans = infpower = [0]for i in rang原创 2021-11-02 23:36:59 · 267 阅读 · 0 评论 -
Codeforces Round #751 (Div. 1) A
此文为本人每日cf计划的系列篇,虽然但是可能很水有可能cf上有答案,反正仅作为一个打卡把传送门:Array Elimination题意:给定n个自然数,求出k的所有可能值,并且在这n个数中每次选出k个数,设x=ai1&ai2&ai3&……&aik,用这k个数减去x得到新的数,循环往复,直到这n个数都为0将所有的数转换成二进制k=1,每个数取与自己都是本身,减去本身为0,所以必然成立k=2,设a&b=x,只有a和b某一位都为1的时候x的这一位为1,其原创 2021-10-27 22:00:35 · 145 阅读 · 0 评论 -
每日cf计划
为了督促自己认真训练,防止摸鱼,决定每天至少做一题,且写一题题解,链接大概会放在这篇文章下面,希望大家能督促我?原创 2021-10-27 12:38:34 · 103 阅读 · 0 评论 -
Codeforces Global Round 16 题解
传送门:Dashboard - Codeforces Global Round 16 - Codeforces老鸽子终于记得更新了2333A. Median Maximization给n,m,构造出一个非负的递增数列,使其中的元素个数为n,元素和为m,求这些数列的中位数的最大值(此处中位数的定义为2k+1的第k+1个,2k的第k个)1 5➡52 5➡2 33 5➡0 2 32 1➡无解7 17➡0 0 0 4 4 4 54 14➡0 3 4 41 1000000000➡1000原创 2021-09-15 09:37:11 · 188 阅读 · 0 评论 -
cf1527 c Sequence Pair Weight
Problem - C - Codeforces题目大意:给定一串序列,求出它所有子序列的贡献度之和贡献度:某个字串{1,1,2,2,1}中相同数字的对数{i,j}(i<j,下同)即{1,2} {3,4} {1,5} {2,5},贡献度为4在t了十几发之后终于切了这题题解来了:找出一对{a[i],a[j]},则包含i……j的子串都能被这对{a[i],a[j]}所贡献,i前面有i-1个数字,j后面有n-j个数字,组合起来一共有i*(n-j+1)种情况是包含i……j的子串,这些字串原创 2021-05-21 21:39:09 · 431 阅读 · 1 评论 -
cf 1524A And Then There Were K
Problem - A - Codeforces给定n,找到最大的k,使n&(n-1)&(n-2)……&(k+1)&k=0这波,这波不暴力还愣着干啥呢然后超时了没错超时了就离谱那行,打表也行然后在我输出1-1000000000的结果后0 1 1 3 3 3 3 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15……个数分别是1 2 4 8 16……2^n数字分别原创 2021-05-21 09:30:36 · 136 阅读 · 0 评论 -
cf gym gym 101177 A - Anticlockwise Motion
题目链接:Attachments - 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16) - Codeforces题目大意:给ab两个数字和一个数字蛇形排列的表格(如图,最大为32001*32001),求ab的曼哈顿距离这么多重if打的我人都崩了思路:找到a,b坐标(包含a和b的最小表格n*n)求坐标的曼哈顿距离。#include<bits/stdc++.h>using namespace std;typ原创 2021-05-18 09:20:13 · 176 阅读 · 0 评论 -
cf H. Hamsters Training
题目链接:https://codeforces.com/group/uVAsoW2Jkj/contest/324248/problem/H题目大意:给数字n,用这n个数组成x个长度为n的不降序列序列(每个数使用次数为0-n),求x例:n=2 ,可以组成11,22,12玄学做法:列举出以1-n为结尾的序列的个数和总和,找数字之间的规律。n 1 2 3 4 5 ……m1 12 1+2=33 1+3+6 =104 1+4+10+20=355 1+5+15+35+70=126可以看出:1.加原创 2021-05-18 09:01:16 · 240 阅读 · 0 评论 -
cf gym 101177 J.Just Terraffic!
题目链接:Attachments - 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16) - Codeforces结束前十分钟过题,就一个字,刺激大致题意:道路上有有且只有没有拖车的四轮车(两轴)和一些带着一个两轮的拖车的四轮车(即存在三轴车和两轴车)在道路某处设立压力测试点,记录下有轮子经过的时刻,两个相邻时刻差值小于等于1000说明是同一辆车的两对轮子经过,两个相邻时刻差值大于等于2000说明是两辆车的两对轮子经过。给原创 2021-05-16 20:54:52 · 151 阅读 · 0 评论