bzoj3198】的更多相关文章

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3198 题意概括 有n(1<=n<=100000)组数据,每组数据6个数. 现在问有几对数据,满足其数字相同的个数恰好为k. 0<=k<=6 题解 首先暴搜是不行的. 然后我们发现可以哈希+容斥. 对于有至少有x个数字相同的情况,我们可以枚举+hash解决(这个很简单,不用说了吧). 然后是最关键的. 假设ans[i]表示至少有i个相同的情况总数. 那么会有重复: 比如某4个数相同,…
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 题解: 一脸容斥的样子. 枚举判断是否相同的泉水集合S,若|S|>=K,则inc(ANS,(-1)^(|S|-K+1)*C(|S|,K)*相同对数). 用哈希表记录.判断(我之前竟然写了类似字符串哈希的的做法,哈希值相同直接判断相同,WA惨了). 代码: var i,j,k,l,n,m:longint…
3198: [Sdoi2013]spring Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 1143  Solved: 366[Submit][Status][Discuss] Description Input Output Sample Input 3 3 1 2 3 4 5 61 2 3 0 0 00 0 0 4 5 6 Sample Output 2 HINT Dragonite修正数据 Source Hash 容斥简单,但是hash有点…
容斥原理+哈希表 恰好k个,那么上容斥原理,我们先2^6枚举相同的位置,用哈希表判断有多少个对应位置相同的元素,然后用容斥原理计算,似乎这里的容斥没有那么简单,详见这里 http://www.cnblogs.com/candy99/p/mobius.html, 要乘上组合数计算 #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std…
给定两个数组a[n]与b[n](数全不相等),两两配对,求“a比b大”的数对比“b比a大”的数对个数多k的配对方案数. 据说做了这题就没什么题好害怕的了,但感觉实际上这是一个套路题,只是很难想到. 首先显然“a比b大”的个数是确定的,问题转化成求“a比b大”的数对个数为m的方案数. 不好算考虑容斥,总结下容斥的一些套路.(From ATP's Blog) 1.全部-至少一个+至少两个-…=一个也没有的 2.所有的-一个也没有的=至少有一个的 3.至少有k个的-C(k+1,k)* 至少有k+1个的…