正题

题目大意:https://jzoj.net/senior/#main/show/3888


题目大意

nnn个人mmm道题,已知道每个人的选项和有ppp个人满分和qqq个人零分,求字典序最小的可能的正确答案。


解题思路

用字符串hashhashhash判断即可。要注意的是如果没有一个人满分也没有一个人零分要用dfsdfsdfs找到字典序最小的。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<map>
#define ull unsigned long long
using namespace std;
const int N=31000,P=131;
int n,m,p,q,flag;
char ans[600];
map<ull,int> v;
struct node{ull z,f;string s;
}a[N];
bool cmp(node x,node y)
{return x.s<y.s;}
void dfs(int x,ull z,ull w)
{if(x>=m){if(!v[z]&&!v[w]){for(int i=0;i<m;i++)putchar(ans[i]);flag=1;}return;}if(flag) return;ans[x]='N';dfs(x+1,z*P,w*P+1);if(flag) return;ans[x]='Y';dfs(x+1,z*P+1,w*P);
}
int main()
{scanf("%d%d%d%d",&n,&m,&p,&q);for(int i=1;i<=n;i++){cin>>a[i].s;for(int j=0;j<m;j++)a[i].z=a[i].z*P+(a[i].s[j]=='Y'),a[i].f=a[i].f*P+(a[i].s[j]=='N');v[a[i].z]++;}if(!p&&!q){dfs(0,0,0);return 0;}sort(a+1,a+1+n,cmp);if(!p){for(int i=n;i>=1;i--)if(v[a[i].z]==q){for(int j=0;j<m;j++)putchar(a[i].s[j]=='Y'?'N':'Y');return 0;}}for(int i=1;i<=n;i++){int w=v[a[i].z];if(w!=p) continue;if(v[a[i].f]==q){cout<<a[i].s;return 0;}}printf("-1");
}

jzoj3888-正确答案【字符串hash,dfs】相关推荐

  1. UVA4671 K-neighbor substrings FFT+字符串hash

    题解: 将字符串A.B中的a和b分别以1和-1表示,对字符串B进行反转. 将A和B看成多项式,求卷积,这样的话从结果区间的[lenB−1,lenA)[lenB−1,lenA)[lenB-1,lenA) ...

  2. 【Codeforces - 127D】Password(思维,二分+字符串Hash)

    题干: Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temp ...

  3. 【字符串算法1】 再谈字符串Hash(优雅的暴力)

    [字符串算法1] 字符串Hash(优雅的暴力) [字符串算法2]Manacher算法 [字符串算法3]KMP算法 这里将讲述  [字符串算法1] 字符串Hash 老版原文: RK哈希(Rabin_Ka ...

  4. CodeForces - 727E Games on a CD 字符串Hash

    题意:有n个单词,每个单词长度为k,顺时针将它们写成一个圆圈串.现在知道g个长度为k的单词,是否可以从这g个单词中选择n个形成这个圆圈串?如果有多个答案,任意输出一个. 思路 可以发现,如果枚举第一个 ...

  5. Wannafly挑战赛11 A B D【规律+逆元+字符串hash】

    链接:https://www.nowcoder.com/acm/contest/73/A 来源:牛客网 题目描述 白兔学会了分身术. 一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成 ...

  6. ACM-ICPC 2018 南京赛区网络预赛 I. Skr (马拉车+字符串hash/回文自动机)

    题目链接 题意: 给你一个只有0~9的数字组成的字符串,定义一个字符串的价值就是他表示的数字,"120"的价值是120 问你在字符串内不同的回文子串的价值总和是多少 解析: 马拉车 ...

  7. 九宫重排 蓝桥杯c++ 题解 字符串hash+bfs

    九宫重排 蓝桥杯c++ 题解 字符串hash+bfs 题意:给出一个九宫格,你可以将与空格相邻的数字和空格进行交换,目的是得到另一个九宫格,问最少的步数. 思路:从最小步数不难看出我们可以使用广度优先 ...

  8. smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...

    smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...

  9. 在各种xDSL技术中,能提供上下行信道非对称传输的是______。正确答案 B

    在各种xDSL技术中,能提供上下行信道非对称传输的是______. A.ADSL和HDSL B.ADSL和VDSL C.SDSL和VDSL D.SDSL和HDSL 正确答案 B 答案解析 [解析]: ...

最新文章

  1. Foreach与Random
  2. 单调谐回路谐振放大器等效电路分析_谐振回路的工作原理
  3. JAVA NIO是什么(zz)
  4. 代码生成工具随笔(3)---占领最后一块黄金宝地
  5. 阿里云张献涛:自主最强DPU神龙的秘诀
  6. c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换
  7. bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)
  8. indesign教程,如何创建对齐参考线?
  9. 如何把Access中数据导入Mysql中 (转)
  10. 高级软考之——系统分析师思维导图(一)
  11. 【NOIP2013提高组】华容道
  12. Audition CC 2019 Essential Training AuditionCC 2019基本训练 Lynda课程中文字幕
  13. mysql计算员工年终奖金_年终奖 扣税计算
  14. 知客CRM成功客户专访----厦门英斯捷
  15. IOS版Telegram启用中文界面的方法
  16. 帆软:根据参数查看不同报表
  17. 【bzoj 1812】[Ioi2005]riv(树形dp)
  18. Pupil dynamics for iris liveness detection 瞳孔活体检测论文翻译
  19. 渗透测试-完整渗透流程(二.漏洞扫描和利用)
  20. 大学生计算机设计大赛 梧州学院,我校学子在2018年中国大学生计算机设计大赛中勇摘桂冠...

热门文章

  1. linux系统管理命令使用,Linux系统管理使用之基本命令(1)
  2. mysql挂载到iscsi_corosync+pacemaker+iscsi磁盘实现mysql高可用
  3. oracle+11g+rda,Oracle RDA 4.20 初体验
  4. java基础变量_Java基础语法之变量和常量
  5. 古登堡是垂直搜索引擎吗_网站排名,提高内容输出频率,就一定要对排名好吗?-SEO...
  6. python可视化工具好用_6款Python必备的可视化工具推荐
  7. 三相全桥整流电路_三相桥式全控整流电路
  8. 堆的定义与操作(C语言)
  9. [Java基础]Object类的常用方法
  10. [剑指offer]面试题22:栈的压入、弹出序列