zl程序教程

CodeForces 548C

  • Codeforces Round #807 (Div 2.) A·B·C

    Codeforces Round #807 (Div 2.) A·B·C

    A. Mark the Photographer原题链接Original Link思想将所有人的身高存入数组 ,用sort排序利用双指针,以n为分界线,判断是否满足条件前n个人的身高+ x小于等于后n个人的身高代码#include <bits/stdc++.h> using namespace std; const int N=1e6+3; int a[N]; int main(

    日期 2023-06-12 10:48:40     
  • Codeforces Round #754 (Div. 2) C-E

    Codeforces Round #754 (Div. 2) C-E

    #NameAA.M. Deviationx14701BReverse Sortx11165CDominant Characterx8864DTreelabelingx1791EArray Equalizerx580FPalindORmex41C. Dominant Character(暴力+剪枝、思维)题意给你一个只含有’a’, b’, ‘c’ 的字符串,长度1e5内,让你寻找最短的子串满足:长度

    日期 2023-06-12 10:48:40     
  • Codeforces Round #825 (Div. 2) (A~C1)

    Codeforces Round #825 (Div. 2) (A~C1)

    A. Make A Equal to BOrigional Link题目大意:给定只含 0,1 的序列 a,b。对序列 a 不限次数执行如下操作: 将 a_i 变为 a_i - 1 。 将 a 按照任意顺序重新排列。 求最少几步可以得到和 b 相同的序列 a。思想: 思维题。分为两种情况讨论:不排序 a 直接操作和先排序 a 再操作的情况。 同时遍历一遍 a 和 b,记录 a[i] != b[

    日期 2023-06-12 10:48:40     
  • 【题解】codeforces-1194B

    【题解】codeforces-1194B

    https://codeforces.com/contest/1194/problem/B这道题其实是一道思维题,主要是要把情况考虑清楚,然后在代码上把逻辑理顺,就能做出来。题目给出了cross的定义:所在行和列都全部被涂黑。这道题分析可以知道,要对每行和每列的白色格子进行计数,然后相加。然后,很自然的可以想到,如果行列相交的位置是白色格子,那么这个格子就被计数了两次,就需要在总数上减一。如果白色

    日期 2023-06-12 10:48:40     
  • CodeForces – 1312D 组合数

    CodeForces – 1312D 组合数

    这题主要就是涉及到满足条件的组合数,思路:从m个数中选择n-1个不同的数。由于里面的元素只有一个重复,而且重复的元素不能是最大值,那么就要从剩下的n-2个数中选择出一个最大值,下标为i。对于剩下的n-3个数,选x个排在最大值的左侧,这样的话,总共的情况数就是C(n-1,m)*(n-2)*(2^(n-3))那么代码就很简单了。但是问题来了,这个组合数会很大,要模除一个数。然后由于同余线性方程组没有除

    日期 2023-06-12 10:48:40     
  • Educational Codeforces Round 137 (Rated for Div. 2)(A~E)

    Educational Codeforces Round 137 (Rated for Div. 2)(A~E)

    D和E在补了,在补了。。。A. PasswordOrigional Link题目大意:给定 n 个 0\sim 9 之间不能使用的数字,保证剩余的数大于 2。任意两个数子组合,每个数字可使用两次,组成一个四位密码。求在剩余的可选数字中,能组成的密码数量。思想:签到题。任意两个数字可组成的密码数量固定为 6。则总数量为剩余数字中的两两组合的数量乘 6。即设剩余的数的数量为 x = 10 - n,总密

    日期 2023-06-12 10:48:40     
  • Codeforces Round #828 (Div. 3) (A~D)

    Codeforces Round #828 (Div. 3) (A~D)

    A. Number ReplacementOrigional Link题目大意给定一个序列 a 和一个字符串 s。可以将相同的 a_i 替换为 s_i,若a_i 对应的替换规则唯一。求是否可以在满足上述条件下完成替换。思想:思维。当 s_i 所对应的 a_i 首次出现时建立对应规则。若 s_i 对应的 a_i 出现过且规则不同说明无法完成替换。代码:#include <iostream>

    日期 2023-06-12 10:48:40     
  • C. Polycarp Restores PermutationCodeforces Round #547 (Div. 3)

    C. Polycarp Restores PermutationCodeforces Round #547 (Div. 3)

    Codeforces Round #547 (Div. 3)复制 #include <bits/stdc++.h> #define ll long long using namespace std; int n,m; map<int,int> mp; ll pre[200005],s[200005],a[200005]; int main() { scanf(&qu

    日期 2023-06-12 10:48:40     
  • CodeForces - 999C  Alphabetic Removals

    CodeForces - 999C Alphabetic Removals

    C - Alphabetic RemovalsYou are given a string   consisting of   lowercase Latin letters. Polycarp wants to remove exactly   characters ( ) from the string  . Polycarp uses the following algorithm   t

    日期 2023-06-12 10:48:40     
  • CodeForces - 999B  Reversing Encryption

    CodeForces - 999B Reversing Encryption

    B - Reversing EncryptionA string  of length  can be encrypted by the following algorithm:iterate over all divisors of  in decreasing order (i.e. from  to ),for each divisor , reverse the substring  (i

    日期 2023-06-12 10:48:40     
  • A. Vasya and Book ( Codeforces   Educational Codeforces Round 55 )

    A. Vasya and Book ( Codeforces Educational Codeforces Round 55 )

    题意:当前在看书的第 x 页,每次可以向前或者向后翻 d 页,这个书一共 n 页,问能否用最小操作翻到第 y 页。 题解:三种情况:1、直接翻能到的一定最短。 2、先翻到第一页,然后往后翻,翻到第 y 页。3、先翻到第 n 页,然后往前翻,翻到第 y 页。#include<bits/stdc++.h> using namespace std; typedef long long l

    日期 2023-06-12 10:48:40     
  • A. Vova and Train ( Codeforces Round #515 (Div. 3) )

    A. Vova and Train ( Codeforces Round #515 (Div. 3) )

    题意:一条 L 长的路,一列车长在这条路的 l 到 r 之间,只有在 v 倍数时有灯,但是在 l 到 r 之间的灯是看不见的,问最大看见的灯的个数? 题解:L / v 表示总共的灯的个数, r / v 、( l - 1 ) / v 表示前 r 、( l - 1 ) 长的路有多少灯,减一下就可以了。 ( 难题补不上了,QAQ,写个水题,放松一下)#include <iostream>

    日期 2023-06-12 10:48:40     
  • B. Heaters ( Codeforces Round #515 (Div. 3) )

    B. Heaters ( Codeforces Round #515 (Div. 3) )

    题解:对于每个点 i 来说,从 j = i + r - 1 开始往前找,如果找到一个 a [ j ] 是 1 ,那么就把它选上,但是我们需要判断交界处,也就是如果前面选的那个可以让这个点变温暖,就不用再选多余的了。这样就记录一下前一个 last ,要满足 j > last。找到之后,就更新 i 的值,在 i + k 之间的都可以由选的这个点来温暖。#include <iostream

    日期 2023-06-12 10:48:40     
  • C. Prefixes and Suffixes ( Codeforces Round #527 (Div. 3) )

    C. Prefixes and Suffixes ( Codeforces Round #527 (Div. 3) )

    题意:给你一个 n 长度的字符串,给你 2n - 2 个子串,其中有 n - 1 个前缀和 n - 1 个后缀,输出一个合法的判断。题解: 找到 n - 1 长的子串一个是(假设第一个是)最长前缀,另一个是最长后缀。 判断假设是否正确,遍历所有子串,如果符合前缀 tot 加 1,如果 tot 不够 n - 1 或者我们假设的那个前缀从第二个开始不等于那个后缀的前 n - 2 个,也就是我们假设

    日期 2023-06-12 10:48:40     
  • CodeForces - 282A Bit++ (水)

    CodeForces - 282A Bit++ (水)

    CodeForces - 282A Bit++ Submit Status DescriptionThe classic programming language of Bitland is Bit++. This language is so peculiar and complicated.The language is that peculiar as it h

    日期 2023-06-12 10:48:40     
  • CodeForces 91A Newspaper Headline

    CodeForces 91A Newspaper Headline

    题目描述 A newspaper is published in Walrusland. Its heading is s 1 , it consists of lowercase Latin letters. Fangy the little walrus wants to buy several such newspapers, cut out their headings, glue

    日期 2023-06-12 10:48:40     
  • codeforces Gargari and Permutations(DAG+BFS)

    codeforces Gargari and Permutations(DAG+BFS)

    题意:求出多个全排列的lcs! 思路:因为是全排列,所以每一行的每一个数字都不会重复,所以如果有每一个全排列的数字 i 都在数字 j的前面,那么i, j建立一条有向边! 最后用bfs遍历整个图,求出源点到每一个点的距离,其中最大的距离就是最长的公共子序列的长度! #include iostream #include cstdio #include cstring #incl

    日期 2023-06-12 10:48:40     
  • codeforces——Little Pony and Expected Maximum

    codeforces——Little Pony and Expected Maximum

    所以最后的结果=sum((k/m)^n - ((k-1)/m)^n) (1 =k =m) 不要这样求(k^n/m^n)数据可能会很大! #include iostream #include cstdio #include cmath using namespace std; int main(){ int n, m; while(cin m n){ double

    日期 2023-06-12 10:48:40     
  • codeforces Fedor and New Game

    codeforces Fedor and New Game

    LeetCode 289. Game of Life 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡; 如果死细胞周围正好有三个活细胞,则该位置死细胞复活; LeetCode 390. Elimination Game 给定一个

    日期 2023-06-12 10:48:40     
  • codeforces A. Bayan Bus(简单模拟)

    codeforces A. Bayan Bus(简单模拟)

    [HDU 7136] Jumping Monkey | 并查集 | 逆向思维 Jumping Monkey Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 747 Accepted Submission(s): 360

    日期 2023-06-12 10:48:40     
  • codeforces B. Pasha and String(贪心)

    codeforces B. Pasha and String(贪心)

    题意:给定一个长度为len的字符序列,然后是n个整数,对于每一个整数ai,将字符序列区间为[ai,len-ai+1]进行反转。求出经过n次反转之后的序列! /* 思路1:将区间为偶数次的直接去掉!对剩下的区间进行反转。超时了,智商上的压制... #include iostream #include cstdio #include algorithm #include st

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #696 (Div. 2) C】Array Destruction

    【Codeforces Round #696 (Div. 2) C】Array Destruction

    题目链接 链接 翻译 让你一开始的时候选定一个 \(x\) 的值,然后从数组中找到两个数 \(a[i]\) 和 \(a[j]\),使得他们的和为 \(x\),然后从数组中移除掉这两个数字 \(a[i]\) 和 \(a[j]\)。 然后用 \(a[i]\) 和 \(a[j]\) 中的较大者代替 \(x\),重复上述移除过程,直到数组为空。 回答能否找到这样的 \(x\)。如果能找到,输出每次选择的

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) G】Moving to the Capital

    【Codeforces Round #693 (Div. 3) G】Moving to the Capital

    题目链接 链接 翻译 注意是有向图,不然这题读起来会觉得题目很奇怪。。 题解 bfs 求最短路 d[1..n],然后对于 \(d_i<d_j\) 的边连实线,否则连虚线。 就可以做 dp 了,对于实线 dp[x] = min(dp[x],dp[y]),对于虚线 dp[x] = min(dp[x],d[y]) 。 虚线只能走一次嘛。然后实线还能顺着往下走。妥妥的记忆化,当然不要忘了待在原地不

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) D】Even-Odd Game

    【Codeforces Round #693 (Div. 3) D】Even-Odd Game

    题目链接 链接 翻译 translation 题解 贪心,随便想想也能猜到,排序。然后哪一方最大的数字大(奇数和偶数),就抢对方的(对方的奇偶性数字大),或者拿自己的(自己的奇偶性大)。 这样,对于拿的那个人来说收益总是最大的。 不够了就随遇而安就行。。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) C】Long Jumps

    【Codeforces Round #693 (Div. 3) C】Long Jumps

    题目链接 链接 翻译 translation 题解 动规。 \(f[i] = f[i+a[i]]+a[i]\) 类似这样?...倒着推一下,注意边界就行。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson mid+1,r,rt*2+1 #define LL long long using namespac

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #694 (Div. 1) B】Strange Definition

    【Codeforces Round #694 (Div. 1) B】Strange Definition

    题目链接 链接 翻译 每秒钟会对原数组进行如下操作,对于每一个数组中的元素。找到整个数组中和它【相关】的数字,将这些数字全都乘起来 然后用来代替这个元素。 【相关】表示两个数字的最小公倍数和最大公因数的商是一个完全平方数。 然后让你回答 \(q\) 个询问,表示 \(w\) 秒钟之后,数组中每个元素【相关】的数字的个数的最大值。 题解 得知道 \(lcm(x,y)=\frac{x*y}{gcd(

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) A】Cards for Friends

    【Codeforces Round #693 (Div. 3) A】Cards for Friends

    题目链接 链接 翻译 题解 看到除2就知道是个暴力题了。 模拟就行,log复杂度除不了几下的。 然后每次分成的碎片个数乘 \(2\) 也很快就会超过 \(n\) 了,为了防止爆 \(int\) 中间就停下来吧。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson mid+1,r,rt*2+1 #define

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #223 (Div. 1) C】Sereja and Brackets

    【Codeforces Round #223 (Div. 1) C】Sereja and Brackets

    题目链接 链接 翻译 给你一个区间,让你输出其中合法的括号序列(不要求连续)的最长的长度。 题解 线段树 在节点上维护当前这个区间内左右括号已经匹配了的对数 \(mb[rt]\) 另外维护两个用于合并的数组 \(lb[rt]\) 表示还没有用来匹配的左括号的数目,\(rb[rt]\) 则是右括号。 \(trick\) 就是,在合并的时候因为区间已经足够小了。两个子区间不考虑有匹配的情况了,现在只

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #650 (Div. 3) D】Task On The Board

    【Codeforces Round #650 (Div. 3) D】Task On The Board

    题目链接 链接 翻译 将 \(s\) 删掉 \(|s|-m\) 个字符之后,剩下的 \(m\) 个字符任意排序得到 \(t\)。根据 \(t\) 上每个字符的字典序的大小关系生成了一个序列 \(b\)。 现在告诉你 \(s\) 以及 \(m\) 和 \(b\) 让你输出某个可能的 \(t\)。 题解 \(trick\) 就是每次找到 \(b\) 的值为 \(0\) 的位置,其他不为 \(0\)

    日期 2023-06-12 10:48:40     
  • 【Codeforces Global Round 7 D1】Prefix-Suffix Palindrome (Easy version)

    【Codeforces Global Round 7 D1】Prefix-Suffix Palindrome (Easy version)

    题目链接 链接 翻译 让你选择字符串 \(s\) 的一个前缀和一个后缀(可以为空), 然后拼成一个字符串。 要求这个字符串得是一个回文串,且这个字符串的长度不能超过原串 \(s\) 的前提下最长。 输出这个字符串, easy 版本,长度小于等于 \(5000\) 题解 考虑最后的答案 \(t\),是由 \(s\) 的一个前缀 \(pres\) 和一个后缀 \(afters\) 构成。 又因为

    日期 2023-06-12 10:48:40     
  • 【Codeforces Alpha Round #20 C】Dijkstra?

    【Codeforces Alpha Round #20 C】Dijkstra?

    题目链接 链接 翻译 让你求出 \(1\) 到 \(n\) 的最短路,打印路径。 题解 最短路堆优化。 记得 \(dis\) 数组开 \(long long\), 不然溢出会导致 \(TLE\) 问题 >_< 代码 \(1\) 是 \(multiset\) 写法。 代码 \(2\) 是 \(priority\ queue\) 写法。 代码1 #include <bits/std

    日期 2023-06-12 10:48:40