CodeForces
NULL
moomhxy
你若是天才,我便是疯子
展开
-
Codeforces Round #620 E 1-Trees and Queries LCA
题目链接:https://codeforces.com/contest/1304/problem/E题意:给你一颗树,多次询问,每次给你一条连边x,y的机会,问你a到b是否存在k条边的路其中某些边可以重复任意次思路;不加边时只要k>= dis(a, b) 并且奇偶性相同就行,因为边可以重复走,考虑加边时带来的影响是多了dis(a, x) + dis(y, b) + 1, dis(a...原创 2020-04-30 20:59:22 · 274 阅读 · 1 评论 -
Codeforces Global Round 7 D2. Prefix-Suffix Palindrome (Hard version) 马拉车
题目链接:http://codeforces.com/contest/1326/problem/D2题意:给你一个字符串,找到该字符串的前缀s和后缀t连接,使得组成的字符串是回文串且最长思路:因为一个是前缀一个是后缀,所以我们先找到两端的可以组成回文串的字符,然后把剩下的中间的字符正反分别用马拉车求最长回文串且是端点开始的回文串,这样才满足要求。#include<bits/st...原创 2020-04-30 20:54:49 · 282 阅读 · 1 评论 -
Codeforces Round #636 (Div. 3) E. Weights Distributing BFS + 枚举
题目链接:http://codeforces.com/contest/1343/problem/E题意:给你一个图和边权集合让你分配每条边的权值使得a->b->c的路径和最小思路:枚举经过的中间点x,也就是a->x->b->x->c, 所以我们分别以a,b,c为起点跑最短路然后贪心着分配边权取最小值就行了#include<bits/stdc+...原创 2020-04-30 15:30:12 · 216 阅读 · 0 评论 -
Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 线段树区间修改 差分
题目链接:http://codeforces.com/contest/1343/problem/D题意:给你n个元素的序列,你可以每次将一个数变成[1, k]的值,现在要求a[i] + a[n - i + 1] = 定值问最少修改几个数就可以得到满足条件的序列思路:这个定值一定是某对和,所以我们考虑将a[i] + a[n - i + 1]的和改为某个值需要修改0,1还是2个数可以发现是在某...原创 2020-04-30 15:20:25 · 210 阅读 · 0 评论 -
Codeforces Round #637 (Div. 2) D. Nastya and Scoreboard 线性DP
题目链接:http://codeforces.com/contest/1341/problem/D题意:0~9的数字是由图中的木棒组成的,现在给你若干个显示屏,你可以恰好添加k个木棒问你能够组成的最大数字是多少思路:num[i][j]表示i加j个木棒能凑成的最大的数,我们先初始化num数组,f[i][j]表示前i个用了j个木棒的最大值我们从后往前考虑,这样保证前面的一定最大,从前往后考虑...原创 2020-04-29 20:58:53 · 240 阅读 · 0 评论 -
CodeForces 161D Distance in Tree 点分治
题目链接:http://codeforces.com/problemset/problem/161/D题意:给你一棵树,让你求有多少对点的距离等于k 点分治裸题,每次分治子树记录经过当前根节点的距离#include<bits/stdc++.h>using namespace std;typedef long long ll;#define fi first#def...原创 2020-04-29 14:52:47 · 199 阅读 · 0 评论 -
CodeForces 915E Physical Education Lessons 线段树动态开点
题目链接:https://codeforces.com/problemset/problem/915/E题意:q次操作,每次将一段区间置0或者置1,然后输出1~n中0的个数思路:由于n太大,所以我们考虑线段树动态开点,可以大大减少点的数量便于维护,这也是一道动态开点的模板题#include<bits/stdc++.h>using namespace std;typedef...原创 2020-04-08 18:56:39 · 217 阅读 · 0 评论 -
Codeforces Round #629 (Div. 3) D. Carousel 思维
题目链接:https://codeforces.com/contest/1328/problem/D题意:给你n个数字构成一个环,对每个数字进行染色,要求相邻的不同数字不能颜色相同,求最小颜色数思路:如果全部相同的话那么都是1就行,然后当n是偶数时,我们1,2,1,2这样涂是可以的。当n是奇数的时候如果a[n] == a[1] ,那么1212这样依然可以,不相等的话我们就找到相等的且相邻的两...原创 2020-03-27 17:43:11 · 244 阅读 · 0 评论 -
Codeforces Round #629 (Div. 3) E. Tree Queries LCA
题目链接:https://codeforces.com/contest/1328/problem/E题意:给你一棵树,多次询问每次给你一个集合,问你能否选一条链使得集合所有点到这条链的距离不大于1思路:每次将集合按照深度排序,然后我们用深度最大的点和其余点依次求LCA,然后判断深度差是否大于1如果大于就说明不满足。#include<bits/stdc++.h>using...原创 2020-03-27 17:32:11 · 314 阅读 · 0 评论 -
Codeforces Round #629 (Div. 3) F. Make k Equal 思维
题目链接:https://codeforces.com/contest/1328/problem/F题意:给你n个数字的序列,每次你可以将最大的数减一,最小的数加一,问最少多少次操作后有k个相等的数思路:例如对于a[i], 我们需要将前面的改成a[i] - 1, 将后面的改成a[i] + 1, 所以我们将数组排序后用map分别记录一下某个值第一次出现和最后一次出现的位置,然后On 遍历对于每...原创 2020-03-27 17:17:16 · 347 阅读 · 0 评论 -
Codeforces Round #619 (Div. 2) F. Super Jaber BFS最短路
题目链接:http://codeforces.com/contest/1301/problem/F题意:n*m的矩阵,每个点都有颜色,每次你可以去相邻的4个点或者任意颜色和当前点相同的点,问最少多少次从A到B思路:f[k][i][j]表示(i, j)这点到k颜色的点的最短路径,那么最小花费就是min(f[k][r1][c1] + f[k][r2][c2] + 1)需要注意的是当进行BFS时...原创 2020-03-17 13:18:59 · 231 阅读 · 0 评论 -
Codeforces Round #619 (Div. 2) E. Nanosoft 最大合法正方形
题目链接:http://codeforces.com/contest/1301/problem/E题意:对于一个正方形分成4等份,左上角红,右上角绿,左下角黄,右下角蓝才认为合法的,对于给定的矩形,询问你这个矩形中最大的合法正方形面积思路:用二维前缀和统计方块,正方形边长最大250,枚举边长,每次检查左上角个数是否为l*l,其余角同样,做个前缀和可以O(1)判断如果范围再大些我们可以用...原创 2020-03-17 13:16:27 · 187 阅读 · 0 评论 -
CodeForces - 1247E Rock Is Push【线性DP】
题目链接:https://codeforces.com/problemset/problem/1247/E题意:一个n*m的矩阵,有个别位置会有小球,小球受到撞击会沿着方向撞到墙为止(每个小球会占一个格子)。你从左上角出发,只能向右或者向下走,问你走到右下角的方案数。思路:首先我们定义我们的状态f[i][j][0] 表示在(i, j) 这个位置向右走的方案数,f[i][j][1] 表示在(...原创 2019-11-21 23:54:51 · 313 阅读 · 0 评论 -
CodeForces - 1247D Power Products【数论】
题目链接:https://codeforces.com/problemset/problem/1247/D题意:给你一个序列a,问有多少对i,j满足存在x使得 ai * aj = x ^ k , k是给定的。思路:两个数满足条件就是要相同因数的个数要是k的倍数,把每个数质因数分解,然后算出来补数,例如还需要2个2,就是4然后我们就在map里找这个补数,然后再将当前数的贡献存入map...原创 2019-11-21 23:30:01 · 375 阅读 · 0 评论 -
CodeForces - 1247C p-binary 【思维】
题目链接:https://codeforces.com/problemset/problem/1247/C题意:给你两个数n和p, 让你将n分解成最少的二进制位,但是二进制位变成了2^x + p, 例如当n = 24,p = 1时,思路:不难想到n在二进制分解后绝对不会超过40位,所以对于这么小的范围我们就暴力枚举多少位能够组成n就行了。但是有可以重复用某一位的情况,所以还需要记...原创 2019-11-21 23:26:25 · 225 阅读 · 0 评论 -
CodeForces 1247B2 - TV Subscriptions (Hard Version) 【思维】
题目链接:https://codeforces.com/problemset/problem/1247/B2题意:就是有k种频道,现在有一个播放频道的序列,问最少需要买多少个频道使得能够连续d天看。思路:比较简单的题目,我们只需要每次处理长度为d的区间,初始o(n)可以得到算出来需要购买的数量,然后区间右移,把左端点去掉,加上右区间端点,就可以得到一个新的答案,然后每次取最优就可以了。...原创 2019-11-21 23:17:11 · 476 阅读 · 0 评论 -
CodeForces - 148D Bag of mice【概率DP】
Pear和Fish正在进行这样一个游戏:一个袋子里一开始装着w个白球和b个黑球。从Pear开始,每次轮流随机抽出一个球。如果抽出的球是白色的,则抽出这个球的人立即获胜。每当一个球被取出后(然后结算获胜情况后),会有另一个球自动滚出来(不算任何人抽的)。每个人抽球、和自动滚出来的球都是等概率的。那么Pear获胜率是多少呢?Input两个数w,b含义如上。w,b<=1000Out...原创 2019-10-15 22:25:47 · 212 阅读 · 0 评论 -
CodeForces 1114C. Trailing Loves (or L'oeufs?)【数论】
Aki is fond of numbers, especially those with trailing zeros. For example, the number 92009200 has two trailing zeros. Aki thinks the more trailing zero digits a number has, the prettier it is.Howev...原创 2019-02-12 21:53:35 · 720 阅读 · 0 评论 -
Educational Codeforces Round 64 (Rated for Div. 2)A. Inscribed Figures【水题】
The math faculty of Berland State University has suffered the sudden drop in the math skills of enrolling students. This year the highest grade on the entrance math test was 8. Out of 100! Thus, the d...原创 2019-05-05 22:01:41 · 187 阅读 · 0 评论 -
Educational Codeforces Round 64 (Rated for Div. 2)C. Match Points【尺取】
You are given a set of pointsx1x1,x2x2, ...,xnxnon the number line.Two pointsiiandjjcan be matched with each other if the following conditions hold:neitheriinorjjis matched with any ot...原创 2019-05-05 22:17:35 · 199 阅读 · 1 评论 -
CodeForces - 713C Sonya and Problem Wihtout a Legend【线性DP】
You are given the array containingnpositive integers. At one turn you can pick any element and increase or decrease it by1. The goal is the make the array strictly increasing by making the minimum ...原创 2019-07-15 15:43:20 · 185 阅读 · 0 评论 -
CodeForces - 672D Robin Hood 【二分+思维】
题目链接:http://codeforces.com/problemset/problem/672/D题意:有n个人,每天钱最多的人要给钱最少的人一块钱,问k天后钱最多与最少的人间的差是多少。思路:可想而知,随之时间的增加,钱少的人的钱会越来越多,直到接近平均值,有钱人则越来越少,也接近平均值。假设我们现在考虑钱少的人,我们对其k天后的钱进行二分答案,可以知道其单调性满足,每次判断当前...原创 2019-11-27 14:51:28 · 201 阅读 · 0 评论 -
Codeforces Round #584 - E1. Rotate Columns (easy version)【状压DP】
题目链接:http://codeforces.com/contest/1209/problem/E1题意:给你一个n*m的矩阵,你可以对任意列进行任意次操作,即将该列进行上下循环移位,然后从每行挑出来一个数 使得这n个数的和最大。思路一:范围比较小可以考虑状压DP来写,dp[i][s] 表示前i列,状态为s时的最大和。在我们枚举状态的时候,考虑更新以后的状态,所以我们枚举另一个可以转移的状...原创 2019-09-15 22:07:10 · 311 阅读 · 0 评论 -
Codeforces Round #584 D Cow and Snacks【并查集】
题目链接:http://codeforces.com/contest/1209/problem/D题意:n种食品,k个客人,每个客人有a,b两种喜欢的食品,每次轮到他就会把这两样都吃完,如果没有喜欢的就会不高兴,问你最少不高兴的人。思路:把食品当做结点,那么每个人就是a,b结点之间的边,可以找到一种策略使得每个人尽可能只吃一种食品,我们可以用并查集来统计,如果喜欢的食品不在同一个集合那么就...原创 2019-09-16 13:17:40 · 377 阅读 · 0 评论 -
Codeforces Round #584 C. Paint the Digits【思维+枚举】
题目链接:http://codeforces.com/contest/1209/problem/C题意:给你n个数字的集合,划分成两个集合,让你确定每个数字在哪个集合,使得按原来顺序,集合1在集合2前面,能够构成单调不下降,输出任意解。思路:由于范围0~9,所以我们考虑枚举分界点x,大于x的都在集合二,小于的全部在集合一,等于x的需要判断一下。记录一下从前往后的过程中集合二的最大值,如果当...原创 2019-09-16 13:22:40 · 200 阅读 · 0 评论 -
Codeforces Round #584 G1.Into Blocks (easy version)【思维】
题目链接:http://codeforces.com/contest/1209/problem/G1题意:给你一个序列,你可以将数字改成任意的数,但必须将相同的数字都修改,而且使得修改后的序列满足任意两个相同的数字间的数也跟他们相同,问最少的修改次数。思路:我们记录一下每个数字最右边的位置,然后对于当前区间,需要找到最多的重复元素,剩余的都需要修改。#include<bits/...原创 2019-09-16 14:34:26 · 301 阅读 · 0 评论 -
CodeForces 55D-Beautiful numbers【数位DP+思维】
题目链接:https://codeforces.com/problemset/problem/55/D题意:Volodya 是一个古怪的男孩,他的品味与众不同。对他来说,一个正整数是漂亮数,当且仅当它能够被自身的各非零数字整除。我们不必与之争辩,只需计算给定范围中有多少个漂亮数。输入输入的第一行包含了测试用例的数目t(1 ≤ t ≤ 10)。接下来的t行,每行包含两个自...原创 2019-10-01 23:13:11 · 304 阅读 · 0 评论 -
Codeforces Round #554 (Div. 2)C. Neko does Maths【数论】
Neko loves divisors. During the latest number theory lesson, he got an interesting exercise from his math teacher.Neko has two integersaaandbb. His goal is to find a non-negative integerkksuch ...原创 2019-04-29 22:11:02 · 258 阅读 · 0 评论 -
Codeforces Round #554 (Div. 2)B. Neko Performs Cat Furrier Transform【模拟】
Cat Furrier Transform is a popular algorithm among cat programmers to create longcats. As one of the greatest cat programmers ever exist, Neko wants to utilize this algorithm to create the perfect lon...原创 2019-04-29 22:04:12 · 196 阅读 · 0 评论 -
CodeForces - 278A Circle Line
The circle line of the Berland subway hasnstations. We know the distances between all pairs of neighboring stations:d1is the distance between the1-st and the2-nd station; d2is the distance be...原创 2019-03-11 16:36:46 · 415 阅读 · 0 评论 -
CodeForces - 59A Word 【水题】
Vasya is very upset that many people on the Net mix uppercase and lowercase letters in one word. That's why he decided to invent an extension for his favorite browser that would change the letters' re...原创 2019-03-11 16:34:24 · 979 阅读 · 0 评论 -
CodeForces 915C-Permute Digits【DFS】
You are given two positive integer numbersaandb. Permute (change order) of the digits ofato construct maximal number not exceedingb. No number in input and/or output can start with the digit0....原创 2019-03-11 15:43:51 · 166 阅读 · 0 评论 -
CodeForcces 670C-Cinema 【排序+离散化】
题意:n个科学家去看电影,每个人只会一门语言,电影的声音和字幕是不同的语言,让你找到哪部电影听懂的最多(一样多时找看懂最多的)。思路:首先我们先进行离散化,然后统计掌握每门语言的人数,然后通过排序找到最优解。#include<set>#include<map>#include<cstdio>#include<cmath>#inclu...原创 2019-02-25 21:02:10 · 201 阅读 · 0 评论 -
CodeForces 1130C- Connect【BFS】
Alice lives on a flat planet that can be modeled as a square grid of sizen×nn×n, with rows and columns enumerated from11tonn. We represent the cell at the intersection of rowrrand columnccwith...原创 2019-02-28 15:06:54 · 800 阅读 · 0 评论 -
Codeforces Round #536 (Div. 2)D. Lunar New Year and a Wander【bfs】
思路:这题我们同样用优先队列来存放数据,因为每次都是从固定点1结点出发,我们每次都找下一个节点是最优的就行,用bfs搜索节点,如果没走过就放入优先队列中。#include<cstdio>#include<queue>#include<vector>#include<iostream>#include<algorithm>u...原创 2019-02-01 22:52:20 · 260 阅读 · 0 评论 -
Codeforces Round #536 (Div. 2)C. Lunar New Year and Number Division【贪心】
思路:根据题意,我们肯定将其分成n/2 个集合,这样平方和才会小,我们将其排序,然后不断将一个小的和一个大的组成一个集合,这样最后将其平方相加就行了,注意范围。下面是证明,感兴趣可以看一下#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typed...原创 2019-02-01 22:48:27 · 179 阅读 · 0 评论 -
Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering【优先队列】
题意:就是有m个人点菜,如果点的那个菜不够就挑选最便宜的给他,如果剩下的菜不够这个人买,那么这个人就会生气并且会拿走剩下的菜并且不给钱,要你输出这m个人的花费。思路:我们用pair关联第i个菜的价钱与其下标i,将其放入优先队列中存储。我们对每个人分类讨论,最后算出来价钱,详情看代码。#include<cstdio>#include<queue>#include...原创 2019-02-01 22:43:09 · 188 阅读 · 0 评论 -
Codeforces Round #536 (Div. 2) A Lunar New Year and Cross Counting【暴力】
思路:题目大意是让你在矩阵中找到符合条件的图形(本身和四个方向都是X),直接暴力匹配就可以,记录下符合条件的情况数目,最后输出即可。#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;const int ma...原创 2019-02-01 22:29:36 · 177 阅读 · 0 评论 -
Coderforces Round #525(div2)1088A - Ehab and another construction problem
思路:没什么思路,就是纯暴力匹配#include <bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;int main(){ int a, b, x; scanf("%d", &x); for(int i = 1; i <= 100 && i &l...原创 2018-12-05 00:20:32 · 294 阅读 · 0 评论 -
Coderforces Round #525(div2)1088B - Ehab and subtraction
思路:模拟题,主要是考虑情况比较多,我写的比较麻烦,也没有再去优化它,所以就大概看一下思路就好。#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;const int INF = 0x3f3f3f3f;int arr[maxn];int main(){ int n, k;...原创 2018-12-05 00:24:54 · 286 阅读 · 0 评论