zl程序教程

Codeforces 459E

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

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

    A. Difference Operations原题链接Origional Link思想:代码#include <bits/stdc++.h> using namespace std; const int N = 1e6 + 3; int a[N]; void solve(){ int n; cin >> n; for(int i = 1

    日期 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 – 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 Global Round 23(A~C)

    Codeforces Global Round 23(A~C)

    A. MaxminaOrigional Link题目大意:给定长度为 n 只包含 0,1 的序列 a,和一个整数 k,保证 (2\le k\le n\le 50)。不限次数进行如下操作: 将连续且相邻的两个元素变为较小的一个。 将连续的 k 个区间的元素变为区间内元素最大的哪一个。 求给出的序列是否可以变为只包含 1 的序列。思想:签到题。保证 (2\le k\le n\le 50) 即保证了

    日期 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 750A New Year and Hurry

    CodeForces 750A New Year and Hurry

    #include<bits/stdc++.h> using namespace std; int main() { int n, k, i, sum; while(~scanf("%d%d",&n, &k)) { sum = k; for(i = 0; i <= n; 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     
  • 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 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 - 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 C. Diverse Permutation(构造)

    codeforces C. Diverse Permutation(构造)

    题意:1...n 的全排列中 p1, p2, p3....pn中,找到至少有k个|p1-p2| , |p2-p3|, ...|pn-1 - pn| 互不相同的元素! 思路: 保证相邻的两个数的差值的绝对值为单调递减序列..... 如果够k个了,最后将没有访问到的元素直接添加到末尾! #include iostream #include cstdio #include cstring

    日期 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 C. Vanya and Scales

    codeforces C. Vanya and Scales

    Vanya has a scales for weighing loads and weights of masses w0, w1, w2, ..., w100 grams where w is some integer not less than 2(exactly one weight of each nominal value). Vanya wonders whether he can

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

    Codeforces Round #323 (Div. 2) C.GCD Table

    The GCD table G of size n × n for an array of positive integers a of length n is defined by formula Let us remind you that the greatest common divisor (GCD) of two positive integers x and y is the gr

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array

    【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array

    题目链接 链接 翻译 给你 \(2n\) 个数字, 每个数字各不相同,如果 \(a[i]\) 存在的话,那么 \(-a[i]\) 也会存在于这个数组中。 定义 \(d_i\) 为 \(a_i\) 和所有数字的差的绝对值之和。 现在告诉你 \(d_i\),让你还原出来原始的 \(a_i\)。 题解 我们假设 \(a_1,a_2,a_3...a_n\) 分别为最大的 \(n\) 个正数(会对应 \(

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

    【Codeforces Round #696 (Div. 2) D】Cleaning

    题目链接 链接 翻译 你可以选择相邻的两个都不为空的石头堆,从两个石头堆(每个石头堆中有多个石头)中都拿去一个石头。 你可以进行无数次这样的操作,问你最终能否将所有的石头都拿走。 石头是在一条直线上排列的,从左到右标号为 \(1\) 到 \(n\)。 题解 会发现第一个位置上的石头,只能通过拿堆 \(1\) 和堆 \(2\) 全部拿走。 然后堆 \(1\) 全拿完之后,堆 \(2\) 变成新的堆

    日期 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) B】Hills And Valleys

    【Codeforces Round #695 (Div. 2) B】Hills And Valleys

    题目链接 链接 翻译 让你统计"山"和“山谷"的总个数,要求这个总个数最少。 你可以修改某个数字为任意整数。 题解 首先对于初始的数组,统计一下山加上山谷的总数\(cnt\) 然后枚举第 \(i\) 个位置,现在要对第 \(i\) 个位置上的数字进行修改了。 最直接的想法就是,改了 \(a[i]\) 之后,哪些位置上的山顶和山谷的值会受到影响呢? 只有 \(i-1,i,i+1\) 这 \(3\)

    日期 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) B】Fair Division

    【Codeforces Round #693 (Div. 3) B】Fair Division

    题目链接 链接 翻译 translation 题解 先用 \(2\) 然后用 \(1\) 补来凑n/2就行。 挺显然的一个贪心。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson mid+1,r,rt*2+1 #define LL long long using namespace std; const

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

    【Codeforces Round #694 (Div. 1) C】Strange Shuffle

    题目链接 链接 翻译 每个人初始都有 \(k\) 张牌,每个单位时间,他们会对自己手上的牌进行如下操作: 每个人都把自己一半的下取整到左边,上取整到右边相邻的一个人。 但是有一个人搞特殊,他不会给左边相邻的人,而是将自己全部的牌都给右边相邻的人。 每过一个单位时间,你都可以询问某个位置上的人有多少张牌,问你如何确定询问及位置,以找到那个特殊的人。 询问的次数不能超过一千次。 题解 模拟一下会发现

    日期 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 #694 (Div. 2) C】Strange Birthday Party

    【Codeforces Round #694 (Div. 2) C】Strange Birthday Party

    题目链接 链接 翻译 translation 题解 \(k\) 值比较大(对应的礼物贵)的优先安排小的 \(c\),这样节省的 \(money\) 最多。 因为每个 \(k\) 都是要满足的,当然尽可能用便宜点的搪塞最好。。塑料友情。。 代码 #include <bits/stdc++.h> #define LL long long using namespace std; con

    日期 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 1461E】Water Level

    【Codeforces 1461E】Water Level

    题目链接 链接 翻译 让你维持水位始终在 [l,r] 这个范围 且,你每天开始的时候可以加(所以也可以不加) \(y\) 升水,然后结束的时候会少掉 \(x\) 升水(固定)。 一开始水位是 \(k\),问你这样(水位始终在 [l,r] 这个区间) 能否持续 \(t\) 天。 题解 如果 \(y<x\),那么显然水位只会一直下降。则一开始如果水位大于 \(r-y\) 那么就每次只减少 \(

    日期 2023-06-12 10:48:40     
  • 【Codeforces 1338B】Edge Weight Assignment

    【Codeforces 1338B】Edge Weight Assignment

    题目链接 链接 翻译 让你构造一棵树,使得任意两个叶子节点之间路径的权重异或和为 \(0\)。 并且,树中用到的边的权重的不同值的个数设为 \(f\),让你求 \(f\) 的最大值和最小值。 题解 最小值不会超过 \(3\)。 可以转化为是在给每个点标记数字,然后边上的权重就是连接它们两个点上标的数字的异或值。 这样的话,只要保证任意两个叶子节点上标记的数字是一样的,就能满足题意了。 我们可以把

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #643 (Div. 2) C】Count Triangles

    【Codeforces Round #643 (Div. 2) C】Count Triangles

    题目链接 链接 翻译 让你找 \(3\) 条边 \(x,y,z\), 要求 \(A\le x\le B\le y\le C\le z\le D\) 且 \(x,y,z\) 能组成三角形。 问你这样的 \(x,y,z\) 的个数。 题解 对于最后选出来的边,我们只需要关注 \(x+y\) 是不是大于 \(z\) 就好了 (两边之和大于第三边)。 因为 \(x<=y<=z\) 且 \(x

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #629 (Div. 3) D】Carousel

    【Codeforces Round #629 (Div. 3) D】Carousel

    题目链接 链接 翻译 给你两种重量的物品, 重量分别为 \(S\) 和 \(W\), 数量分别为 \(cntS\) 和 \(cntW\)。 有两个人,第一个人的背包容量为 \(p\), 第二个人的背包容量为 \(f\)。要让这两个人拿走的物品的数量之和最大。 问你最大可能为多少。 即有数量限制,物品价值都相同为 \(1\) 要求最大数量。 题解 中间枚举的量记得要还原 代码 #include

    日期 2023-06-12 10:48:40     
  • 【Codeforces Round #639 (Div. 2) C】Hilbert's Hotel

    【Codeforces Round #639 (Div. 2) C】Hilbert's Hotel

    题目链接 点我呀 翻译 一个旅馆内有无限多个房间, 每个房间里面都只有一个人住。 这些房间和所有的整数对应。 现在对于房间号为整数 \(k\) 的房间, 里面的人要移动到 \(k + a_{k\ mod\ n}\) 号房间。 给你 \(n\), 和整型数组 \(a\) , 问你移动之后, 是不是每个人都只占据一个房间, 以及每个房间是不是都没有空。 题解 这题就特别明显, 是想让你把 \(0\)

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