ACM-ICPC 2018 沈阳赛区网络预赛-I模拟题啊!!!
垃圾题,题目巨TM长。。。这题题意就是说给你一个16进制串,让你把每一位转成长度为4的2进制数,并把这些数连接起来,连接完成后,进行奇偶校验,把字符串切割成每个长度为9的字符串,然后计算前8位的
1的个数,,最后一位是校验位,如果1的个数为奇数 那么校验位应该是1,如果1的个数为偶数,那么校验位应该是0,如果满足,就保留验证的8位去掉校验位,否则去掉整个;然后给了M个字符串对应的ASCll,把验证位置留下来的东西,进行和字符串匹配,然后输出N个对应ASCll的字符???
这题意很绕啊。。。不过纯模拟很烦啊,用unorder_map的快速查找和string的可加性,以及string.substr的强大功能这题迎刃而解啦!!!
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<unordered_map>
#include<map>
#include<vector>
#pragma GCC optimize(2)
using namespace std;
unordered_map<string,int> mp;
unordered_map<char,string> table;
void init(){
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['']="";
table['a']="";
table['A']="";
table['B']="";
table['b']="";
table['C']="";
table['c']="";
table['D']="";
table['d']="";
table['E']="";
table['e']="";
table['F']="";
table['f']="";
}
int main(){
int t;
int n,m;
string s;
string str2;
string ans;
scanf("%d",&t);
init();
vector<int>vec;
while(t--){
vec.clear();
mp.clear();
scanf("%d%d",&n,&m);
int tmp;
string tmps;
for (int i=;i<=m;i++){
cin>>tmp>>tmps;
mp[tmps]=tmp;
}
cin>>s;
int len=s.length();
str2.clear();
ans.clear();
tmps.clear();
for (int i=;i<len;i++){
str2+=table[s[i]];
// cout<<table[s[i]]<<" ";
}
//cout<<str2<<endl;
len=str2.length(); for(int i=;i<len;i+=){
tmps=str2.substr(i,);
//cout<<tmps<<" ";
int cnt=;
if (tmps.length()!=)break;
for (int j=;j<;j++){
if (tmps[j]=='')cnt++;
}
//cout<<cnt<<endl;
if(cnt%== && tmps[]==''){
ans+=tmps.substr(,);
}else if (cnt%== && tmps[]==''){
ans+=tmps.substr(,);
}
tmps.clear();
}
len=ans.length();
tmps.clear();
for (int i=;i<len;i++){
tmps+=ans[i];
if (mp[tmps]!=){
vec.push_back(mp[tmps]);
tmps.clear();
}
}
int sz=vec.size();
for (int i=;i<sz;i++){
if (i==n)break;
printf("%c",vec[i]);
}
printf("\n");
}
return ;
}
ACM-ICPC 2018 沈阳赛区网络预赛-I模拟题啊!!!的更多相关文章
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number
Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...
- ACM-ICPC 2018 沈阳赛区网络预赛-D:Made In Heaven(K短路+A*模板)
Made In Heaven One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. ...
- 图上两点之间的第k最短路径的长度 ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven
131072K One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. Howe ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J树分块
J. Ka Chang Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero p ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K. Supreme Number
A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph
"Oh, There is a bipartite graph.""Make it Fantastic." X wants to check whether a ...
- Fantastic Graph 2018 沈阳赛区网络预赛 F题
题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F Fantastic Graph(贪心或有源汇上下界网络流)
https://nanti.jisuanke.com/t/31447 题意 一个二分图,左边N个点,右边M个点,中间K条边,问你是否可以删掉边使得所有点的度数在[L,R]之间 分析 最大流不太会.. ...
随机推荐
- 设计模式java----单例模式
一.懒汉式单例 在第一次调用的时候实例化自己,Singleton的唯一实例只能通过getInstance()方法访问.线程不安全 /** * Created by Admin on 2017/3/19 ...
- aspectj 简单的模拟权限检查、事务、日志记录
package com.ij34.service; public class Hello { public void he() { System.out.println("执行Hello的h ...
- linux alias 用法
转自linux alias http://www.maomao365.com/?p=2597 : linux中命令别名设置: <span style="color:blue;font- ...
- 洗礼灵魂,修炼python(90)-- 知识拾遗篇 —— 协程
协程 1.定义 协程,顾名思义,程序协商着运行,并非像线程那样争抢着运行.协程又叫微线程,一种用户态轻量级线程.协程就是一个单线程(一个脚本运行的都是单线程) 协程拥有自己的寄存器上下文和栈.协程调度 ...
- Kibana查询
查询lyad账号操作AD账号的操作: Category:"用户帐户管理" AND SubjectUserName:"lyad" 查询对账号zhangsan进行的 ...
- 使用administrator身份启动Vs2017
日常开发中有些项目工程需要按照Administrator 身份进行启动,我们的操作是在vs2017 上右键,administrator 身份启动. 如下图: 但是这样每次都要右键,移动鼠标进行点击. ...
- CentOS6.5 安装并配置vsftpd
一.获取root权限 su 输入root密码 二.检查是否安装 rpm -qa | grep vsftpd 如果安装,会显示安装版本号,没有就什么都不显示 三.若已安装过vsftpd,先卸载.卸载前, ...
- PHP中的Session工作原理
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...
- Linux 小知识翻译 - 「如何成为 Linux 内核开发者」
新年的开始,聊聊「怎么做才能成为Linux内核开发者」. Linux内核的开发都是由志愿开发者们完成的.他们并不属于某些特定的企业. 因此,你也有参加Linux内核开发的资格.不用说,卓越的编码技术以 ...
- 怎样用命令行开启或关闭Windows服务
怎样用命令行开启或关闭Windows服务 本篇博客主要包含一个内容: 怎样用命令行开启或关闭Windows服务 闲话少叙,直奔主题. 1.在桌面右击新建一个文本文档,然后打开. 2.找到需要开启或关闭 ...