BZOJ3198[SDOI2013]SPRING
Description
Input
Output
Sample Input
1 2 3 4 5 6
1 2 3 0 0 0
0 0 0 4 5 6
Sample Output
HINT
题解:
一脸容斥的样子。
枚举判断是否相同的泉水集合S,若|S|>=K,则inc(ANS,(-1)^(|S|-K)*C(|S|,K)*相同对数)。
用哈希表记录、判断(我之前竟然写了类似字符串哈希的的做法,哈希值相同直接判断相同,WA惨了)。
代码:
var
i,j,k,l,n,m:longint;
f:array[..,..]of int64;
b:array[..]of longint;
c:array[..,..]of int64;
cc:array[..]of longint;
d:array[..,-..]of longint;
a:array[..]of int64;
ans:int64;
procedure find(x,z:longint;y:int64);
var i,j,l:longint;
begin
i:=cc[a[z]];
while i> do
begin
l:=;
for j:= to x do if d[i,j]<>f[z,b[j]] then begin l:=; break; end;
if l= then begin ans:=ans+y*d[i,]; inc(d[i,]); exit; end;
i:=d[i,-];
end;
inc(m); for i:= to x do d[m,i]:=f[z,b[i]];
d[m,]:=; d[m,-]:=cc[a[z]]; cc[a[z]]:=m;
end;
function ss2(x:longint;y:int64):int64;
var i,j,k:longint;
begin
ss2:=; m:=;
for i:= to do cc[i]:=;
for i:= to n do
begin
a[i]:=;
for j:= to x do a[i]:=(a[i]*+f[i,b[j]])mod ;
find(x,i,y);
end;
end;
procedure ss(x,y:longint);
var i:longint;
begin
if x> then
begin
if y>=k then
begin
if(y-k)mod = then ss2(y,c[y,k])
else ss2(y,-c[y,k]);
end;
exit;
end;
ss(x+,y);
inc(y); b[y]:=x; ss(x+,y);
end;
begin
c[,]:=;
for i:= to do
begin
c[i,]:=; c[i,i]:=;
for j:= to i- do c[i,j]:=c[i-,j-]+c[i-,j];
end;
readln(n,k);
for i:= to n do
for j:= to do read(f[i,j]);
ss(,);
writeln(ans);
end.
BZOJ3198[SDOI2013]SPRING的更多相关文章
- bzoj3198[Sdoi2013]spring 容斥+hash
3198: [Sdoi2013]spring Time Limit: 40 Sec Memory Limit: 256 MBSubmit: 1143 Solved: 366[Submit][Sta ...
- BZOJ3198 [Sdoi2013]spring 哈希 容斥原理
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3198 题意概括 有n(1<=n<=100000)组数据,每组数据6个数. 现在问有几对 ...
- BZOJ 3198: [Sdoi2013]spring [容斥原理 哈希表]
3198: [Sdoi2013]spring 题意:n个物品6个属性,求有多少不同的年份i,j满足有k个属性对应相等 一开始读错题了,注意是对应相等 第i个属性只能和第i个属性对应 容斥一下 \[ 恰 ...
- BZOJ 3198 SDOI2013 spring
为什么SDOI省选一年考两次容斥原理? 我们很容易发现>=k个相等时很好计算的 但是我们要求恰好k个,那么我们容斥即可 至于计算>=k个相等,首先我们枚举相等位置,对每个串对应位置做一遍h ...
- bzoj 3198 [Sdoi2013]spring(容斥原理+Hash)
Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINT [ ...
- [BZOJ 3198] [Sdoi2013] spring 【容斥 + Hash】
题目链接:BZOJ - 3198 题目分析 题目要求求出有多少对泉有恰好 k 个值相等. 我们用容斥来做. 枚举 2^6 种状态,某一位是 1 表示这一位相同,那么假设 1 的个数为 x . 答案就是 ...
- 3198: [Sdoi2013]spring【容斥原理+hash】
容斥是ans= 至少k位置相等对数C(k,k)-至少k+1位置相等对数C(k+1,k)+至少k+2位置相等对数*C(k+2,k) -- 然后对数的话2^6枚举状态然后用hash表统计即可 至于为什么要 ...
- [SDOI2013]spring
Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINT 容 ...
- sdoi2013 spring(hash+容斥)
大体思路是先求出来\(f[i]\)代表有至少\(i\)个位置相同的点对数. 然后就已经没什么好害怕的了(跟BZOJ3622一样) 然后这个\(f[i\)]怎么求呢? 最无脑的方法就是枚举位置,然后\( ...
随机推荐
- Windows 7上执行Cake 报错原因是Powershell 版本问题
在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...
- C语言 · 最大值与最小值计算
输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输出 10 0 #include<stdio.h> int main(){ ]; ...
- 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- nodejs创建http服务器
之前有简单介绍nodejs的一篇文章(http://www.cnblogs.com/fangsmile/p/6226044.html) HTTP服务器 Node内建有一个模块,利用它可以很容易创建基本 ...
- 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】
由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...
- 【开源】.Net Api开放接口文档网站
开源地址:http://git.oschina.net/chejiangyi/ApiView 开源QQ群: .net 开源基础服务 238543768 ApiView .net api的接口文档查看 ...
- js学习之变量、作用域和内存问题
js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String ...
- 【云知道】究极秒杀Loadrunner乱码
Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...
- Android之使用Bundle进行IPC
一.Bundle进行IPC介绍 四大组件中的三大组件(Activity.Service.Receiver)都是支持在Intent中传递Bundle数据的,由于Bundle实现了Parcelable接口 ...
- Android开发学习—— Fragment
#Fragment* 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容* 生命周期方法跟Activity一致,可以理解把其为就是一个Activity* 定义布局文件作 ...