题目描述

  小$w$隐藏的心绪已经难以再隐藏下去了。
  小$w$有$n+1$(保证$n$为偶数)个心绪,每个都包含了$[1,2n]$的一个大小为$n$的子集。
  现在他要找到隐藏的任意两个心绪,使得他们的交大于等于$\frac{n}{2}$。


输入格式

  一行一个整数$n$。
  接下来每行一个长度为$k$的字符串,该字符串是一个$64$进制表示,$ASCII$码为$x$的字符代表着$x-33$,所有字符在$33$到$33+63$之间。
  转为二进制表示有$6k$位,它的前$2n$个字符就是读入的集合,第$i$位为$1$表示这个集合包含$i$,为$0$表示不包含。


输出格式

  一行两个不同的整数表示两个集合的编号。
  如果无解输出$"NO\ Solution"$。


样例

样例输入:

10
EVK#
IH=#
676"
R7,#
74S"
6V2#
O3J#
S-7$
NU5"
C[$$
3N.#

样例输出:

1 2


数据范围与提示

  对于$20\%$的数据满足$n\leqslant 100$。
  对于$50\%$的数据满足$n\leqslant 1\times 10^3$。
  对于$100\%$的数据满足$n\leqslant 6\times 10^3$。


题解

随机化竟然是正解,还好我机灵了一下。

官方题解我也是醉了……

用$bitset$优化一下就好啦。

两个集合的交的期望大小为:

$$\min(\sum\limits_{i=1}^{2n}\frac{C_{c_i}^2}{C_{n+1}^2}|\sum\limits_{i=1}^{2n}c_i=n(n+1))=\frac{n-1}{2}$$

至少需要$n$对就好了。

时间复杂度:$\Theta(\frac{n^2}{\omega})$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
int n;
int bin[9];
char ch[10000];
bitset<12000> bit[6010];
int main()
{
scanf("%d",&n);
for(int i=0;i<6;i++)bin[i+1]=1<<i;
for(int i=1;i<=n+1;i++)
{
scanf("%s",ch+1);
int len=strlen(ch+1);
int top=0;
for(int j=1;j<=len;j++)
{
int x=ch[j]-33;
if(++top>2*n)break;
if(x&bin[6])bit[i][top]=1;
if(++top>2*n)break;
if(x&bin[5])bit[i][top]=1;
if(++top>2*n)break;
if(x&bin[4])bit[i][top]=1;
if(++top>2*n)break;
if(x&bin[3])bit[i][top]=1;
if(++top>2*n)break;
if(x&bin[2])bit[i][top]=1;
if(++top>2*n)break;
if(x&bin[1])bit[i][top]=1;
}
}
while(1)
{
int x=rand()%(n+1)+1;
int y=rand()%(n+1)+1;
if(x==y)continue;
if((bit[x]&bit[y]).count()>=(n>>1))
{printf("%d %d\n",x,y);return 0;}
}
return 0;
}

rp++

最新文章

  1. SQL Server 2016 CTP2.2 安装手记
  2. Burp SuiteBurp Suite使用详解
  3. load与initialize
  4. java TreeMap用法
  5. 《深入.NET平台和C# 编程》内部测试 笔试题
  6. 转 Warning:MongoDB Replica Sets配置注意事项
  7. iOS工程师常用的命令行命令总结
  8. 页面异步请求会保留原有的js内容
  9. ArrayList底层实现原理
  10. 【转】Python数据类型之“序列概述与基本序列类型(Basic Sequences)”
  11. 使用sshfs挂载远程服务器目录
  12. SQLMAP自动注入(三):参数介绍
  13. openkm预览功能报错:flexpaper License key not accepted(no key passed to viewer)
  14. 前段开发-css-总结
  15. Wireshark数据包分析(一)——使用入门
  16. Deep Learning基础--机器翻译BLEU与Perplexity详解
  17. 易普优APS(高级计划排程)演绎饭局模型(通俗的告诉您ERP计划与APS计划的区别)
  18. 【测试技术】websocket-client
  19. Linq分组操作之GroupBy,GroupJoin扩展方法源码分析
  20. PCL 编译中遇到 error C4996: &#39;pcl::SAC_SAMPLE_SIZE&#39;

热门文章

  1. C# 面向对象3 静态和非静态的区别
  2. JS基础_强制类型转换-Boolean
  3. JavaScript斑马线表格制作
  4. python 模块使用
  5. optparse:让你轻松地与命令行打交道
  6. linux_cam_test文件
  7. Office365 PowerShell打开邮箱审计功能
  8. VMware中的桥接模式--来自网络
  9. 分布式中 CAP BASE ACID 理解(转载)
  10. 【HDU6635】Nonsense Time