Codeforces
Spy97
这个作者很懒,什么都没留下…
展开
-
Codeforces 1252I Mission Possible
3200难度的几何题,AC后只有6个人通过 ????题目给出一个长方形区域,区域内有一些圆形的禁区,告知起点和终点,要求找一条从起点出发到终点的折线路径,要求避开禁区(可以贴着通过)题解初看这题,想着递归求解:假设两点的直线不能通过的话,就随机一个中转点,然后求解子问题后来发现,太不靠谱… …仔细看数据的要求,禁区两两相离,而且没有与边界相切的禁区,而且,人可以贴着边界走于是发现,如果起点...原创 2019-10-30 19:48:05 · 208 阅读 · 0 评论 -
Codeforces 1250E The Coronation
题意定义,两个串的相似为:对应位置字符相同的个数大于等于k有n个串,每个串可以选择翻转或不翻转,要求两两相似,求最少翻转个数,及方案题解很有意思的题目,本以为自己能想出来,看了别人的题解才醒悟对于两个串,有4种情况1.翻或者不翻都不相似,无解2.翻和不翻都相似,不用管他们,因为这两个没有限制关系3.翻相似,不翻就不相似,(i,j+n),(i+n,j)(i,j+n),(i+n,j)(...原创 2019-10-29 15:27:24 · 325 阅读 · 0 评论 -
Codeforces 1244F Chips
题意一个项链,每个珠子黑色或者白色,每一时刻,颜色发生变化只考虑自己和左右相邻的3个珠子,若黑色多,则自己变为黑色,否则变为白色问k时刻后珠子的颜色题解找规律首先可以发现,连续的2个及以上相同的颜色的,是永远不会变化的发现,会变化的只用形如 0101010101 的片段而且,下一时刻,颜色会取反操作数次会发现,会变化的区间每次向内缩减,即左右边界缩减1,那么,每个珠子的变化次数就...原创 2019-10-21 11:39:24 · 179 阅读 · 0 评论 -
Codeforces 1238E Keyboard Purchase
题意给出长为n的字符序列,集合大小为m,要求给字符编号(即一种m的排列),定义代价为相邻字符编号差的绝对值,求最小代价题解状压dp不妨设按照1~m的顺序给字符编号,每次确定一个字符,代价为它到之间已经确定的字符的代价和但是,我们无法保留确定的顺序,如何求解?不妨假设所有字符一开始标号均为1,那么,当编号1确定时,将其他编号都设为2,当编号2确定时,将没确定的都设为3,以此类推每确定一...原创 2019-10-21 08:58:05 · 199 阅读 · 0 评论 -
Codeforces 1146H Satanic Panic
题解首先,总的方案数为Cn5C_n^5Cn5,现在要减去不合法的不合法的一共有下图的两种情况一种是四边形中有一个点,另一种是三角形中有两个点对于第一种情况,枚举所有三角形,设三角形内部有 xxx个点,则有x×n−42x\times\frac{n-4}{2}x×2n−4种不合法的情况,除2是因为第一种情况会被算2次对于第二种情况,x×n−44x\times\frac{n-4}{4}x...原创 2019-05-03 16:09:56 · 241 阅读 · 0 评论 -
Codeforces 1190D Tokitsukaze and Strange Rectangle
题解首先,题目有一个不好的引导,即求每一种的集合大小的个数,然后自闭…转换思维,枚举所有的yyy坐标,求可行的xLx_LxL和xRx_RxR的对数对于每一个可选择的区域,用最小的yyy坐标中的最小的xxx坐标区分对于xjx_jxj,xLx_LxL的范围是[xj−1+1,xj][x_{j-1}+1,x_j][xj−1+1,xj],xRx_RxR的范围是[xj,+∞][x_j,...原创 2019-07-14 16:53:40 · 399 阅读 · 0 评论 -
Codeforces 1202E You Are Given Some Strings...
题意给出一个长串 ttt ,n个短串 sis_isi ,问两两连接成的 si+sjs_i+s_jsi+sj 在 ttt 的出现次数的和为多少题解从另一个角度分析,每次的匹配,在 ttt 中的sis_isi和sjs_jsj 的连接位置 +1, 我们枚举 ttt 的每一个对应连接的位置,看有多少对能匹配上若在位置 kkk 能匹配上,有一个特征,si=t[i−len(si)+1,k]...原创 2019-08-14 09:58:30 · 358 阅读 · 2 评论 -
Gym 100543G Virus synthesis
题意有AGTC四种字符,一开始有一个空串,每次操作,可以在首或尾加任意个字符,或者将已有字符镜面复制(左右两种复制方法),要求最少的操作步数使得得到给出的字符串题解首先,最后的串一定是从他的回文子串向两侧添加得到的所以,只需要考虑构成回文串的最小操作数设回文树树中一节点 uuu, 其答案为 dp[u]dp[u]dp[u],长度为 len[u]len[u]len[u],其父亲为 vvv...原创 2019-08-25 12:31:40 · 362 阅读 · 0 评论 -
Codeforces 932G Palindrome Partition
题意给一个串,划分成k个部分,使得这k个部分整体是回文题解转化为 s1sns2sn−1...sn/2sn/2+1s_1s_ns_2s_{n-1}...s_{n/2}s_{n/2+1}s1sns2sn−1...sn/2sn/2+1变为划分为k个部分,每个部分内部是回文dpdpdp 方程很好想, dp[i]=∑dp[j]∗[s[j+1,i]为回文]dp[i]=\sum dp[...原创 2019-08-26 12:07:29 · 212 阅读 · 0 评论 -
Codeforces 833D Red-Black Cobweb 边分治
题意一颗树,有边权,和颜色(红或黑)求,所有的路径中,满足两种颜色的个数差不超过少的颜色的两倍的路径的权值的乘积路径的权值为经过的边的权值的乘积题解边分治牛逼!!!出现了两个错误,一个是,快速幂时,指数不能先取模,不知道为啥脑子抽筋了…第二个是,算法有一部分考虑的还不完备,测数据时才发现了漏洞回到这道题来求不合法的路径个数我更喜欢边分治,因为考虑的简单,只会分成两个子问题,不需...原创 2019-10-04 08:08:31 · 233 阅读 · 0 评论 -
Codeforces 914E Palindromes in a Tree 点分治
#include<bits/stdc++.h>#define N 200010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb push_back...原创 2019-10-04 23:25:59 · 234 阅读 · 0 评论 -
CF 1019E Raining season 边分治
#include<bits/stdc++.h>#define N 400010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb push_back...原创 2019-10-06 23:36:27 · 235 阅读 · 0 评论 -
Codeforces 1142C U2 凸包
题解对于(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1,y1),(x2,y2)确定的抛物线y1=x12+b×x1+cy2=x22+b×x2+cy_1=x_1^2+b\times x_1+c\\ y_2=x_2^2+b\times x_2+cy1=x12+b×x1+cy2=x22+b×x2+c移项后y1−x12=b×x1+cy2−x22=...原创 2019-05-03 10:01:18 · 325 阅读 · 0 评论 -
codeforces 1083E The Fair Nut and Rectangles 动态规划 单调性优化
题意给出n个长方形,每个长方形有一个权值,要求选其中一些长方形,使得面积并减去权值和最大化题解首先dpdpdp方程很好想dp[i]=max{dp[j]+yi∗(xi−xj)−ai}dp[i]=max{\{dp[j]+y_i*(x_i-x_j)-a_i\}}dp[i]=max{dp[j]+yi∗(xi−xj)−ai}由于是n2n^2n2复杂度,所以需要优化,变形后dp[i]=m...原创 2019-05-02 21:37:01 · 285 阅读 · 0 评论 -
codeforces 1140E Palindrome-less Arrays
题意给出n个数,其中值为-1的需要从[1,m]中选一个数替代。要求替代后,不能出现某个子序列是回文的,求方案数。题解题目要求不能是回文,这就等价于不能出现a[i]==a[i+2]a[i]==a[i+2]a[i]==a[i+2]的情况,这个转换很重要。那么我们就可以根据奇偶分开来处理,答案就是两者的乘积。接下来是具体求方案数设序列 A,−1,−1,...,−1,−1,BA, -1, -...原创 2019-04-08 08:12:00 · 379 阅读 · 0 评论 -
Jamie and Tree codeforces 916E
题目大意:给出一棵树以及每个结点的权值,初始时根为1。有3种操作:一是将根换为x;二是给出两个节点u,v,把包含这两个点的最小子树中每个节点权值加上x;三是查询以u为根的权值和。题解:不考虑换根时,需要的算法是裸的模板线段树+dfs序+LCA,考虑到换根,我们不必真的换,只需要对操作2和3进行分类讨论。对于第一种操作,直接将根换一下即可。对于第二种操作,设t为(u,v)的LCA,分为两大种情况,一...原创 2018-04-06 02:30:54 · 301 阅读 · 3 评论 -
Tree Destruction codeforces 911F
题目大意:给出一棵树,进行n-1次操作。每次操作包括找两个点,距离加到ans中,再删除其中一个点,n-1次操作后将只剩1个点,求最大ans。题解:先求出树的直径,两个端点为p1、p2,操作分2种。第一种,删除非直径上的点(a、b、c),如图 操作时,选择的点对为{a,max(p1,p2)},max(p1,p2)表示a到p1,p2距离最大的点,删...原创 2018-04-06 18:15:10 · 263 阅读 · 0 评论 -
Codeforce 975E
E. Hag's Khashbatime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputHag is a very talented person. He has always had an artist inside him but his fath...原创 2018-05-17 21:27:34 · 424 阅读 · 0 评论 -
codeforces 17E
E. Palisectiontime limit per test2 secondsmemory limit per test128 megabytesinputstandard inputoutputstandard outputIn an English class Nick had nothing to do at all, and remembered about wonderful st...原创 2018-05-15 00:49:01 · 284 阅读 · 0 评论 -
codeforces 982E
题解:先单独处理水平和竖直走的情况,在分析斜着走的情况。每次我们遇到边界,不反弹,而是接着走,理解为地图向前进的两个方向翻转扩展,直到走到了四个角落之一,算出两个方向各自扩展的数量,在根据奇偶来确定坐标。利用扩展欧几里得来算出是否有解。代码:#include<bits/stdc++.h>#define N 1000010#define INF ...原创 2018-07-28 14:53:53 · 263 阅读 · 0 评论 -
codeforces 698D
题意:给出m个射击位置,和n个静止的射击目标,在每个射击位置只能开一枪,问有多少位置是可能被射击到的。题解:对每个目标单独独立判断是否可能被射击到即可,判断方法是dfs,关键是dfs的方法。找到合适高效的dfs是关键,我就在这里跪倒了,太菜了,最后学习了codeforces里大佬的解法,又一次跪服。。。首先,以开枪顺序为切入点,干掉一个目标最多开m枪,而且开枪的顺序也就是...原创 2018-07-30 11:04:38 · 418 阅读 · 0 评论 -
codeforces 1019D Large Triangle
题意:给出n个点和一个面积s,问能否从n个点中选3个点组成s的三角形的面积为s。题解:这题我思考了很久,因为确实方法不是很好懂。首先,原题是bzoj 3707,这道题是给出n个点,求3个点组成的最小面积。我们先从这题入手。解法一:分块+暴力 将坐标系多次旋转一个随机角度,将点排序后,由于是求最小值,所以在相邻的点最有可能,可以分块,在块内部暴...原创 2018-08-27 23:54:19 · 501 阅读 · 0 评论 -
codeforces 1025F Disjoint Triangles
题意:给出n个点,保证没有三点共线,求可以组成多少对不相交的三角形。题解:对于两个不相交的三角形A、B,我们发现有且仅有两条共切线能使得直线两侧是完整的三角形。我的思路就是枚举直线,直线上已经有2个点了,假设直线两侧分别有x、y个点,那么可行的方案就是一侧选两个点,和直线上的点构成三角形,方案数为,求和即可,因为之前说过每对三角形会算两次,所以最后答案要除以2。具体方法...原创 2018-08-24 20:55:20 · 776 阅读 · 0 评论 -
codeforces 886F 889D 890F Symmetric Projections
这题我写吐了,交了31发,最后一发AC,尝试了各种写法以及各种假优化,最后从别人的代码片段中获得灵感,感慨还是自己太蠢了。。。题意:n个点,有一条过原点的直线,如果所有点在这条直线上的投影点是关于某个点对称的,那么这条直线就是GOOD,问这样直线的个数。题解:首先要求出所有点的重心。如果一条直线是GOOD,那么n个点的投影点一定是关于重心的投影点对称的。第一步...原创 2018-09-14 20:31:59 · 296 阅读 · 0 评论 -
Codeforces 1139E Maximize Mex
题意有nnn个人,每个人有一个属性值cic_ici,并属于唯一的一个俱乐部bib_ibi,有ddd天,每天指定一个人离开他所属的俱乐部(以后不再回来),离开后,每一个俱乐部每天要推举一个人,每天被推举上来的人的属性值构成序列SSS,要使SSS的mexmexmex值最大,输出每天的mexmexmex最大值。mex是指在一个序列中没有出现的最小自然数,在博弈论的SG函数中用到。例如:[0,...原创 2019-03-22 09:37:52 · 385 阅读 · 2 评论 -
codeforces 1140F Extending Set of Points
题解将x坐标相同的点连接到一起,将y坐标相同的点连接到一起,每个联通块的x、y坐标的种类的乘积的和就是答案。代码#include<bits/stdc++.h>#define N 600010#define INF 0x3f3f3f3f#define eps 1e-10// #define pi 3.141592653589793#define P 1000000007...原创 2019-04-06 18:14:45 · 303 阅读 · 0 评论 -
CodeForces 915F Imbalance Value of a Tree
F. Imbalance Value of a TreeYou are given a tree T consisting of n vertices. A number is written on each vertex; the number written on vertex i is ai. Let's denote the function I(x, y) as the differen...原创 2018-03-20 21:49:27 · 359 阅读 · 0 评论