关闭

2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem (状态压缩)

标签: acm-icpc状态压缩
599人阅读 评论(8) 收藏 举报
分类:

The frequent subset problem is defined as follows. Suppose UU={1, 2,\ldots,N} is the universe, and S_{1}S1S_{2}S2,\ldots,S_{M}SMare MM sets over UU. Given a positive constant \alphaα0<\alpha \leq 10<α1, a subset BB (B \neq 0B0) is α-frequent if it is contained in at least \alpha MαM sets of S_{1}S1S_{2}S2,\ldots,S_{M}SM, i.e. \left | \left \{ i:B\subseteq S_{i} \right \} \right | \geq \alpha M{i:BSi}αM. The frequent subset problem is to find all the subsets that are α-frequent. For example, let U=\{1, 2,3,4,5\}U={1,2,3,4,5}M=3M=3\alpha =0.5α=0.5, and S_{1}=\{1, 5\}S1={1,5}S_{2}=\{1,2,5\}S2={1,2,5}S_{3}=\{1,3,4\}S3={1,3,4}. Then there are 33 α-frequent subsets of UU, which are \{1\}{1},\{5\}{5} and \{1,5\}{1,5}.

Input Format

The first line contains two numbers NN and \alphaα, where NN is a positive integers, and \alphaα is a floating-point number between 0 and 1. Each of the subsequent lines contains a set which consists of a sequence of positive integers separated by blanks, i.e., line i + 1i+1 contains S_{i}Si1 \le i \le M1iM . Your program should be able to handle NN up to 2020 and MM up to 5050.

Output Format

The number of \alphaα-frequent subsets.

样例输入

15 0.4
1 8 14 4 13 2
3 7 11 6
10 8 4 2
9 3 12 7 15 2
8 3 2 4 5

样例输出

11

题目来源

2017 ACM-ICPC 亚洲区(南宁赛区)网络赛

你怎么看待2017ICPC南宁网络赛,躺着看啊,我已经扶不起来了,彻彻底底输给英语没有!

这个题就是求所有集合中子集出现概率大于等于K的总的子集的个数。

最多20个数,50个集合,关键是不给集合的个数,不给每个集合元素的个数,这题目很可以。要求20个数在50个集合中是否存在,枚举的话需要20!次,肯定超时,顺理成章的想到状态压缩,把每个集合都状态压缩一下,这样就构成了一个新的数,再去枚举每一种状态,也就是每个字符在每一个串中是否出现的情况,把这两种状态&运算,得到的数代表原集合中有多少个这样的子集,最后将得到概率跟K比较,大于等于就自加,注意精度问题,要k值要减去eps才能得到结果。

代码实现:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<cstdio>
#define ll long long
#define lz 2*u,l,mid  
#define rz 2*u+1,mid+1,r
#define mset(a,x) memset(a,x,sizeof(a))

using namespace std;
const double PI=acos(-1);
const int inf=0x3f3f3f3f;
const double esp=1e-12;
const int maxn=400005;
const int mod=1e9+7;
int dir[4][2]={0,1,1,0,0,-1,-1,0};
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
ll inv(ll b){if(b==1)return 1; return (mod-mod/b)*inv(mod%b)%mod;}
ll fpow(ll n,ll k){ll r=1;for(;k;k>>=1){if(k&1)r=r*n%mod;n=n*n%mod;}return r;}
int a[101];

int main()
{
	int n,x,i;
	double k;
    cin>>n>>k;
    n=(1<<n);
    mset(a,0);
    int top=1;
    while(scanf("%d",&x)!=EOF)
    {
        a[top]+=(1<<(x-1));
        if(getchar()=='\n')
		top++;
    }
    int ans=0;
    for(i=1;i<n;i++)
    {
        int c=0;
        for(int j=1;j<=top;j++)
        {
            if((a[j]&i)==i)
                c++;
        }
        if(1.0*c/top>=k-esp)
		ans++;
    }
    cout<<ans<<endl;
	return 0;
}

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ACM-ICPC北京赛区2017网络同步赛 题目6 : Secret Poems

