Codeforces Round #FF (Div. 2) 题解...
分类:
其他好文 时间:
2014-07-14 20:42:27
阅读次数:
275
题目链接:点击打开链接
题意:
给定n行m列的矩阵 k次操作,一个常数p
ans = 0;
对于每次操作
可以任选一行或一列, 则ans += 这行(列)的数字和
然后这行(列)上的每个数字都-=p
问最大的ans
思路:
首先我们设最终选了 行 i 次,则列选了 k-i 次
那么假设我们先全部选行,然后选列,则每次选列时,要-= i*p
这样最后是 -= i...
分类:
其他好文 时间:
2014-07-14 17:38:20
阅读次数:
203
A. DZY Loves Hash
水题!!
AC代码如下:
#include
#include
#include
#include
#include
#define inf 100000000
#define M 100005
#define ll long long
#define F(a,b) for(i=a;i<=b;i++)
#define ME(a) memse...
分类:
其他好文 时间:
2014-07-14 17:30:29
阅读次数:
267
首先要知道选择行列操作时顺序是无关的
用两个数组row[i],col[j]分别表示仅选择i行能得到的最大值和仅选择j列能得到的最大值
这个用优先队列维护,没选择一行(列)后将这行(列)的和减去相应的np (mp)重新加入队列
枚举选择行的次数为i,那么选择列的次数为k - i次,ans = row[i] + col[k - i] - (k - i) * i * p;
既然顺序无关,...
分类:
其他好文 时间:
2014-07-14 16:44:35
阅读次数:
205
【前言】咦?现在怎么流行打CF了?于是当一帮大爷...
分类:
其他好文 时间:
2014-07-14 13:12:40
阅读次数:
356
题意:给你一个矩阵,每次选某一行或者某一列,得到的价值为那一行或列的和,然后该行每个元素减去p。问连续取k次能得到的最大总价值为多少。解法:如果p=0,即永远不减数,那么最优肯定是取每行或每列那个最大的取k次,所以最优解由此推出。如果不管p,先拿,最后再减去那些行列交叉点,因为每个点的值只能取一次,...
分类:
其他好文 时间:
2014-07-14 10:26:55
阅读次数:
226
题目大意:
求一个子串,子串既是前缀又是后缀。
然后再求出它在整个串中出现的次数。
思路分析:
可以很容易想到如何判断一个串既是前缀又是后缀。
只需要它与 sa【0】 的lcp 等于 整个串的长度减去它的 sa 值。
然后接下来的工作是判断出现了 多少次。
首先我们想到,如果这个子串是目标前后缀。
那么出现过它的子串在sa 中的下标一定比这个串大。
因为它已经是最简的了。...
分类:
其他好文 时间:
2014-07-10 23:54:55
阅读次数:
505
题目链接:点击打开链接
需要注意的是镜子在与2个人共线时是不作为障碍物,但其他情况与墙一致
#include
#include
#include
#include
#include
using namespace std;
#define point Point
const double eps = 1e-8;
const double PI = acos(-1.0);
double ABS(...
分类:
其他好文 时间:
2014-07-10 21:32:50
阅读次数:
254
题目大意:
说七个party选择数字(各不相同)
而规定的小象的party选择的数字之中所拥有的数字4和7的个数要比其他六个party拥有的个数之和还要严格多,询问方案数。
如m=7时其余的随意选择至少会拥有一个4或7,与题意矛盾,故方案数为0
m=8时,7 1 2 3 5 6 8是一种合法方案
思路:
由于小象的party选到的数字所含4和7的个数至多和m的位数一样多,则枚举小象的party所含4和7的个数,剩余的6个party直接用dfs即可(直接用乘法原理)。
而通过数位dp可以算出1~m之中所拥有...
分类:
其他好文 时间:
2014-07-10 19:44:26
阅读次数:
193