jzoj3888-正确答案【字符串hash,dfs】
正题
题目大意: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】相关推荐
- UVA4671 K-neighbor substrings FFT+字符串hash
题解: 将字符串A.B中的a和b分别以1和-1表示,对字符串B进行反转. 将A和B看成多项式,求卷积,这样的话从结果区间的[lenB−1,lenA)[lenB−1,lenA)[lenB-1,lenA) ...
- 【Codeforces - 127D】Password(思维,二分+字符串Hash)
题干: Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temp ...
- 【字符串算法1】 再谈字符串Hash(优雅的暴力)
[字符串算法1] 字符串Hash(优雅的暴力) [字符串算法2]Manacher算法 [字符串算法3]KMP算法 这里将讲述 [字符串算法1] 字符串Hash 老版原文: RK哈希(Rabin_Ka ...
- CodeForces - 727E Games on a CD 字符串Hash
题意:有n个单词,每个单词长度为k,顺时针将它们写成一个圆圈串.现在知道g个长度为k的单词,是否可以从这g个单词中选择n个形成这个圆圈串?如果有多个答案,任意输出一个. 思路 可以发现,如果枚举第一个 ...
- Wannafly挑战赛11 A B D【规律+逆元+字符串hash】
链接:https://www.nowcoder.com/acm/contest/73/A 来源:牛客网 题目描述 白兔学会了分身术. 一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成 ...
- ACM-ICPC 2018 南京赛区网络预赛 I. Skr (马拉车+字符串hash/回文自动机)
题目链接 题意: 给你一个只有0~9的数字组成的字符串,定义一个字符串的价值就是他表示的数字,"120"的价值是120 问你在字符串内不同的回文子串的价值总和是多少 解析: 马拉车 ...
- 九宫重排 蓝桥杯c++ 题解 字符串hash+bfs
九宫重排 蓝桥杯c++ 题解 字符串hash+bfs 题意:给出一个九宫格,你可以将与空格相邻的数字和空格进行交换,目的是得到另一个九宫格,问最少的步数. 思路:从最小步数不难看出我们可以使用广度优先 ...
- smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...
smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...
- 在各种xDSL技术中,能提供上下行信道非对称传输的是______。正确答案 B
在各种xDSL技术中,能提供上下行信道非对称传输的是______. A.ADSL和HDSL B.ADSL和VDSL C.SDSL和VDSL D.SDSL和HDSL 正确答案 B 答案解析 [解析]: ...
最新文章
- Foreach与Random
- 单调谐回路谐振放大器等效电路分析_谐振回路的工作原理
- JAVA NIO是什么(zz)
- 代码生成工具随笔(3)---占领最后一块黄金宝地
- 阿里云张献涛:自主最强DPU神龙的秘诀
- c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换
- bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)
- indesign教程,如何创建对齐参考线?
- 如何把Access中数据导入Mysql中 (转)
- 高级软考之——系统分析师思维导图(一)
- 【NOIP2013提高组】华容道
- Audition CC 2019 Essential Training AuditionCC 2019基本训练 Lynda课程中文字幕
- mysql计算员工年终奖金_年终奖 扣税计算
- 知客CRM成功客户专访----厦门英斯捷
- IOS版Telegram启用中文界面的方法
- 帆软:根据参数查看不同报表
- 【bzoj 1812】[Ioi2005]riv(树形dp)
- Pupil dynamics for iris liveness detection 瞳孔活体检测论文翻译
- 渗透测试-完整渗透流程(二.漏洞扫描和利用)
- 大学生计算机设计大赛 梧州学院,我校学子在2018年中国大学生计算机设计大赛中勇摘桂冠...
热门文章
- linux系统管理命令使用,Linux系统管理使用之基本命令(1)
- mysql挂载到iscsi_corosync+pacemaker+iscsi磁盘实现mysql高可用
- oracle+11g+rda,Oracle RDA 4.20 初体验
- java基础变量_Java基础语法之变量和常量
- 古登堡是垂直搜索引擎吗_网站排名,提高内容输出频率,就一定要对排名好吗?-SEO...
- python可视化工具好用_6款Python必备的可视化工具推荐
- 三相全桥整流电路_三相桥式全控整流电路
- 堆的定义与操作(C语言)
- [Java基础]Object类的常用方法
- [剑指offer]面试题22:栈的压入、弹出序列