题目6 : Secret Poems 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The Yongzheng Emperor (13 De...
  • MShow006
  • MShow006
  • 2017-11-19 20:20
  • 94

2017ACM-ICPC西安赛区

今年第二场正式比赛了,跟我两个队友的第一场ACM-ICPC线下赛… 10.28 跟队友以及三个学长一起到了西安…继上次邀请赛之后第二次到西安了,也是第二次去西工大长安校区,下车在我的推荐下又吃...
  • jnxxhzz
  • jnxxhzz
  • 2017-11-11 12:07
  • 149

2017ACM-ICPC全国邀请赛(陕西)

没想到大二下学期又能有幸的参加一场全国邀请赛,跟各位大佬齐聚一堂享受被虐的快感。 =========================日常水==========================弱校抱着拿...
  • QuanQqqqq
  • QuanQqqqq
  • 2017-05-24 09:59
  • 2371

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor

There is a tree with nn nodes. For each node, there is an integer value a_ia​i​​, (1 \le a_i \...
  • wangshuhe963
  • wangshuhe963
  • 2017-11-12 00:43
  • 56

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Xor

题意: 给出树的u,v节点询问每隔K个取一个数字异或。 思路: 是卡过去的。。竟然没TLE。 找U点和V点的LCA,之后从U点先向上用ST算法找到第K个祖先,依次类推。 之后再V点再重新处理向上找。注...
  • qq_33951440
  • qq_33951440
  • 2017-09-16 18:14
  • 1129

2017年团体程序设计天梯赛-大区赛小结

不知道说些什么,今年的天梯赛,比去年要凶残的多啊,这个鬼一样的分区,华东区的论剑真的是变态,甚至比好几个珠峰的赛区还凶残。 弱校华东区第8,全赛区第9,凄凉,给华东区的大佬跪了。今年看来是无缘决赛了...
  • jtjy568805874
  • jtjy568805874
  • 2017-03-26 23:40
  • 1044

2017赛季ACM区域赛战绩汇总【END】

CCPC哈尔滨站:铜牌 rank:66 错过了一个冲银的很好机会。。先开的B,跟cb对这题想出的算法很有信心,结果wa了,卡了70分钟,期间想搞那个全场题也一直惦记着B题,最后我才发现m没用long ...
  • qq_34374664
  • qq_34374664
  • 2017-10-24 00:28
  • 835

2014ACM/ICPC亚洲区鞍山赛区现场赛题解报告

2014ACM/ICPC亚洲区鞍山赛区现场赛题解报告
  • queuelovestack
  • queuelovestack
  • 2016-10-28 13:02
  • 1040

2017 ACM-ICPC 南宁站 总结!

2017 ACM-ICPC 南宁站 总结  附上榜单:http://acm.gxu.edu.cn/board-2017-regional/  滚完榜后还是有点遗憾,封榜后竟然这么多队过了6题,...
  • NYIST_TC_LYQ
  • NYIST_TC_LYQ
  • 2017-11-28 18:32
  • 258

2017年ACM/ICPC青岛站感想

打了那么多地方的区域赛热身赛,最终获得青岛站一个名额,还是很惊喜的,因为再此之前我们学校在 网络赛中从来没有出过线,此次不容易出线一个队伍,真的感觉很幸运,以前退役的学长听到这个消息, 也是很开心,学...
  • wyxeainn
  • wyxeainn
  • 2017-11-09 17:53
  • 356
    个人资料
    • 访问:52997次
    • 积分:1971
    • 等级:
    • 排名:千里之外
    • 原创:149篇
    • 转载:1篇
    • 译文:0篇
    • 评论:16条
    联系方式
    欢迎谈论交流:1245985209
    友情链接_winter2121
    http://blog.csdn.net/winter2121
    友情链接_anoxiacxy
    https://anoxiacxy.github.io/
    博客专栏