CodeForces 558D
Educational Codeforces Round 132 (Rated for Div. 2) A·B·C
A. Three Doors原题链接Origional Link思想从拿到钥匙的门开始,用其得到的钥匙遍历对应的门直到钥匙为0,若共打开了3道门,则为YES代码#include <bits/stdc++.h> using namespace std; const int N = 10; void solve(){ int a[N]; int n; ci
日期 2023-06-12 10:48:40Codeforces 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:40Codeforces 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:40Codeforces 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-1194B
https://codeforces.com/contest/1194/problem/B这道题其实是一道思维题,主要是要把情况考虑清楚,然后在代码上把逻辑理顺,就能做出来。题目给出了cross的定义:所在行和列都全部被涂黑。这道题分析可以知道,要对每行和每列的白色格子进行计数,然后相加。然后,很自然的可以想到,如果行列相交的位置是白色格子,那么这个格子就被计数了两次,就需要在总数上减一。如果白色
日期 2023-06-12 10:48:40Codeforces Round #784 (Div. 4)(A~F)
A. Division?Origional Link题目大意按照分数区间输出对应的难度。思想:签到题。代码:#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <sstream&
日期 2023-06-12 10:48:40Codeforces 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:40CodeForces - 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:40A. 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:40A. 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:40codeforces Gargari and Bishops(很好的暴力)
/* 题意:给你一个n*n的格子,每一个格子都有一个数值!将两只bishops放在某一个格子上, 每一个bishop可以攻击对角线上的格子(主对角线和者斜对角线),然后会获得格子上的 数值(只能获取一次)。要求输出两个bishops获取的最大值以及它们所在的位置! 思路:直接暴力!....不错的暴力题目! 首先我们都知道每一条主对角线上的横纵坐标的和相同,每一条副对角线上的横
日期 2023-06-12 10:48:40codeforces 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:40codeforces Restore Cube(暴力枚举)
/* 题意:给出立方体的每个顶点的坐标(是由源坐标三个数某几个数被交换之后得到的!), 问是否可以还原出一个立方体的坐标,注意这一句话: The numbers in the i-th output line must be a permutation of the numbers in i-th input line! 我们只要对输入的每一行数据进行枚举每一个排列, 然后检查时
日期 2023-06-12 10:48:40codeforces B. Friends and Presents(二分+容斥)
题意:从1....v这些数中找到c1个数不能被x整除,c2个数不能被y整除!并且这c1个数和这c2个数没有相同的!给定c1, c2, x, y, 求最小的v的值!思路: 二分+容斥,二分找到v的值,那么s1 = v/x是能被x整除的个数s2 = v/y是能被y整除数的个数,s3 = v/lcm(x, y)是能被x,y的最小公倍数整除的个数! 那么 v-s1 =c1 v-s2 =c2 v-s3 =c
日期 2023-06-12 10:48:40codeforces C. Bits(数学题+或运算)
题意:给定一个区间,求区间中的一个数,这个数表示成二进制的时候,数字1的个数最多!如果有多个这样的数字,输出最小的那个!思路:对左区间的这个数lx的二进制 从右往左将0变成1,直到lx的值大于右区间的值rx! #include iostream #include cstring #include cstdio #include algorithm using namespac
日期 2023-06-12 10:48:40codeforces 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【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【Educational Codeforces Round 102 D】Program
题目链接 链接 翻译 给你一个长度为 \(n\) 的序列,每个字符为加法或减法操作,这些操作按顺序执行,且初始的时候你的数字为 \(0\)。 现在给你 \(m\) 个询问,这些询问用区间 (l,r) 描述,表示从 \(l\) 开始到 \(r\) 结束这一段的操作被忽略了。 然后剩下的操作还是按顺序执行的话,问你最后在数字变化的过程中,会出现多少个不同的数字。 题解 首先不同的数字个数,就是在变换
日期 2023-06-12 10:48:40【Codeforces Round #695 (Div. 2) E】Distinctive Roots in a Tree
题目链接 链接 翻译 给你一棵树,树上的每一个节点都带有权值。 让你统计这样的点 \(x\) 的个数,使得以 \(x\) 为根的时候,所有以 \(x\) 开始,以某个节点结束的路径中每个节点的权值 都是唯一的,即每个权值都只出现了一次。 称这样的 \(x\) 为 \(distinctive\ root\), 统计所给的树中这样的 \(distinctive\ root\) 的个数。 题解 如图
日期 2023-06-12 10:48:40【Codeforces Round #695 (Div. 2) D】Sum of Paths
题目链接 链接 翻译 可以从数组中任意一个位置开始出发走一条路径,每一步可以往走到相邻的一个格子(左或右)。但是不能超过边界。 问你所有不同的长度为 \(k+1\) 的路径的和是多少。 然后要支持更新操作实时回答这个路径和。 题解 \(n\) 和 \(k\) 都只有 \(5000\),其实是比较容易往 \(DP\) 上面想的。 实时更新的话,只要能够知道最后每个数字在答案中的贡献 \(cnt_i
日期 2023-06-12 10:48:401800*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【Codeforces 1327E】Count The Blocks
题目链接 链接 翻译 让你统计\(0\) ~ \(10^n-1\) 中长度为 \(len\) 的连续块的个数 题解 考虑长度为 \(len\) 的连续块的位置,有两种情况 ①连续块紧接着开头或结尾,即xxxx........ 以及 .......xxxx 这两种 ②连续块在中间 ....xxxx..... 对于第①种情况,开头或结尾的连续块有 \(10\) 种可能,而和这个连续块紧接着的一个
日期 2023-06-12 10:48:40【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
题目链接 链接 翻译 给你两种重量的物品, 重量分别为 \(S\) 和 \(W\), 数量分别为 \(cntS\) 和 \(cntW\)。 有两个人,第一个人的背包容量为 \(p\), 第二个人的背包容量为 \(f\)。要让这两个人拿走的物品的数量之和最大。 问你最大可能为多少。 即有数量限制,物品价值都相同为 \(1\) 要求最大数量。 题解 中间枚举的量记得要还原 代码 #include
日期 2023-06-12 10:48:40【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【Codeforces Round #635 (Div. 2) C】Linova and Kingdom
题目链接 点我呀 翻译 给你一棵树, 让你在这棵树上选择恰好k个点, 这k个点是发展工业的, 然后其余的n - k个点发展旅游业。 但是根节点(约定1号节点是根节点)例外, 它可以发展旅游业也可以发展工业(不过后面会发现这条件没啥用。。)。 假设x是你选出来的k个点中的一个, 对于所有的x, 你需要求出每个节点x到根节点1会经过的 发展旅游业 的节点个数\(cnt_i\), 然后对cnt求和,
日期 2023-06-12 10:48:40【Educational Codeforces Round 88 (Rated for Div. 2) E】Modular Stability
题目链接 请不要点我! 题目大意 你给一个整数n一个整数k 让你找这么一个数组a[1],a[2],...,a[k] 其中1<=a[1]<a[2]<....<a[k]<=n 使得对于任意一个非负整数x,让它按照 任意顺序 依次去和这个数组的每个元素取模(x和第1个元素取模后,结果再和第2个元素取模...)。 得到的取模的结果都要相同。 请你求出符合要求的数组a的个数。
日期 2023-06-12 10:48:40【Educational Codeforces Round 88 (Rated for Div. 2) D】Yet Another Yet Another Task
题目链接 点我吧 题目大意 给你一个长度为n的序列,先手先选择一个区间[L,R], 这个区间里面的数字, 让后手选择一个删掉。 然后计算剩余的R-L个数字的和sum(如果R-L等于0,认为和是0)。 后手总是想让这个sum的值比较低,所以它总是会选择最大的那个数字删掉。 现在让你帮先手选择一个区间,使得这个区间在被后手删掉一个数字之后, 剩余的和最大。 题解 这道题, 如果没有删掉一个数字这个操
日期 2023-06-12 10:48:40【Educational Codeforces Round 88 (Rated for Div. 2) B】New Theatre Square
题目链接 【题目翻译】 让你用1*1和1*2的砖块铺满空白的格子。 1*2的砖块只能横着放。 用11的砖块代价是x,12的代价则是y. 问你需要的最小代价。 【题解】 看到1*2只能横着放。问题就简单多了。 若x2<=y则直接放11的就行了。 否则1*2可以放久放这个。(单位格子价格更低); 【代码】 /* 显然有的性质: 如果x*2<=y
日期 2023-06-12 10:48:40【Educational Codeforces Round 88 (Rated for Div. 2) A】Berland Poker
题目链接 【题目翻译】 n张牌要平均分配给k个人(k是n的因子) 然后有m张鬼牌,剩下n-m张是普通牌。 让你分配普通牌和鬼牌。 使得最后的得分最高。 最后的得分=鬼牌数最多的那个人的鬼牌减去其他k-1人中鬼牌最多的那个人的鬼牌数。(最后答案可能为0) 【题解】 显然尽量先让一个人拿满k张鬼牌(不足就算了) 然后剩下的m-min(k,m)张鬼牌全都平均地分配给其余k-1个人就好了。
日期 2023-06-12 10:48:40【Codeforces Round #645 (Div. 2) D】The Best Vacation
题目链接 【题目翻译】 给你n个月,每个月天数有d[i]天 你需要选取连续的几天(可以跨月、跨年) 然后你得到的收益为这些天是在所在月份的第几天对应的数字的和。 比如你选了第2月(设有30天)的第29、30天以及3月的第1,2天。 那么你的收益就是29+30+1+2 然后现在的问题是,让你从n个月份当中选出来连续的x天,要求他们的收益总和最大。 【题解】 首先需要明确一点,你选出来
日期 2023-06-12 10:48:40