10 2021 档案

洛谷P1323
摘要:https://www.luogu.com.cn/problem/P1323 题意: 思路: 取出前k小个,每次可以取出当前最小的值然后进行拓展,可以使用优先队列,删除数字使得剩余保持最大,那么每次发现当前数字比前一个数字大,就可以删去前一个数字,可以使用栈来实现,若是使删除后的数字变小,每次发现当
70
0
0
atcoder abc213e
摘要:https://atcoder.jp/contests/abc213/tasks/abc213_e 题意: 一个nxm的矩阵,从1,1走到n,m点,'.'可以直接走,#表示障碍物,可以花费1来将一个2x2的小矩阵全部变成'.',求最小的花费 思路: 相当于一个矩阵,有两种边权,所以可以考虑01bfs
92
0
0
atcoder abc215E
摘要:https://atcoder.jp/contests/abc215/tasks/abc215_e 题意: 求连续相同的子序列个数,比如aaabbb算一种 思路: *考虑题目中一共只有10中字符,可以通过状压dp求解,状态表示为:dp[i][j][k],表示前i个字母中选取状态为k,并且结尾使j的所
84
1
0
codeforces 1469D
摘要:题意: 给定1~n的序列,可以任意选取x和y,使得x=ceil(x/y),问不超过n+5次使序列变成n-1个1和一个2 思路1: 首先1和2可以不用变,3到n-1都可以变成1,然后处理n,发现要处理log(n)次,显然数据大的话不满足条件,可以考虑找一个数字让n变成1,然后让这个数字通过2再变成1,
36
0
0
codeforces 282C
摘要:https://codeforces.com/contest/282/problem/C 题意: 给定两个01字符串ab,每次可以在a中选择两个相邻的字符xy,使得a=x^y,b=x|y,然后给xy赋值为ab(或者ba),问最后a能否变成b 思路: 考虑所有情况: 10/01:可以变成11 00:不
56
0
0
codeforces 564D
摘要:https://codeforces.com/contest/546/problem/D 题意: 两个数字a和b,每次可以给a!/b!c除以一个他的因数,问最多多少次可以变成1 思路: 一个数要变成1,最多肯定每次除以他的质因数,总次数就是质因数的指数和,现在考虑a*b,显然结果就是a的质因数指数和
50
0
0
codeforces1484C
摘要:https://codeforces.com/contest/1481/problem/C 题意: 有n个物品,分别有各自的颜色a,还有预期颜色b,有m个人来涂色,每个人可以涂一个物品,问最后能不能全部变成预期颜色 思路: 因为颜色都是由最后一次涂改决定,可以选择倒着跑,遇到需要改变的就存下索引,如
42
0
0
codeforces1474C
摘要:https://codeforces.com/problemset/problem/1474/C 题意: 有一个数字x和一个长度为2*n的数组,每次找到两个数字a,b,使得x=a+b,并且删除掉a和b,同时x更新为max(a,b),试问能不能把这个数组全部清除, 思路: 首先排序,每次删除的肯定是这
42
0
0
codeforces1360F
摘要:https://codeforces.com/problemset/problem/1360/F 题意: n个长度为m的字符串,求字符串s使得和每个给定的字符串最多只有一个位置不同,如果没有输出-1 思路: 数据范围只有10,可以使用位运算求解,首先通过第一个字符串可以确定m-1个位置,有一个位置可
33
0
0
codeforces1473C
摘要:https://codeforces.com/problemset/problem/1473/C 题意: 给定一个序列a,是1,2,3,4,...k,k-1,k-2,...,k-(k-n)一共n个,现在要找到一个k的排列使得构造一个新序列b,b[i]=p[a[i]]并且要求b的字典序最大,且逆序对不
36
0
0
1325C
摘要:1325C 题意: n个节点,n-1条边,每条边上有一个数字,0~n-2,求一个编号顺序,使得所有u到v的编号种的mex最小 思路: 两个点u,v之间的mex的贡献肯定有u和v相连的两条边,可以优先把叶子节点全部选成最小,然后任意两个叶子节点之间的mex都只会<=2,中间的路径(不选择根节点)的me
78
0
0
codeforces Round#747 div2
摘要:A A 题意: 找到一对l到r使得l累加到r的和为n 题解 #include <bits/stdc++.h> #define eb emplace_back #define divUp(a,b) (a+b-1)/b #define mkp(x,y) make_pair(x,y) #define al
116
0
1
codeforces1365D
摘要:1365D 题意: 有一个nm大小的迷宫,#表示墙,.表示空地,b表示坏人,g表示好人,现在要求把空地可以变成墙,问有没有一种方案能够让好人全部走出迷宫,坏人一个也走不出来,坐标(n,m)表示迷宫的出口 思路: 可以把b周围的所有空地全部变成墙 ,然后求其他g能不能出迷宫,这个贪心策略可以这样想,假
62
0
0
k-City
摘要:city 题意: n个点m条边,有q次询问每次给当一个p,当两个点之间的边权小于p时,这条边就会被摧毁掉,问每次给定p的时候有多少对点相互连通; 思路: 每次查询,都要遍历一遍所有的点,判断这条边是否大于p,时间复杂度远不够,假设p1<p2,当一条边大于p2的时候一定大于p1,所以可以由大到小做,这
64
0
0
洛谷p4447
摘要:https://www.luogu.com.cn/problem/P4447 题意: 把每个数字尽可能分到一个组中,从这些组里面选出长度最小的分组;分组规则是连续的数字比如1234 思路: 可以先将数组排序,同时要满足数字连续,以及尽量让数组长度较大,所以可以每次选择长度最小的数组进行拼接,同时还要
189
0
0
codeforces1592C (dfs,位运算)
摘要:1592C 题意: 给定一个有n个节点的树,要求至少删掉一条边,最多删掉k-1条边,使得剩下的连通块的各个节点的异或和相等 思路: 首先考虑异或,假如根节点的异或和为0,那么一定是通过两个相等的值异或得来,也就是说至少删掉一条边,这种情况直接输出yes,考虑其他情况,假如异或和不是0,那么至少要有三
53
0
0
codeforces365C(数学)
摘要:365C 题意: 给定一个长度为n的字符串s,组成一个数组b,其中b[i,j]=s[i]xs[j],问有多少个矩阵的和等于给定的数字a 思路: 考虑一般情况:假设子矩阵是左上角是(x,y),右下角是(xn,yn); 则这个矩阵的和可以表示为 第一行是: \(s[x]*s[y]+s[x]*s[y+1]
90
0
0
codeforces1353D(构造)
摘要:1353D 题意: 起初数组都是0,第i次选择最长的0的子段中最左边的子段,然后取中间值赋值为i,一直执行n次,输出赋值后的长度为n的数组 思路: 每次取最长直接可以使用堆来维护子段的长度,取最左边可以维护每个子段的左端点,同时每次分割一个子段就会生成两个新的子段 题解: #include <bit
34
0
0
codeforces1475D&1475E
摘要:1475D 题意: 有n个软件,每个软件都有一个内存空间和重要度,重要度只有1和2,现在至少要减少m的内存,问最少减少的重要度是多少; 思路: 每个软件可以有选和不选两种情况,但是数据范围太大没法直接做,注意到只有两种重要度,那么,可以枚举一种重要度的物品,然后得出另一种物品至少需要多少,使用二分+
49
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示