Codeforces #103 A
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:40Edu Codeforces Round 115 (Div. 2)
#NameAComputer Game 2 s, 256 MBx8894BGroups 4 s, 256 MBx5935CDelete Two Elements 2 s, 256 MBx4419DTraining Session 2 s, 256 MBx1583EStaircases 2 s, 256 MBx442FRBS3 s, 512 MBx159GThe Sum of Good Number
日期 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 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:40CodeForces 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:40B. 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:40A. Be Positive 【 Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 】
Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题意:给你 n 个数,找个 d 让这个 n 个数除以 d 之后大于零的数至少是 n / 2 个。&:分类一下,输出 1 或者 -1 或者 0 就可以了。#include<bits/stdc++.h> using namespace std; int a[2
日期 2023-06-12 10:48:40Codeforces 842A Kirill And The Game暴力,水详解编程语言
Kirill plays a new computer game. He came to the potion store where he can buy any potion. Each potion is characterized by two integers — amount of experience and cost. The efficiency of a potion
日期 2023-06-12 10:48:40CodeForces - 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:40codeforces——Little Pony and Sort by Shift
/* 题目大意:给你一个序列,不断地将最后边的数值移动到最前边,问最少经过多少次可以变成一个单调递增的序列! 如果不能则输出-1。 如果该序列按照不断从后向前移动排序成功,那么该序列要么只有一个单调递增的序列, 或者有两段单调递增的序列(1..k 和 k+1..n)并且 (k+1...n)中的最大值num[n] =(1...k)中的最小值num[1] #include io
日期 2023-06-12 10:48:40codeforces B. Design Tutorial: Learn from Life
题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少需要多少的时间.... 这是一道神题啊,自己的思路不知不觉的就按照注解的思路走了,想着用优先队列模拟一下,可能还是没有模拟好吧,一直哇!但是同学的优先队列模拟过了! 没想到是greedy算法简单的几行就解决了! #include iostream #i
日期 2023-06-12 10:48:40codeforces Fedor and New Game
LeetCode 289. Game of Life 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡; 如果死细胞周围正好有三个活细胞,则该位置死细胞复活; LeetCode 390. Elimination Game 给定一个
日期 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. 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:40codeforces 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: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【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) 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) 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) C】Three Bags
题目链接 链接 翻译 给你 \(3\) 个多重集,第 \(i\) 个集合有 \(n[i]\) 个数字。 从两个不同集合中分别取出数字 \(x\) 和 \(y\),则从两个集合中分别删去 \(x\) 和 \(y\), 然后在第 \(1\) 个集合中(取出 \(x\) 的那个集合) 加入元素 \(x-y\)。 要求最后只有一个集合中剩下一个数字,问你这个数字最大可以是多少。 题解 思维 把操作 \(
日期 2023-06-12 10:48:40【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 #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 #693 (Div. 3) F】New Year's Puzzle
题目链接 链接 翻译 给你一个 \(2*n\) 的方格,让你用 \(1*2\) 的骨牌,横着或者竖着放,铺满整个方格。 其中有一些被黑色方块阻挡,不能放骨牌。问你可不可行。 题解 首先考虑 整个方格 第一列,如果两行都是空的。 那么考虑第二列的几种情况: 第二列也是空的,那么第一列放竖的没问题。 第二列有一个方格被堵住了,那么第一列只能竖着放了,不然铺不满(注意这是第一列,它之前没有列了) 第
日期 2023-06-12 10:48:40【Educational Codeforces Round 97 (Rated for Div. 2) C】Chef Monocarp
题目链接 链接 翻译 给每道菜确定一个取出时间,每道菜对不愉快程度的贡献为它取出的时间和最佳取出时间差的绝对值。 要求最后不愉快程度之和最小,求这个最小值。 题解 动态规划,一个很显然的贪心是,我们把 \(t\) 进行排序,然后依次从小到大地顺序分配每个菜是最好的。 也即时间小的菜分配对应的时刻也应该要靠前。 最后用到的时刻一定不会超过 \(2*n\)。所以定义 \(f[i][j]\) 表示前
日期 2023-06-12 10:48:40【Codeforces Round #223 (Div. 1) C】Sereja and Brackets
题目链接 链接 翻译 给你一个区间,让你输出其中合法的括号序列(不要求连续)的最长的长度。 题解 线段树 在节点上维护当前这个区间内左右括号已经匹配了的对数 \(mb[rt]\) 另外维护两个用于合并的数组 \(lb[rt]\) 表示还没有用来匹配的左括号的数目,\(rb[rt]\) 则是右括号。 \(trick\) 就是,在合并的时候因为区间已经足够小了。两个子区间不考虑有匹配的情况了,现在只
日期 2023-06-12 10:48:40【Codeforces 1453D】Checkpoints
题目链接 链接 翻译 每个阶段都有 \(\frac{1}{2}\) 的几率失败,失败了会回到上一个存档点。 想让玩家的期望尝试次数为 \(k\),问你能否设计出一个不超过 \(2000\) 级台阶的策略,满足这个要求。 题解 如果只有一个 \(1\) 的话,那么期望尝试次数为 \(2\)。假设后面出现了一个 \(0\),即 10,那么到达第 \(2\) 层且通过了第二层(能够到达第三层了)的期望
日期 2023-06-12 10:48:40【Codeforces 1338B】Edge Weight Assignment
题目链接 链接 翻译 让你构造一棵树,使得任意两个叶子节点之间路径的权重异或和为 \(0\)。 并且,树中用到的边的权重的不同值的个数设为 \(f\),让你求 \(f\) 的最大值和最小值。 题解 最小值不会超过 \(3\)。 可以转化为是在给每个点标记数字,然后边上的权重就是连接它们两个点上标的数字的异或值。 这样的话,只要保证任意两个叶子节点上标记的数字是一样的,就能满足题意了。 我们可以把
日期 2023-06-12 10:48:40【Codeforces Global Round 7 D2】Prefix-Suffix Palindrome (Hard version)
题目链接 链接 翻译 让你选择字符串 \(s\) 的一个前缀和一个后缀(可以为空), 然后拼成一个字符串。 要求这个字符串得是一个回文串,且这个字符串的长度不能超过原串 \(s\) 的前提下最长。 输出这个字符串, hard 版本,长度小于等于 \(10^6\) 题解 接上文 现在的问题相当于要求从头部开始的连续回文串长 还是 以最后一个字符结尾的回文串长。 分开两步做,开头连续的情况,则将 \
日期 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 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
题目链接 链接 翻译 让你构造一个和 \(n\) 个字符串都只有【最多一个地方】不同的字符串 题解 只考虑第一个字符串,假设第 \(i\) 个位置不同,那么每个位置都有 \(26\) 种可能(其中一种是和本身一样) 看看得到的字符串是不是符合要求的就好。 代码 #include <iostream> #include <string> using namespace st
日期 2023-06-12 10:48:40