[TC14126]BagAndCards
[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的更多相关文章
- topcoder srm 679 div1
problem1 link $f[u][0],f[u][1]$表示$u$节点表示的子树去掉和不去掉节点$u$的最大权值. problem2 link 首先预处理计算任意三个蓝点组成的三角形中的蓝点个数 ...
随机推荐
- 文件&报表状态ID
def_filestatus Uploading=4 WaitingParse=6 Parsing=10 Completed=14 ParseError=1006 UploadError=1004 d ...
- 内核IS_ERR宏解析 【转】
转自:http://blog.chinaunix.net/uid-20196318-id-28769.html 最近在使用filp_open打开文件时遇到到一个问题,当打开一个并不存在的文件时,fil ...
- Weex学习资料整合
1.weex weex文档:http://weex.apache.org/cn/guide/index.html Weex Ui awesome-weex WEEX免费视频教程-从入门到放肆 (共17 ...
- Ex 5_22 在此我们基于以下性质给出一个新的最小生成树算法..._第九次作业
(a)设环的顶点集为V, e(u,v)为权最重的边,若把V分成两部分V1,V2.其中V1包含u,V2包含v,因为V是一个环,因此,至少存在两条把u和v连接起来的边.因此,除了e之外,至少还存在另一条边 ...
- robotium之不标准select控件
今天写脚本,遇到一个联合查询框 即:下拉框选择,输入框输入搜索条件,点击查询按钮 如图样式: 用uiautomatorviewer查看元素:无ID,无name,无desc 看到这我瞬间尴尬了,该咋办呢 ...
- Go语言规格说明书 之 变量声明(Variable/Short variable declarations)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,完整的介绍Go语 ...
- python接口自动化测试十二:对返回的json的简单操作
# 1.requests里面自带解析器转字典 print(r.json()) print(type(r.json())) # 取出json中的'result_sk_temp'字段 # {"r ...
- ElasticSearch - match vs term
match vs term 这个问题来自stackoverflow https://stackoverflow.com/questions/23150670/elasticsearch-match-v ...
- eclipse错误GC overhead limit exceeded
1.eclipse以外关闭后打开错误如下图: 2.具体详情: 3.An internal error occurred during: "Building workspace". ...
- [SDOI2014]数数
题解: 做过ac自动机上dp的这题应该就很容易想到了 首先在ac自动机上搞dp 表示当前考虑了i位,在自动机的j位上 然后转移就可以了 考虑限制 显然是一个数位dp 考虑位数小于n显然满足要求 考虑位 ...