JZOJ5399. 【NOIP2017提高A组模拟10.7】Confess bitset
来源:互联网 发布:java file.getname 编辑:程序博客网 时间:2024/05/16 08:45
Description
小w 隐藏的心绪已经难以再隐藏下去了。
小w 有n + 1(保证n 为偶数) 个心绪,每个都包含了[1,2n] 的一个大小为n 的子集。
现在他要找到隐藏的任意两个心绪,使得他们的交大于等于n/2 。
Input
一行一个整数n。
接下来每行一个长度为k 的字符串,该字符串是一个64 进制表示,ASCII 码为x 的字符代表着x-33,所有字符在33 到33 + 63之间。
转为二进制表示有6k位,它的前2n个字符就是读入的集合,第i 位为1 表示这个集合包含i,为0表示不包含。
Output
一行两个不同的整数表示两个集合的编号。
如果无解输出”NO Solution”。
Sample Input
10
EVK#
IH=#
676”
R7,#
74S”
6V2#
O3J#
S-7
3N.#
Sample Output
1 2
Data Constraint
对于20% 的数据满足n <= 100。
对于50% 的数据满足n <= 1 *10^3。
对于100% 的数据满足n <= 6 * 10^3。
啊,自作自受,不认真学bitset的后果。
bitset裸题,把字符串加进bitset里面,用自带函数直接求就可以了= =。
#include<cstdio>#include<algorithm>#include<cstring>#include<bitset>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=1e5+5;char s[N];bitset<12005> b[6005];int n,l,now,f[N],bin[20],x;int main(){ freopen("confess.in","r",stdin); freopen("confess.out","w",stdout); scanf("%d",&n); bin[0]=1; fo(i,1,5)bin[i]=bin[i-1]*2; fo(i,1,n+1) { scanf("%s",&s); l=strlen(s); now=2*n; fo(j,0,l-1) { x=s[j]-33; fd(k,5,0) { now--; if ((x&bin[k])>0)b[i].set(now); if (!now)break; } if (!now)break; } f[i]=b[i].count(); } fo(i,1,n-1) { fo(j,i+1,n) { b[6003]=b[i] xor b[j]; int x=b[6003].count(); if (f[i]+f[j]-x>=n) { printf("%d %d",i,j); return 0; } } } printf("NO Solution\n"); return 0;}
阅读全文
0 0
- JZOJ5399. 【NOIP2017提高A组模拟10.7】Confess bitset
- jzoj5399 【NOIP2017提高A组模拟10.7】Confess
- 【NOIP2017提高A组模拟10.7】Confess
- JZOJ 5399. 【NOIP2017提高A组模拟10.7】Confess
- 【jzoj5328】【NOIP2017提高A组模拟8.22】【世界线】【bitset】
- 【NOIP2017提高A组模拟10.7】Repulsed
- 【NOIP2017提高A组模拟10.7】Adore
- 【NOIP2017提高A组模拟10.7】Adore
- jzoj100048 【NOIP2017提高A组模拟7.14】紧急撤离 (网格图,分治,bitSet)
- 5328. 【NOIP2017提高A组模拟8.22】世界线 bitset+拓补序合并
- JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore
- 【JZOJ 5400】【NOIP2017提高A组模拟10.7】Repulsed
- JZOJ 5400. 【NOIP2017提高A组模拟10.7】Repulsed
- JZOJ 5400. 【NOIP2017提高A组模拟10.7】Repulsed
- JZOJ5400. 【NOIP2017提高A组模拟10.7】Repulsed
- jzoj5400. 【NOIP2017提高A组模拟10.7】Repulsed
- JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore
- jzoj5398. 【NOIP2017提高A组模拟10.7】Adore
- a标签去执行javascript中的方法
- C语言 求两个矩阵相乘
- Office 2013 Professional Plus最强大激活工具,亲测可用
- 理解继承(二):构造函数的继承
- list_saynctask
- JZOJ5399. 【NOIP2017提高A组模拟10.7】Confess bitset
- ARC081 F
- 栅栏围大葱 dan
- Expression Add Operators(leetcode)
- PAT乙级题1034.有理数四则运算
- python里使用正则表达式的集合字符
- dan[非正解 搜索+卡时可AC]
- ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
- 《深入浅出node.js》——setImmediate()与process.nextTick()