[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 首先预处理计算任意三个蓝点组成的三角形中的蓝点个数 ...
随机推荐
- CentOS挂载光盘
mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom umount /dev/cdrom /mnt/cdrom 在Ambari集群中配置192.168.0.210: ...
- CONFIG_DEBUG_USER【转】
转自:https://blog.csdn.net/adaptiver/article/details/12778621 关于CONFIG_DEBUG_USER 把menuconfig中查到的 CONF ...
- java多线程系列六、线程池
一. 线程池简介 1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池. 2. 使用线程池的好处 a) 降低资源的消耗.使用线程池不用频繁的创建线程和销毁线程 b) 提高响应速度,任 ...
- Python3学习笔记16-错误和异常
使用try...except可以处理异常 异常处理 import sys try: print('try...') r = 10/0 print('result:',r) except ZeroDiv ...
- Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...
- dblink 退出 session
以dblink的表现为例,我一直认为dblink的远程连接session仅在操作(select,dml)发生时短期存在,在操作完成后依据一定条件保留或退出. 而事实并非如此,随便使用一个远程查询语句如 ...
- 005_git专题
一.仓库管理 ➜ gittest git:(master) git config --local user.name "arunguang" ➜ gittest git:(mast ...
- 转载:Java的四种引用方式
原文:https://www.cnblogs.com/huajiezh/p/5835618.html Java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指 ...
- jquery submit ie6下失效的原因分析及解决方法
ie6中, $('a.btn').click(function(){ form.submit(); }) 点击失效: 分析: 微软低版本浏览器会先执行link标签的自身事件也就是href事件,这样就中 ...
- poj2739 poj2100 尺取法基础(二)
都是很简单的题目 poj2739素数打表+单点推移 #include<iostream> #include<cstring> #include<cstdio> us ...