[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. HTML学习笔记04-样式

    HTML<style>属性 style属性的作用: 提供了一种改变所有HTML元素样式的通用方法 background-colco属性为元素定义了背景颜色: <!DOCTYPE HT ...

  2. 创建虚拟机时,提示No valid host was found解决办法

    1.http://blog.csdn.net/yxwmzouzou/article/details/43892261 2.http://www.cnblogs.com/kevingrace/p/601 ...

  3. js实现弹窗居中

    在一些页面中,我们总会遇到一些弹窗不居中的时候,还要根据浏览器的大小来调整弹窗的弹出位置, 之前我也遇到这样的问题,现在我把我知道的呈现给大家 css样式 .windowBox{ width:500p ...

  4. saltStack运维工具的部署及master迁移实现的过程详解

    服务器端:192.168.3.87 客户端:192.168.3.86.192.168.3.108 1.salt服务器端安装 192.168.3.87 rpm -Uvh http://mirrors.y ...

  5. OCM_第十七天课程:Section7 —》GI 及 ASM 安装配置 _管理和配置 GRID /实施 ASM 故障组 /创建 ACFS 文件系统

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  6. [转]CentOS7 下安装svn

    1. 安装 centos(我这里使用的是CentOS7)下yum命令即可方便的完成安装 $ sudo yum install subversion 测试安装是否成功: $ svnserve --ver ...

  7. openj 4004 01背包问题求方案数

    #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define ...

  8. [转] $.ajax中contentType: “application/json” 的用法

    不使用contentType: “application/json”则data可以是对象 $.ajax({ url: actionurl, type: "POST", datTyp ...

  9. flex布局简介

    一.概述 浮动在移动布局中不再重要,flex盒模型越来越重要. flexbox经历过三个版本,主要区别是2009年到2012年之间的语法变化. 最新的语法和现在规范是同步的(例display:flex ...

  10. vtiger7新模块的创建和配置

    vtiger出7.0了,以前的那些配置方法已经不管用了 下面是新的 模块创建及一些页面及功能配置的方法 下面介绍三个点 1.新建一个模块 2.实现单图片上传的功能 3.实现页面summary显示的功能 ...