- 博客(19)
- 收藏
- 关注
原创 Codeforces Round #243 (Div. 1)——Sereja and Two Sequences
给两个长度分别为n和m的序列,现在有两种操作:1.分别选择两个序列的一个非空前缀,切两个前缀的最后一位相同,删除之,得到1分(只累计),消耗e;2.直接删除两个序列,消耗值定于两个序列之前删除的元素个数之和,并且使得得到的分有效(之前没有有效分)(1 ≤ n, m ≤ 105; 1 ≤ s ≤ 3·105; 103 ≤ e ≤ 104),s代表总能量,e表示一次操作的消耗
2014-04-30 16:10:49 1650
原创 Codeforces Round #243 (Div. 1)——Sereja and Squares
我们考虑每一种x坐标,显然只有<= sqrt{N}个x坐标出现了> sqrt{N}次,我们称这些为大的,其他为小的。我们先考虑大的x和其他x之间的答案,先O(sqrt{N})枚举一个大的坐标,然后for其他的每个点,这样可以根据x坐标的差算出正方形的边长,hash检查一下就能知道这个正方形是否存在。之后考虑小的x和小的x之间的答案,注意到我们可以对每个横坐标直接平方for,这样只有(sqrt{N})^2 + (sqrt{N})^2 + ... + (sqrt{N})^2 = N^1.5的枚举量,之后也可
2014-04-29 22:58:00 1602
原创 矩阵操作来处理图
此类题目有一个明显的特点,是n个点或者n*n的矩阵,否则无法做矩阵运算点数不能太大,因为矩阵操作的复杂度是O(N^3)的,所以大概最多只能有100个点结果和移动次数有关,且一次只能移动一个点
2014-04-29 15:37:11 983
原创 Coder-Strike 2014 - Finals (online edition, Div. 2)——Bug in Code
给定n个数对(a, b),现在求有多少个数对(x, y)(1 <= x、y <= n)满足至少k个数对。x,y满足一个数对(a, b)当且仅当x、y出现在数对(a, b)中至少一次3 ≤ n ≤ 3·10^5
2014-04-28 20:33:59 1072
原创 Codeforces Round #243 (Div. 2)——Sereja and Table
首先给出联通块的定义:对于相邻(上下和左右)的相同的数字视为一个联通块现给一个n*m的只有0和1的矩形和数字k,求出最小反转个数使得整体包括若干个矩形联通块(即每个联通块均是矩形)(1 ≤ n, m ≤ 100; 1 ≤ k ≤ 10)如果最小次数比k大,输出-1
2014-04-28 20:27:20 1775
原创 Codeforces Round #243 (Div. 2)——Sereja and Swaps
给定一个整数序列长度为n,可以至多交换k次,求最大连续区间和(1 ≤ n ≤ 200; 1 ≤ k ≤ 10)
2014-04-28 20:14:11 1365
原创 Coder-Strike 2014 - Round 1__E-mail Addresses
给定一个字符串,判断合法串的个数。对于形如str1@str2.str3的串,满足:str1包括数字、字母、下划线且由字母开头;str2由字母、数字组成;str3由字母组成;三个串均非空,且是连续的串分析:题目没什么难度,就是处理起来比较麻烦。可以记录一下所有@和.出现的位置,然后判断符合条件的三个串有几个,乘积即可
2014-04-28 20:05:04 1328
原创 Coder-Strike 2014 - Round 1__Giving Awards
给定n个点,m个限制条件。每个限制条件表示为a,b,给定一个序列,使得b不在a后边分析:第一次看到这个题目就想到了拓扑排序。。。看来理解还不是很到位。拓扑排序给定的是一个偏序关系,而这个题目的关系不是偏序关系。题目的点数和边数都限定的十分完美。。本来想建立一个“可行图”,a->b表示b可以在a的后边。但是这样建边会超内存。。(看的题解的想法)考虑一下,加入当前已经排好了n个数
2014-04-28 20:04:12 996
原创 编程之美_集合
编程之美_集合DP描述统计满足下列条件的集合对(A, B)的数量:A,B都是{1, 2, …, N}的子集;A,B没有公共的元素;f(A)。f(S)定义为S中所有元素的按位异或和。例如, f({}) = 0, f({1, 3}) = 2。因为答案可能很大,你只需要求出
2014-04-20 21:35:52 1293
原创 RCC 2014 Warmup (Div. 2)__Elimination
这个题目很简单,自己的方法也比较麻烦。重点需要注意的一个,对下文中的程序,对于变量‘all’,之后的各种操作都是以其为正值来的。而c语言的特点决定了负数也是可以进行这些操作的,因此,在进行这些计算的时候要注意保证所计算的值一定不能是负数
2014-04-18 17:21:51 1137
原创 Codeforces Round #239 (Div. 2)_Long Path
此题的状态转移虽然不是一个DAG,但是可以发现转移的时候是有条件的,而且从当前点往回找的时候只能到达之前的状态,所以可以考虑DP同样的,DP的关键也在怎么样处理这个“环”
2014-04-14 17:18:43 1008
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人