zl程序教程

codeforces 833A

  • 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 #806 (Div. 4)(A~F)

    Codeforces Round #806 (Div. 4)(A~F)

    A. YES or YES?题目大意Origional Link判断是否是yes顺序的不区分大小写的字符串是则输出YES,否则输出NO思想读入暴力判断代码#include <bits/stdc++.h> using namespace std; void solve(){ string s; cin >> s; bool flag = 1;

    日期 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 Gym 101002 H. Jewel Thief 题解

    Codeforces Gym 101002 H. Jewel Thief 题解

    Codeforces Gym 101002 H. Jewel Thief 题解 题意类似于一个背包,空间为M,有N个物品,第i个物品体积为w_i,价值为c_i,求价值之和的最大值。 其中,1 \leq n \leq 100000,1\leq m \leq 300000,1\leq w_i \leq 3,1\leq c_i \leq {10}^9思路首先注意到n,m非常大,所以普通的背包是肯定不行

    日期 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 Round #674 (Div. 3)(A~D)

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

    A. Floor NumberOrigional Link题目大意:给定目标房间编号 n 及一层楼住户数量 x。第一层楼只有 2 个住户,求目标房间所在楼层。思想:签到题。n\le2 时在第一层。n\gt 2 时: 若 x 可以整除 n-2,则在 \frac{n-2}{m} + 1 层; 反之在 \frac{n-2}{m} + 2 层。 代码:#include <iostream>

    日期 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     
  • Codeforces 456 A. Laptops「建议收藏」

    Codeforces 456 A. Laptops「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。 Jetbrains全系列IDE稳定放心使用 题目链接:http://codeforces.com/contest/456/problem/A 提示:一共有n个数,而且a[i],

    日期 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     
  • 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     
  • Codeforces 842B Gleb And Pizza几何,水详解编程语言

    Codeforces 842B Gleb And Pizza几何,水详解编程语言

    Gleb ordered pizza home. When the courier delivered the pizza, he was very upset, because several pieces of sausage lay on the crust, and he does not really like the crust. The pizza is a circle of r

    日期 2023-06-12 10:48:40     
  • CodeForces - 557B Pasha and Tea (模拟)

    CodeForces - 557B Pasha and Tea (模拟)

    CodeForces - 557B Pasha and Tea Submit Status DescriptionPasha decided to invite his friends to a tea party. For that occasion, he has a large teapot with the capacity of w mi

    日期 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 MUH and Cube Walls

    codeforces MUH and Cube Walls

    题意:给定两个序列a ,b, 如果在a中存在一段连续的序列使得a[i]-b[0]==k, a[i+1]-b[1]==k.... a[i+n-1]-b[n-1]==k就说b串在a串中出现过!最后输出b串在a串中出现几次!思路: KMP变形!如何转换成KMP求解呢?举一个例子说明一下:a: 5 10 8 10 11 9 11 12 10 15b: 4 2 4 5 3根据题意 a中的 10 8 10 1

    日期 2023-06-12 10:48:40     
  • Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)

    Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)

    题意:计算f(n) = -1 + 2 -3 +4.....+(-1)^n *n的值 思路:偶数和 - 奇数和(或者用等差数列计算化简得到结果) #include algorithm #define N 10000 using namespace std; int main(){ long long n; cin n; if(n%2==0) cout n/2 endl

    日期 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 #320 (Div. 2) C. A Problem about Polyline(数学) D. "Or" Game(暴力,数学)

    codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. "Or" Game(暴力,数学)

    解题思路:就是求数 n 对应的二进制数中有多少个 1 解题思路:对(strength, i, j)按照strength进行递减排序,从左到右进行遍历,用b[N]表示i和j有关系!  如果发现b[i]或者b[j]有关系了,则跳过这个strength, 否则b[i] =j, b[j] = i #include iostream #include algorithm #incl

    日期 2023-06-12 10:48:40     
  • Codeforces Round #326 (Div. 2) B. Pasha and Phone C. Duff and Weight Lifting

    Codeforces Round #326 (Div. 2) B. Pasha and Phone C. Duff and Weight Lifting

    B. Pasha and Phone Pasha has recently bought a new phone jPager and started adding his friends phone numbers there. Each phone number consists of exactly n digits. Also Pasha has a number k and two

    日期 2023-06-12 10:48:40     
  • 【Educational Codeforces Round 103 (Rated for Div. 2) C】Longest Simple Cycle

    【Educational Codeforces Round 103 (Rated for Div. 2) C】Longest Simple Cycle

    题目链接 链接 翻译 每一列的头尾会和前一列的第 \(a_i\) 和第 \(a_j\) 个节点相连,第 \(i\) 列有 \(c_i\) 个节点。 问你能形成的一个最长的环是多少。 题解 设 \(pre_i\) 表示从第 \(i\) 列的 两端 开始,往前延伸,形成的最长的环。 则 \(pre_i\) 有两种更新方式,第一种在第 \(i-1\) 列往两边开花,第二种,在第 \(i-1\) 列闭合

    日期 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 #695 (Div. 2) D】Sum of Paths

    【Codeforces Round #695 (Div. 2) D】Sum of Paths

    题目链接 链接 翻译 可以从数组中任意一个位置开始出发走一条路径,每一步可以往走到相邻的一个格子(左或右)。但是不能超过边界。 问你所有不同的长度为 \(k+1\) 的路径的和是多少。 然后要支持更新操作实时回答这个路径和。 题解 \(n\) 和 \(k\) 都只有 \(5000\),其实是比较容易往 \(DP\) 上面想的。 实时更新的话,只要能够知道最后每个数字在答案中的贡献 \(cnt_i

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #695 (Div. 2) A】Wizard of Orz

    【Codeforces Round #695 (Div. 2) A】Wizard of Orz

    题目链接 链接 翻译 translation 题解 98901234.... 写题解的时候才发现题目名字里有个ORZ 代码 /* */ #include <bits/stdc++.h> using namespace std; int main(){ #ifdef LOCAL_DEFINE freopen("in.txt", "r", stdin); #endif

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) E】Correct Placement

    【Codeforces Round #693 (Div. 3) E】Correct Placement

    题目链接 链接 翻译 translation 题解 线段树,只要维护一个以 \(w\) 为下标,然后线段树上的值维护的是这个范围的 \(w\) 里面, 最小的 \(h\) 所在的位置即可。 涉及到一些离散化的操作,所以代码看起来比较丑陋。 然后查询的时候,如果想找小于 \(w\) 和 \(h\) 的,就先在 \(1..w-1\) 这个范围里找最小的 \(h_{min}\) 然后用这个 \(h_{

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #693 (Div. 3) F】New Year's Puzzle

    【Codeforces Round #693 (Div. 3) F】New Year's Puzzle

    题目链接 链接 翻译 给你一个 \(2*n\) 的方格,让你用 \(1*2\) 的骨牌,横着或者竖着放,铺满整个方格。 其中有一些被黑色方块阻挡,不能放骨牌。问你可不可行。 题解 首先考虑 整个方格 第一列,如果两行都是空的。 那么考虑第二列的几种情况: 第二列也是空的,那么第一列放竖的没问题。 第二列有一个方格被堵住了,那么第一列只能竖着放了,不然铺不满(注意这是第一列,它之前没有列了) 第

    日期 2023-06-12 10:48:40     
  • 1800*2【Codeforces Round #612 (Div. 1) A】Garland

    1800*2【Codeforces Round #612 (Div. 1) A】Garland

    题目链接 链接 翻译 给你一个排列,其中有一些位置上的数字被remove了,让你全都放回去。 定义相邻两个数字如果奇偶性不同,\(diff\) 值加 \(1\)。 求数字全都放回去之后 \(diff\) 的值的最小值。 题解 设 \(dp[i][j][k]\) 表示前 \(i\) 个数字放了 \(j\) 个偶数,最后一个数字奇偶性为 \(k\) 的最小 \(diff\)。 之所以可以只用偶数的个

    日期 2023-06-12 10:48:40     
  • 【Educational Codeforces Round 97 (Rated for Div. 2) C】Chef Monocarp

    【Educational Codeforces Round 97 (Rated for Div. 2) C】Chef Monocarp

    题目链接 链接 翻译 给每道菜确定一个取出时间,每道菜对不愉快程度的贡献为它取出的时间和最佳取出时间差的绝对值。 要求最后不愉快程度之和最小,求这个最小值。 题解 动态规划,一个很显然的贪心是,我们把 \(t\) 进行排序,然后依次从小到大地顺序分配每个菜是最好的。 也即时间小的菜分配对应的时刻也应该要靠前。 最后用到的时刻一定不会超过 \(2*n\)。所以定义 \(f[i][j]\) 表示前

    日期 2023-06-12 10:48:40     
  • 【Codeforces 1327E】Count The Blocks

    【Codeforces 1327E】Count The Blocks

    题目链接 链接 翻译 让你统计\(0\) ~ \(10^n-1\) 中长度为 \(len\) 的连续块的个数 题解 考虑长度为 \(len\) 的连续块的位置,有两种情况 ①连续块紧接着开头或结尾,即xxxx........ 以及 .......xxxx 这两种 ②连续块在中间 ....xxxx..... 对于第①种情况,开头或结尾的连续块有 \(10\) 种可能,而和这个连续块紧接着的一个

    日期 2023-06-12 10:48:40     
  • 【Codeforces 448D】Multiplication Table

    【Codeforces 448D】Multiplication Table

    题目链接 链接 翻译 给你一个 \(n*m\) 的乘法表,让你找出其中第 \(k\) 小的数字。(重复的话算多次) 比如 \(2*2\) 的乘法表中,有 1,2,2,4 这 \(4\) 个数字,则第 \(3\) 小的数字是 \(3\),第 \(4\) 小的数字是 \(4\)。 题解 二分答案。 如果二分的 \(x\) 是最后的答案,那么应该满足整个乘法表中 严格 比它小的数字的个数小于等于 \(

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #644 (Div. 3) F】Spy-string

    【Codeforces Round #644 (Div. 3) F】Spy-string

    题目链接 链接 翻译 让你构造一个和 \(n\) 个字符串都只有【最多一个地方】不同的字符串 题解 只考虑第一个字符串,假设第 \(i\) 个位置不同,那么每个位置都有 \(26\) 种可能(其中一种是和本身一样) 看看得到的字符串是不是符合要求的就好。 代码 #include <iostream> #include <string> using namespace st

    日期 2023-06-12 10:48:40     
  • 【Codeforces Global Round 9 D】Replace by MEX

    【Codeforces Global Round 9 D】Replace by MEX

    题目链接 点我呀 翻译 给你一个长度为 \(n\) 的数组。 你可以将某个位置上的数字换成 \(mex\) 最多 \(2*n\) 次。 让你把这个数组变成不下降的,这个数组中的数字都在 \(0..n\) 之间。 \(mex\) 表示没有出现过的最小的整数。 题解 构造题,我们可以把目标改为让最后的数组变成 \(0,1,2\cdots n-1\)。 可以这样做,一开始肯定有很多位置 \(a[i]!

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #639 (Div. 2) A】Puzzle Pieces

    【Codeforces Round #639 (Div. 2) A】Puzzle Pieces

    题目链接 点我呀 翻译 给你一个拼图, 问你能不能把它拼成一个 \(n \times m\) 的方格图。 题解 会发现, 只有 \(2 \times 2\) 的能拼出来, 或者是一个长条形的。 往下或者往右一直延伸这样, 然后宽度或高度为1。 代码 #include<bits/stdc++.h> #define ll long long #define rei(x) scanf("%

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