[TC14126]BagAndCards

题目大意:

有\(n(n\le500)\)个袋子,第\(i\)个袋子里有\(count[i][j]\)张值为\(j(j\le m\le500)\)的牌。给一个长度为\(2m-1\)的序列,告诉你\(0~2m-1\),哪些数是好数。求对于每一对袋子\((i,j)\),从\(i\)拿一张牌,再从\(j\)拿一张牌,两张牌之和为一个好数的方案数。

思路:

预处理\(sum[i][j]\)表示\(j\)能和\(i\)中的多少数组成好数,然后就可以直接求了。

时间复杂度\(\mathcal O(n^2m+nm^2)\)。

源代码:

#include<string>
class BagAndCards {
private:
using int64=long long;
static constexpr int N=500,mod=1e9+7;
int count[N][N],sum[N][N];
public:
int getHash(const int &n,const int &m,int x,const int &a,const int &b,const int &c,const std::string &isGood) {
for(register int i=0;i<n;i++) {
for(register int j=0;j<m;j++) {
count[i][j]=x;
x=(((int64)x*a+b)^c)%mod;
}
}
for(register int i=0;i<n;i++) {
for(register int j=0;j<m;j++) {
for(register int k=0;k<m;k++) {
if(isGood[j+k]=='Y') {
(sum[i][j]+=count[i][k])%=mod;
}
}
}
}
int ans=0;
for(register int i=0;i<n;i++) {
for(register int j=i+1;j<n;j++) {
int tmp=0;
for(register int k=0;k<m;k++) {
(tmp+=(int64)count[i][k]*sum[j][k]%mod)%=mod;
}
ans^=tmp;
}
}
return ans;
}
};

[TC14126]BagAndCards的更多相关文章

  1. topcoder srm 679 div1

    problem1 link $f[u][0],f[u][1]$表示$u$节点表示的子树去掉和不去掉节点$u$的最大权值. problem2 link 首先预处理计算任意三个蓝点组成的三角形中的蓝点个数 ...

随机推荐

  1. 为caffe添加最简单的全通层AllPassLayer

    参考赵永科的博客,这里我们实现一个新 Layer,名称为 AllPassLayer,顾名思义就是全通 Layer,“全通”借鉴于信号处理中的全通滤波器,将信号无失真地从输入转到输出. 虽然这个 Lay ...

  2. linux regulator之浅见【转】

    转自:http://blog.csdn.net/batoom/article/details/17081651 1: 校准器的基本概念 所谓校准器实际是在软件控制下把输入的电源调节精心输出. Regu ...

  3. Pcap4J实现抓包器

    前段时间搞抓包程序,打算使用Pcap4J实现,发现除了GitHub,其它资料少之又少,几乎都是不起作用. 被迫我一直看(日本作者!)英文注解的源码和sample和test,比较费劲+营养很少.因为几乎 ...

  4. aiohttp分流处理

    # -*- coding: utf-8 -*- # @Time : 2018/12/26 9:55 PM # @Author : cxa # @Software: PyCharm import asy ...

  5. vue学习生命周期(created和mounted区别)

    created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图(例如ajax请求列表). mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom ...

  6. ES系列三、基本知识准备

    一.基础概念 1.索引 索引(index)是elasticsearch的一个逻辑存储,可以理解为关系型数据库中的数据库,es可以把索引数据存放到一台服务器上,也可以sharding后存到多台服务器上, ...

  7. 将本地光盘做成yum源

    环境:vmware 1.将centos6.5光盘挂载在虚拟机上 2.将光盘挂载在/mnt/cdrom目录下 root#  mkdir /mnt/cdrom root # mount /mnt/cdro ...

  8. Maven编译时,出现找不到符号

    解决办法: 如果使用的是聚合工程 1.执行project--clean(eclipse)或者build project(intellij),将项目清理一下. 2.执行聚合工程中的  Maven--cl ...

  9. PYTHON-组合 封装 多态 property装饰器

    # 组合'''软件重用的重要方式除了继承之外还有另外一种方式,即:组合组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之 ...

  10. html5手机 input file 上传图片 调用API

    <input type="file" accept="video/*;capture=camcorder"> <input type=&quo ...