![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CF
Jose何塞
这个作者很懒,什么都没留下…
展开
-
2020.11.1晚 CFdiv2比赛总结(真·CSP模拟)
今天的题才是真正的CSP模拟(滑稽)FK:我没AK,好菜啊(%%%)CottonT5被hack了,痛失AK(%%%)T1势必(S·B)排序T2势必求max(a+b,c+d)T3需要思考,首先p%q!=0直接输出p。对于p,q两个数,枚举质因数g,设p中有s个g,q中有t个g对p/(g^(s-t+1)) 取max即可(保证不是q倍数)因为q是1e9级别,枚举sqrt(1e9)级别即可,q中最多有一个大于sqrt(1e9)的质数,所以对于一次询问复杂度是sqrt(1e9)的,可以过T4玄学格物原创 2020-11-01 22:17:09 · 512 阅读 · 0 评论 -
CF1176F Destroy it!题解
题目大意:给定n个块,每个块内给你m个操作,其花费为w,攻击为v。每个块内不得选w总和超过3的操作(可以不选),总计选到第x个(x为10的倍数)时v可以翻倍,求v总和最大值题解:一道简单到连我都能做出来的 DP其实就是01背包的变式,多了一个v翻倍操作设F[i][j]为做到第i个块,选了j个操作因为空间不够,j%=10,这样不影响计算。其实只有这么几个转移:{1,1,1},{1,1},{1},{1,2},{2},{3},(集合内代表w),直接做就好了注意:可以不选,这些转移不一定可行,需要判断原创 2020-09-24 21:44:01 · 202 阅读 · 0 评论 -
CF1171F Division and Union题解
题目大意:给你一堆线段,问你能否将线段们分成两个集合,集合A中的任意一条线段不与集合B中任意一条线段相交。题解:这是一道比较简单的题。考虑将右端点排序,维护左端点后缀最小值,寻找一个断点使得其右端点小于左端点后缀最小值即可。n总和小于1e5,暴力即可。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int i,j,k,m,n,o,p,l,s,t,times原创 2020-09-24 20:01:12 · 111 阅读 · 0 评论 -
CF1171E Doggo Recoloring题解
题目大意:给定一个字符串,可以将大于等于2个的相同小写字母全部变成另一个小写字母,问这个字符串操作后是否能变成只有单一字符的字符串题解:只要有一个字母出现过两次就必定可以注意特判n=1真TM水#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int i,j,k,m,n,o,p,l,s,t;char a[100005];int sum[100005];i原创 2020-09-15 22:24:09 · 118 阅读 · 0 评论 -
CF1131G Most Dangerous Shark题解
题意:给定m个多米诺骨牌,两两间距离为1,每个骨牌有一个高度h和花费p,推倒一个骨牌需要对应的代价p,可以选择向左或向右推,在选定方向上的h-1个(不包括自身)会被推倒,注意被推倒的骨牌会发生连锁反应,继续推。问:让所有的骨牌倒下,所需要的最小代价。题解:输入是真的恶心,占据此题30%难度啊这然后我们考虑如何DP直接上单调栈f[i]=min(f[left[i]-1]+co[i],mn[q[0]]);left[i]表示i向左推能推到的最远点q是单调栈,q[0]是长度co是那个代价q里面所有数满原创 2020-09-15 22:15:26 · 186 阅读 · 0 评论 -
CF1120B casino题解
题目大意:给定两个序列A,B(0<=A[i],B[i]<=9),你可以做一个操作x,使A[x]+1,A[x+1]+1或使A[x]-1,A[x+1]-1,(0不能-1,9不能+1)使得A=B,若可以请输出操作方案(大于1e5时输出1e5行),不可以输出-1题解:这是作业里很水的一道题了。首先我们先判可行性,直接从前到后贪心即可。但是输出方案就有一些问题。对于操作x,A[x+1]=0时不能-1,=9时不能+1,考虑如何完成这个操作。以A[x+1]=0为例,我们就对x+1进行+1操作,然后对x原创 2020-09-05 15:17:25 · 221 阅读 · 0 评论 -
CF1108F MST Unification题解
题目大意:给定一个无向联通图(无环无重边),对一些边边权进行+1操作,使得最小生成树唯一,求最少+1操作个数。又是一道easy的题目考虑kruskal算法,如何计算答案搞两个并查集a,b对于一个边权w,先将长度为w的边按照kruskal的算法加入并查集a(b先不加)那么对于边x,y,若x,y在a中联通,在b中不连通,这条边就是可行边累计答案后将加边的操作对b也做一次,更换更大的w继续累加答案这就是处理答案的方式。最小生成树有n-1条边,可行边个数减去n-1就是答案#include <原创 2020-09-10 21:01:38 · 115 阅读 · 0 评论