
Codeforces
只玩三国的程序猿
23333333333
展开
-
VSCODE codeforces 插件
VSCODE codeforces 插件选择插件CodePalCodeforces BotCodeforeces (没错,有个插件就叫这个名字)Catalyst、ICIE、acmX最后选择插件目前vscode已经有一些帮助codeforces写题的插件,但是由于本来这方面就是比较小众的,所以更新动力不强,bug挺多,大部分都不是很好用。截图里面的这些插件都是相关的,但是我挨个试了一下,大部分都不是很好用,我就说一下几个能用的。CodePal这个是首选,再几个电脑上都测试过,可以用,他的主要功原创 2021-06-08 17:50:19 · 7859 阅读 · 3 评论 -
AIM Tech Round (Div. 2)C - Graph and String(二分图染色)
题意:赛上没想出解法,赛后虽然讨论了出来,却发现有一个神trick,也就是这题是肯定会挂的QAQ。题意我就不多说了,读题就懂,我就说这题怎么转化的。首先,根据题意,那么只有a和c是不会连边的,也就是说,没有连的边就是一个a,一个c,那么我们就可以反过来建图,用没连的边来建一个图,那么这个图是不是每一条边的两个节点一定是不同的染色,这不就是典型的二分图染色么?想到这里肯定是很激动的,于是就原创 2016-02-05 16:44:06 · 577 阅读 · 0 评论 -
Codeforces 633C Spy Syndrome 2(Trie+dp)
题意: 给你一个长字符串,再给你一些子串,这些子串全部化成小写字母在翻转,可能会组成长字符串,让你输出一种法案。 这题一开就要用的字典树,我已开始以为要AC自动机,然而并不需要。我们只需要用字典树吧子串存下来就好了。然后就会说查找的过程。 查抄的时候,我们用ans[i]ans[i]表示第i个位置是标号为ans[i]的子串的开头,我们只需要按照这个顺序分别找下去就好了,说的不太清楚,代原创 2016-02-27 23:48:23 · 648 阅读 · 0 评论 -
Codeforces 633D Fibonacci-ish(搜索)
题意: 让你在数列中选择一些数字组成数列,使其满足斐波那契数列的规则,求能够组成符合条件的序列的最长长度。 直接搜索就行了,因为斐波那契数列的增长速度是非常快的,最长也就log(1e9),所以n*2枚举,然后用map哈希一下,直接爆搜,注意一点,如果我们枚举的前两个数是0 0,那么长度就是0的个数,注意特判代码://// Created by CQU_CST_WuErli//原创 2016-02-27 23:53:18 · 655 阅读 · 0 评论 -
Codeforces 678B Remainders Game(数论)
题意: 给你一个k,再给你一个数组c,让你判断对于任意的非负整数x,知道了xmodcifori:=1tonx mod c_{i} \quad for\quad i := 1\quad to \quad n的值,问你是否能够知道xmodkxmodk的值。 作为一个数学渣,完全没有想法。 其实我们可以从反面来考虑这个问题。假设有两个x1和x2是的上述的条件不成立,依旧是说对于每一个数字原创 2016-07-08 16:59:51 · 777 阅读 · 0 评论 -
Codeforces 678C Mike and Chocolate Thieves(二分)
题意: 求一个最小的n,使得从1到n中可以得到m个不同的等比数列的前四项。暴力枚举公比即可。//// Created by CQU_CST_WuErli// Copyright (c) 2016 CQU_CST_WuErli. All rights reserved.////#pragma comment(linker, "/STACK:102400000,102400000")原创 2016-07-08 17:06:03 · 741 阅读 · 0 评论 -
Codeforces 689D Friends and Subsequences(二分+RMQ)
题意: 给你两个数列a和b,问你其中有多少对l和r使得maxri=lai=minri=lbimax_{i=l}^{r}a_{i} = min_{i=l}^{r}b_{i}。 这个题有一个很正宗要的性质:假设我们固定l,那么对于l到r这个区间内的maxri=lai−minri=lbi≤maxr+1i=lai−minr+1i=lbimax_{i=l}^{r}a_{i} - min_{i=l}^原创 2016-07-08 17:18:58 · 580 阅读 · 0 评论 -
Codeforces 689E Mike and Geometry Problem(组合数学)
题意: 给你n个x轴上的线段,在其中选k个线段,对于所有的可能方案,总共有多少点次被覆盖,也就是说同一个点如果被不同的方案所覆盖还是要被算在答案里的。 这个题首先我们要把线段的端点离散化,用map就可以,对于某一段,我们可以算出被多少条线段覆盖,假设这个值为p,如果这一段被大于等于k个线段覆盖,那么ans+=Ckp∗numans +=C_{p}^{k} * num,num是这一段点的个数。原创 2016-07-08 17:28:52 · 669 阅读 · 0 评论 -
Codeforces 689 C The Values You Can Make(dp)
题意: 给你一些硬币,让你选出一个子集的总价值和为k,然后对于一个选出的子集,除了可以组成k以外,还可以在选出的子集中选出一些其他的价值。问你所有的选出的子集一共可以得到多少种价值。 对于这个,因为tag是动态规划,所以就往上面思考,但是找不到一个一个可行的状态。看过题解才明白,一个很机智的状态。 dp[i][j][k]dp[i][j][k]表示前ii个硬币组成了价值为jj的一个子集原创 2016-07-08 16:11:41 · 927 阅读 · 0 评论